الدليل الكامل

ثبّته ثم اضبطه لتمرير المكالمات

دليل بلغة بسيطة لتثبيت KatoCall على خادم وجعله يفوتر مكالمات حقيقية. اتبع الأجزاء بالترتيب — لا حاجة لخبرة في الاتصالات.

الإصدار 1.0.0لخوادم Debian 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).
المواصفاتنواتا معالج، 4 غيغابايت ذاكرة، 20 غيغابايت قرص. 2 غيغابايت ذاكرة هي الحد الأدنى.
عنوان 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 أمرًا ويسمّي السكربت الواجب إعادة تشغيله.