पूरी हैंडबुक

इंस्टॉल करें, फिर कॉल चलाने के लिए सेट करें

KatoCall को सर्वर पर डालने और असली फ़ोन कॉल की बिलिंग शुरू करने की सरल भाषा में गाइड। भागों को क्रम से करें — दूरसंचार का अनुभव ज़रूरी नहीं।

संस्करण 1.0.0Debian 12 सर्वर के लिएपहली कॉल तक ~30–45 मिनट

यहाँ से शुरू करें

दो मिनट में KatoCall कैसे काम करता है

KatoCall एक टेलीफ़ोन स्विचबोर्ड है जिसमें बिलिंग इंजन बना हुआ है। आपके ग्राहक इसके ज़रिए कॉल करते हैं; यह उनका बैलेंस जाँचता है, सबसे सस्ता रास्ता चुनता है, कॉल का समय मापता है और उसे बिल करता है — सब अपने आप।

आपका ग्राहक कॉल करता है KatoCall बैलेंस जाँचता है, सबसे सस्ता रास्ता चुनता है, समय मापकर बिल करता है आपका कैरियर (SIP ट्रंक) कोई भी डायल रूट इनकमिंग कॉल उल्टे क्रम में इसी तरह चलती हैं: एक नंबर (DID) बजता है और किसी ग्राहक को अग्रेषित हो जाता है।
हर कॉल — आती या जाती — KatoCall से गुज़रती है, जहाँ बिलिंग होती है।

आपका मुनाफ़ा कहाँ से आता है

आप कैरियर से मिनट एक दाम पर ख़रीदते हैं और ग्राहकों को अधिक दाम पर बेचते हैं। KatoCall दोनों दाम रखता है और हर कॉल पर अंतर अपने पास रखता है।

आप कैरियर को देते हैं
$0.0090
प्रदाता दर, प्रति मिनट
आप ग्राहक से लेते हैं
$0.0150
ग्राहक दर, प्रति मिनट
आपके पास रहता है
$0.0060
आपका मार्जिन, अपने आप

जानना अच्छा है: KatoCall मुद्राएँ नहीं बदलता। सेटिंग्स में एक मुद्रा चुनें (डिफ़ॉल्ट अमेरिकी डॉलर) और ख़रीद-बिक्री दोनों में वही इस्तेमाल करें, ताकि हर मार्जिन एक सीधा घटाव हो।

भाग 1

सर्वर पर इंस्टॉल करें

यह एक बार, बिल्कुल नए सर्वर पर किया जाता है। अगर कोई तकनीकी व्यक्ति आपके लिए सर्वर तैयार करता है, तो उसे यह भाग दे दें।

पहले क्या चाहिए

एक सर्वरDebian 12 (Bookworm), 64-बिट — नया। कोई भी ठीक-ठाक VPS चलेगा (OVH, Hetzner, DigitalOcean, Vultr)।
आकार2 CPU कोर, 4 GB RAM, 20 GB डिस्क। 2 GB RAM न्यूनतम है।
एक सार्वजनिक IPसर्वर को इंटरनेट पर अपना पता चाहिए — यह आपका प्रदाता देता है।
सर्वर लॉगिनroot पासवर्ड, या sudo वाला उपयोगकर्ता।
आपके कैरियर सेएक SIP ट्रंक (उसका होस्ट, और एक अनुमत IP या उपयोगकर्ता नाम/पासवर्ड), साथ ही आपके नंबर (DID)।
एक डोमेन नाम (वैकल्पिक)केवल तभी जब आपको https ताला चाहिए। बिना इसके शुरू कर सकते हैं और बाद में जोड़ सकते हैं।

इंस्टॉल करें

