تكوين FreePBX + GoIP

هناك عدد غير قليل من أمثلة التخصيص على الإنترنت. لكن لا أحد منهم يعمل لي كما ينبغي. إحدى المشكلات التي واجهتها هي التعريف غير الصحيح للخط مع مكالمة واردة. في وقت واحد ، لم أجد دليلًا لحل هذه المشكلة. لذلك ، قررت نشر نسختي من التعليمات هنا. في الوقت نفسه ، وسرير لنفسك للمستقبل.

إعداد GoIP


"التكوينات" - "التفضيلات"


بوابة GSM في شبكة محلية دون الوصول إلى الإنترنت. قم بإعداد خادم NTP على الشبكة المحلية لتوزيع الوقت. عند إعادة التشغيل ، تقوم بوابة GSM بمزامنة الوقت الحالي وعرضه بشكل صحيح. يمكنك تخطي هذه الخطوة ، ثم سيتعين عليك ضبط الوقت يدويًا على البوابة. إذا كان لديك وصول إلى الإنترنت ، فحدد أحد خوادم NTP العامة.

  • في Time Server ، اكتب عنوان IP لخادم NTP.
  • حدد المنطقة الزمنية ، لدي منطقة زمنية: GMT + 6.
  • تعطيل إعادة التشغيل التلقائي. مع أحدث إصدار من البرامج الثابتة ، لا يتم ملاحظة مشاكل تجميد بوابة GSM.
  • تعطيل IVR.

صورة

"التكوينات" - "الشبكة"


  • منفذ LAN - IP ثابت
  • عنوان IP - حدد عنوان IP الثابت الخاص بالبوابة

"التكوينات" - "الصوت عبر بروتوكول الإنترنت الأساسي"


وضع التكوين - التكوين بواسطة خط.

بالنسبة للقناة الأولى التي حدد فيها "السطر 1 لتوجيه المسار" 1 ، للثاني 2 ، والثالث 3 ، إلخ.
معرّف المصادقة: سجّل رقم بطاقة SIM (لديّ مسجل من دون 8/7) ، على سبيل المثال 9651234567
خادم مسجل SIP: عنوان IP لخادم SIP (192.168.0.10)

Line 1 Authentication ID: 9651234567 Password:  Routing Prefix: 1 Sip Proxy: SIP Registrar Server: 192.168.0.10:5160 Phone Nymber: 9651234567 Display Name: 9651234567 

نحن نفعل الشيء نفسه مع بقية الخطوط.

صورة

"التكوينات" - "Advance VoIP"


صورة

"التكوينات" - "Call Out"


لكل سطر ، حدد البادئة التي تأتي مع علامة النجمة وسيتم حذفها على قناة البوابة قبل إجراء مكالمة صادرة: على سبيل المثال ، لخطة طلب CH1: 1: -1 ، خطة طلب CH2: 2: -2 ، إلخ.

  Dial Plan: 1:-1 

صورة

"التكوينات" - "Call In"


توصي إرشادات الإعداد بوضع CID Forward: حدد استخدام CID كمعرف المتصل SIP لتحديد الرقم الوارد بشكل صحيح. لقد اخترت استخدام معرف الحزب البعيد. تم ذلك لتحديد الخط الذي جاءت به المكالمة بشكل صحيح. يتم تحديد الرقم الوارد بشكل صحيح.

صورة

هذا يكمل الإعداد GoIP.

تكوين FreePBX 14


اتصالات - جذوع


حدد "إضافة جذع SIP (chan_sip)".

علامة التبويب عام


صورة

انتقل إلى علامة التبويب "قواعد معالجة الطلب"


يصف القوالب. حدد البادئات لكل صندوق بالترتيب. للسطر الأول 1 ، والثاني 2 ، إلخ.

صورة

تبويب رشفة الإعدادات العامة


المنتهية ولايته

تستخدم العلامة النجمية نفس المنفذ لعدة حسابات. هذا يخلق مشكلة في تحديد الخط الذي جاءت به المكالمة. مع مكالمة واردة ، يتم استخدام آخر وليمة مسجلة دائمًا ونتيجة لذلك ، يتم تحديد خط GoIP الذي جاءت منه المكالمة بشكل غير صحيح. لتحديد الخط بشكل صحيح ، تم تعيين وضع GoIP على استخدام معرف الطرف البعيد ، وعلى Astrisk ، trustrpid = yes .

 host=dynamic username=7712020077 secret=Djfgkjgfd!!!!234%$^%# type=friend context=from-trunk-sip-9651234567-custom trustrpid=yes 

صورة

الوارد

 in-9651234567 secret=Djfgkjgfd!!!!234%$^%# type=user context=from-trunk-sip-9651234567-custom 