katocall-1.0.0.tar.gz को सर्वर पर कॉपी करें और इन कमांड को एक-एक करके चलाएँ। हर एक बताता है कि वह क्या कर रहा है और कुछ कम होने पर स्पष्ट संदेश के साथ रुक जाता है।

  1. अनज़िप करें और सर्वर जाँचें

    पहला कमांड कुछ नहीं बदलता — यह पुष्टि करता है कि सर्वर तैयार है और कुछ कम होने पर बताता है।

    root@your-server
    # unpack the package
    tar -xzf katocall-1.0.0.tar.gz
    cd katocall-1.0.0
    
    # सर्वर जाँचता है (सुरक्षित — कुछ नहीं बदलता)
    sudo bash install/00-preflight.sh
  2. इंस्टॉल स्क्रिप्ट क्रम में चलाएँ

    इन्हें एक-एक करके चलाएँ। नंबर 01 फ़ोन इंजन बनाता है और 10–20 मिनट लेता है; बाकी तेज़ हैं।

    root@your-server
    sudo bash install/01-install-asterisk.sh   # फ़ोन इंजन (10–20 मिनट)
    sudo bash install/02-install-base-stack.sh
    sudo bash install/03-setup-admin-panel.sh
    sudo bash install/04-configure-ami.sh
    sudo bash install/05-production-hardening.sh
    sudo bash install/06-configure-did-forwarding.sh
    sudo bash install/07-configure-fail2ban.sh
    sudo bash install/08-configure-nat.sh
    sudo bash install/09-configure-outbound.sh
    sudo bash install/11-configure-backups.sh
    sudo bash install/12-configure-dialer.sh   # केवल तभी जब आपको डायलर चाहिए

    01 से 09 अनिवार्य हैं। चरण 12 केवल डायलर के लिए है — इसे छोड़ दें, बाकी सब फिर भी चलता है।

  3. पुष्टि करें कि सब ठीक है

    यह लगभग 65 जाँचें चलाता है — हर सेवा, फ़ायरवॉल, बैकअप, सुरक्षा — और जो विफल हो उसके लिए बताता है कि क्या ठीक करना है।

    root@your-server
    sudo bash install/verify.sh
    
    PASS 66   WARN 1   FAIL 0
  4. पहली बार लॉग इन करें

    ब्राउज़र में सर्वर का पता खोलें और साइन इन करें। यह तुरंत नया पासवर्ड माँगता है — जब तक आप सेट नहीं करते, कुछ काम नहीं करता।

    • पता: http://your-server-address/
    • उपयोगकर्ता नाम: admin
    • पासवर्ड (तुरंत बदलें): Katocall

असली कॉल से पहले: HTTPS चालू करें। जब तक ऐसा न करें, पैनल सादे http पर चलता है और आपका लॉगिन बिना सुरक्षा इंटरनेट पर जाता है। जब कोई डोमेन सर्वर की ओर इशारा करे, चलाएँ:

sudo bash install/10-configure-tls.sh panel.yourcompany.com you@yourcompany.com

भाग 2

कॉल चलाने के लिए सेट करें

अब आप पैनल में हैं। इन छह चीज़ों को इसी क्रम में बनाएँ — हर एक पिछली का उपयोग करती है। सब कुछ साइड मेन्यू में है।

1Suppliersआप किससे मिनट ख़रीदते हैं
2Rate Cardsआपके ख़रीद और बिक्री दाम
3Trunksआपके कैरियर तक की लाइन
4Routing Groupsकौन-सी कॉल किस लाइन से
5Accountsआपके ग्राहक
6DIDsआने वाले नंबर
  1. Suppliers — आप किससे मिनट ख़रीदते हैं

    सप्लायर (Supplier) वह कैरियर है जिससे आप मिनट ख़रीदते हैं। यहाँ से शुरू करें क्योंकि बाकी सब इसी की ओर इशारा करता है। Suppliers → New Supplier खोलें और नाम दें।

    Suppliers+ New Supplier
    e.g. IDT Gold
    USD — $ US Dollar
    Account manager, contract terms…
    Suppliers → New Supplier
  2. Rate Cards — आपके ख़रीद और बिक्री दाम

    रेट कार्ड (Rate Card) एक मूल्य सूची है, हर गंतव्य के लिए एक पंक्ति (उपसर्ग जैसे अमेरिका के लिए 1 या ब्रिटेन के लिए 44)। दो तरह के बनाएँ:

    • Provider Rates — आपका सप्लायर आपसे जो लेता है।
    • Customer Rates — आप ग्राहकों से जो लेते हैं (अधिक — वही अंतर आपका मुनाफ़ा है)।

    सैकड़ों उपसर्ग टाइप न करें: कार्ड खोलें और Import CSV पर क्लिक करके अपने कैरियर की मूल्य फ़ाइल एक साथ लोड करें।

    USA Wholesale — ProviderImport CSV
    DestinationPrefixPer min
    United States1$0.0090
    United Kingdom44$0.0110
    Mexico Mobile521$0.0180
    Rates → Import CSV

    जानना अच्छा है: दरें 4 दशमलव तक सहेजी जाती हैं; 5 दशमलव वाली सूची आयात पर गोल कर दी जाती है।

  3. Trunks — आपके कैरियर तक की असली लाइन

    ट्रंक (Trunk) किसी सप्लायर से जीवंत कनेक्शन है। Trunks → New Trunk खोलें। दो बातें अहम हैं:

    • Direction — Outbound (जाती), Inbound (आती) या Both (दोनों)।
    • Authentication — IP-based (वे आपके सर्वर के पते पर भरोसा करते हैं) या Username/Password (उन्होंने आपको SIP लॉगिन दिया)।

    सहेजने के बाद, ग्राहकों को भेजने से पहले Test Call से जाँचें कि यह डायल करती है।

    New TrunkSave
    IDT-GOLD
    Outbound
    IP-based
    sip.idtgold.com
    30
    Trunks → New Trunk

    ट्रंक के नाम में स्थान (स्पेस) नहीं हो सकता — IDT GOLD नहीं, IDT-GOLD इस्तेमाल करें।

  4. Routing Groups — कौन-सी कॉल किस लाइन से

    रूटिंग समूह कहता है: इस तरह के नंबर के लिए, इसी क्रम में ये ट्रंक आज़माओ। दो डायल:

    • Priority — कम पहले आज़माया जाता है। अपने सबसे सस्ते कैरियर को प्राथमिकता 1 पर रखें।
    • Weight — समान प्राथमिकता वाले ट्रंक के बीच ट्रैफ़िक बाँटता है।

    अगर पहला ट्रंक व्यस्त हो या विफल हो, तो KatoCall अगले पर चला जाता है। Preview में नंबर टाइप करके देखें कि वह कौन-सा ट्रंक इस्तेमाल करेगा।

    Standard LCR+ Add Route
    TrunkPriorityWeight
    IDT-GOLD1 first100
    Backup-Carrier2100
    Routing Groups → Add Route
  5. Accounts — आपके ग्राहक

    अकाउंट (Account) एक ग्राहक है। Accounts → New Account खोलें। ज़रूरी विकल्प:

    • Billing Type — Prepaid (बैलेंस भरते हैं; शून्य पर कॉल रुक जाती है) या Postpaid (बाद में बिल)।
    • Rate Card — चरण 2 की ग्राहक मूल्य सूची।
    • Routing Group — उनकी कॉल कैसे बाहर जाती है, चरण 4 से।
    • वे कैसे जुड़ते हैं — एक अनुमत IP, या उनके फ़ोन/PBX के लिए उपयोगकर्ता नाम और पासवर्ड।
    New AccountSave
    Acme Telecom
    Prepaid
    $250.00
    USA Retail
    Standard LCR
    Accounts → New Account

    जानना अच्छा है: जो भी अकाउंट बाहर कॉल करता है, उसे उन उपसर्गों को कवर करने वाला ग्राहक Rate Card चाहिए जो आप बेचते हैं — वरना वे कॉल अस्वीकृत होती हैं (कभी शून्य पर बिल नहीं)।

  6. DIDs — भीतर की ओर बजने वाले नंबर

    DID वह नंबर है जिसे लोग आपके किसी ग्राहक तक पहुँचने के लिए मिलाते हैं। अकाउंट खोलें, DIDs → Add DID पर जाएँ, नंबर और अग्रेषण गंतव्य लिखें। (पहले अकाउंट सहेजें।)

    Acme Telecom · DIDs+ Add DID
    DID NumberForwards To
    +1 305 555 0100Acme main lineactive
    Accounts → DIDs → Add DID

पैनल के हर फ़ील्ड के पास एक छोटा ? है जो उसका काम बताता है, दसों भाषाओं में। बड़े बदलावों के बाद Settings → Network आपकी कॉन्फ़िगरेशन फ़ोन इंजन को भेजता है।

भाग 3

डायलर अभियान चलाएँ

डायलर नंबरों की सूची पर कॉल करता है, एक रिकॉर्ड किया संदेश बजाता है, और लोगों को जुड़ने, कॉलबैक माँगने या हटने के लिए एक कुंजी दबाने देता है। पहले इंस्टॉल का चरण 12 ज़रूरी है।