صورة

بعد ذلك ، قم بإنشاء أرقام الامتداد ومجموعة الاتصال. لن أصف كيف يتم ذلك. في FreePBX ، يتم ذلك من خلال قائمة "التطبيقات" - "الامتدادات" و "التطبيقات" - "مجموعات الاتصال". كل شيء بسيط جدا وبديهية.

اتصالات - التوجيه للخارج


حدد "إضافة مسار للخارج".

علامة تبويب إعدادات الطريق


حدد اسم المسار ، على سبيل المثال ، all_line. بعد ذلك ، نشير بترتيب الأمتعة التي سيتم من خلالها إجراء المكالمات الصادرة.

صورة

انتقل إلى علامة التبويب "قواعد الطلب"


نحن هنا وصف أنماط للأرقام الصادرة.

صورة

يتم ترك علامات التبويب المتبقية بشكل افتراضي. هذا يكمل تكوين الطريق الصادرة. يمكنك محاولة إجراء مكالمة.

هنا قد تنشأ مشكلة في أن المكالمات سوف تمر عبر جذوع بالترتيب الذي يتم الإشارة إليها في المسار. وهذا بدوره سيؤدي إلى حقيقة أن الوحدات الموجودة في الخطوط الأولى ستذهب أكثر من الوحدات التي تتبعها. لحل هذه المشكلة ، يمكنك إعادة كتابة قواعد المسار الخارجي باستخدام extensions_override_freepbx.conf.

حسب عدد الخطوط ، يمكنك استخدام عشوائي. لخطين ، على سبيل المثال ، 1.2. أنا استخدم رمز مثل هذا

  [outrt-sets](!) exten => _.,50,Set(a_rand_num=${RAND(1,2)}); same => n,GotoIf($["${a_rand_num}"<"2"]?${n}+1:${n}+2) same => n,GotoIf($["${GROUP_COUNT(OUT_1)}">="${OUTMAXCHANS_1}"]?${n}+1:out-1-cust) ... [outrt](outrt-sets) ; all_line exten => _+7XXXXXXXXXX,3,Goto(50) exten => _8XXXXXXXXXX,3,Goto(50) 

اتصالات - التوجيه الداخلي


إضافة الطريق إلى الداخل.

علامة التبويب عام


حدد وصفه ، على سبيل المثال - "الوارد".

بعد ذلك ، حدد العنصر الأخير "تعيين الاتجاه" ، الذي نختار فيه نقطة نهاية المسار. في حالتي ، أشرت إلى مجموعة اتصال بحيث يتم توجيه المكالمات إلى أي مشغل مجاني.

في الواقع ، لدي منطق أكثر تعقيدا. باستخدام برنامج نصي AGI ، أبحث عن الرقم الوارد في قاعدة البيانات ، وإذا وجدت ، سأرسله إلى المشغل الذي تم تعيينه له. قبل تلقي مكالمة إلى العميل sip من خلال jabber ، أرسل رسالة إلى المشغل تتضمن معلومات حول العميل. إذا لم يتم العثور على الرقم في قاعدة البيانات ، فإن المكالمة تذهب إلى المجموعة.

صورة

هذا يكمل الإعداد. يمكنك محاولة إجراء واستقبال المكالمات.

استنتاج


كثير لا ترغب في تكوين FreePBX ، ولكن وضعت النجمة العارية. لم تكن لدي أي تجربة في مجال الاتصال الهاتفي عبر بروتوكول الإنترنت ، لذلك في وقت واحد ، وقع الاختيار على FreePBX. لم يكن لدي مشاكل في تحرير التكوينات. يمكن إجراء أي تغييرات باستخدام ملفات التهيئة extensions_custom.conf و extensions_override_freepbx.conf. ليس من الصعب معرفة ذلك. لدينا مركز اتصال صغير. أثبتت GoIP لتكون الأفضل. لم يتم ترتيب الشيء الوحيد بواسطة خادم الرسائل النصية المحلية. لذلك ، تمت كتابة بلدي ، والذي يدعم إرسال واستقبال الرسائل القصيرة ، ويظهر أيضا حالة تسليم الرسائل القصيرة. لدينا بديل كامل للهاتف.
كعميل sip ، نستخدم هاتف ويب مكتوبًا على أساس مكتبة JsSip ، وهو يعمل بشكل جيد في Firefox 68 و Chrome 76. إذا كان لديّ وقت ، فسوف أكتب تعليمات أكثر تفصيلاً حول استخدام مكتبة JsSip. وكذلك مقالة منفصلة حول إنشاء خادم الرسائل القصيرة الخاصة بك.

Source: https://habr.com/ru/post/ar464765/


All Articles