समझें कि यह क्या है: यह एक पावर डायलर (power dialer) है, प्रिडिक्टिव नहीं। कोई आंसरिंग-मशीन डिटेक्शन नहीं (वॉइसमेल उत्तरित गिना जाता है) और कोई स्वतः गति नहीं — आप एक साथ चलने वाली कॉल की एक निश्चित संख्या तय करते हैं। एक समय में एक ही सर्वर पर चलता है।

  1. अभियान बनाएँ

    Dialer Campaigns → New Campaign खोलें। जिस अकाउंट को बिल हो उसे चुनें, नाम दें, गति सेट करें: Max Concurrent Calls, Max Attempts और Retry gap।

    New CampaignSave
    Acme Telecom
    10
    3
    Upload a .wav / .mp3…
    Dialer Campaigns → New Campaign
  2. अपना संदेश और मेन्यू जोड़ें

    उत्तर मिलने पर बजने वाला Prerecorded Message अपलोड करें। फिर IVR Menu बनाएँ — हर कुंजी क्या करती है:

    • 1 दबाएँ → एजेंट को स्थानांतरित
    • 2 दबाएँ → कॉलबैक माँगें
    • 9 दबाएँ → Do-Not-Call में जोड़ें (फिर कभी डायल नहीं)
  3. अपने संपर्क अपलोड करें

    अभियान के Contacts भाग में Upload CSV पर क्लिक करें — फ़ोन नंबरों की एक सरल फ़ाइल।

  4. Start दबाएँ — और परिणाम पढ़ें

    Start दबाएँ और यह सेकंडों में डायल करना शुरू कर देता है; Pause उतनी ही तेज़ी से रोक देता है। पूरा होने पर Download Results एक फ़ाइल देता है जो हर नंबर का हाल दिखाती है।

    Spring PromoStart
    Phone NumberAttemptsResult
    +1 305 555 00001answered
    +1 305 555 00012no answer
    +1 305 555 00021transferred
    अभियान हर नंबर के लिए एक परिणाम भरता है।

भाग 4

रोज़मर्रा का संचालन

चार कमांड सर्वर पर आपके लगभग सभी कामों को कवर करते हैं।

root@your-server
sudo bash install/verify.sh            # क्या सब ठीक है?
sudo /usr/local/sbin/katocall-backup    # अभी बैकअप लें
sudo bash install/upgrade.sh           # नया संस्करण लागू करें
sudo bash install/uninstall.sh         # हटाएँ (आपका डेटा रहता है)

आपके बैकअप उसी डिस्क पर हैं जिसकी वे रक्षा करते हैं। उन्हें नियमित रूप से कहीं और कॉपी करें, वरना डिस्क खराब होने पर डेटा और उसका इकलौता बैकअप साथ चले जाते हैं।

किसी राजस्व रिपोर्ट पर भरोसा करने से पहले, आप साबित कर सकते हैं कि खाते पाई-पाई मिलते हैं:

sudo -u softswitch admin/backend/venv/bin/python admin/backend/manage.py verify_ledger

भाग 5

जब कुछ गड़बड़ हो

लॉगिन करते समय «सर्वर तक नहीं पहुँच सका»।
कोई सेवा शायद पुनः आरंभ हो रही है। रुकें और रीफ़्रेश करें। बना रहे तो install/verify.sh चलाएँ — यह ठीक उस सेवा की ओर इशारा करता है जो बंद है।
कॉल कनेक्ट नहीं होती।
क्रम से तीन बातें जाँचें: Account में बैलेंस और Rate Card है; Routing Group में उस गंतव्य के लिए ट्रंक है (Preview इस्तेमाल करें); ट्रंक का Test Call चलता है।
पासवर्ड ग़लत टाइप करने पर मैं लॉक हो गया।
KatoCall बार-बार विफलता पर जानबूझकर पते को रोकता है। रोक के समाप्त होने का इंतज़ार करें, या किसी अन्य डिवाइस से IP Bans पेज से हटाएँ।
मेरा डायलर «Running» दिखाता है पर कुछ डायल नहीं करता।
शायद इंस्टॉल का चरण 12 छूट गया। install/12-configure-dialer.sh चलाएँ, फिर install/verify.sh।
मार्जिन कॉलम खाली है।
ग्राहक की मुद्रा और ट्रंक की मुद्रा अलग हैं। KatoCall मुद्राएँ नहीं बदलता — एक ही मुद्रा में ख़रीदें-बेचें, मार्जिन दिखने लगेगा।

समस्या जो भी हो, सबसे पहले sudo bash install/verify.sh चलाना चाहिए। यह ~65 चीज़ें जाँचता है और फिर से चलाने वाली स्क्रिप्ट बताता है।