تحتوي الشبكة على خيارات مختلفة لدمج IP-PBX Asterisk و Bitrix24 CRM ، لكننا مع ذلك قررنا كتابة خياراتنا الخاصة.
وظيفيًا ، كل شيء قياسي:
من خلال النقر على الرابط مع رقم هاتف العميل في Bitrix24 ، تقوم Asterisk بربط الرقم الداخلي للمستخدم الذي تم إجراء هذه النقرة نيابة عنه مع رقم هاتف العميل. في Bitrix24 ، يتم تسجيل سجل المكالمة ، وفي نهاية المكالمة ، يتم سحب سجل المحادثة.
تصل مكالمة إلى Asterisk من الخارج - في واجهة Bitrix24 ، نعرض بطاقة العميل للموظف الذي وصلت هذه المكالمة إلى رقمه.
إذا لم يكن هناك عميل كهذا ، فافتح البطاقة لإنشاء عميل متوقع جديد.
بمجرد اكتمال المكالمة ، نعكس ذلك في البطاقة ونقوم بسحب تسجيل المحادثة.
تحت الخفض ، سأخبرك بكيفية إعداد كل شيء لنفسك وإعطاء رابط إلى جيثب - نعم ، نعم ، خذها واستخدمها!
وصف عام
أطلقنا على تكاملنا CallMe. CallMe هو تطبيق ويب صغير مكتوب بلغة PHP.
سأترك تحليل التكوين ، ومشكلات الأمان ، والحصول على شهادة ، وحتى اختيار خادم ويب خارج نطاق المقالة - لقد كتب الكثير حول هذا الموضوع. التطبيق ليس له قيود ، فهو يعمل على كل من http و https.
لدينا https ، فلنقم بتشفير الشهادة.
إذا فعلت كل شيء بشكل صحيح ، فعند النقر على الرابط ، سترى شيئًا كهذا
إعداد Bitrix24
لنقم بإنشاء خطافين للويب.
خطاف الويب الوارد.
ضمن حساب المسؤول (مع المعرف 1) ، انتقل على طول المسار: التطبيقات -> الخطافات على الويب -> إضافة الرد التلقائي على الويب -> الرد التلقائي على الويب
املأ معلمات خطاف الويب الوارد كما في لقطات الشاشة:
وانقر فوق حفظ.
بعد الحفظ ، سيوفر Bitrix24 عنوان URL لخطاف الويب الوارد ، على سبيل المثال:
احفظ نسختك من عنوان URL بدون اللاحقة / الملف الشخصي / - سيتم استخدامها في التطبيق للعمل مع المكالمات الواردة.
التطبيقات -> Webhooks -> إضافة Webhook -> Webhook الصادر
التفاصيل في لقطات الشاشة:
احفظ واحصل على رمز التفويض
انا أملكه xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. تحتاج أيضًا إلى نسخه إلى نفسك ، فهو ضروري لإجراء مكالمات صادرة.
المهم!
يجب تكوين شهادة SSL على خادم Bitrix24 (يمكنك استخدام Letsencrypt) ، وإلا فلن تعمل BitrixXNUMX api. إذا كان لديك إصدار سحابي ، فلا تقلق - SSL موجود بالفعل.
المهم!
في حقل "عنوان المعالج" ، يجب الإشارة إلى عنوان يمكن الوصول إليه من الإنترنت!
ومع اللمسة الأخيرة ، دعنا نثبِّت CallMeOut كتطبيق لإجراء المكالمات (بحيث أنه من خلال النقر على الرقم الموجود في PBX ، سينطلق الأمر لبدء المكالمة).
في القائمة ، حدد: المزيد -> الاتصالات الهاتفية -> المزيد -> الإعدادات ، أدخل "رقم المكالمات الصادرة افتراضيًا" التطبيق: CallMeOut وانقر على "حفظ"
إعداد النجمة
للتفاعل الناجح بين Asterisk و Bitrix24 ، نحتاج إلى إضافة مستخدم callme AMI إلى manager.conf:
قم بإيقاف تشغيل الإدخال في جدول CDR لهذا الامتداد (ليس هناك حاجة إليه) ، قم بتعيين وقت انتهاء المكالمة ، وحساب المدة ، إذا كانت نتيجة المكالمة غير معروفة - تعيين (متغير اتصل بي DISPOSITION) والخطوة الأخيرة ، أرسل كل شيء إلى Bitrix من خلال تجعيد النظام.
والمزيد من السحر - مكالمة واردة:
888999 => {
&recording(${CALLERID(number)},${EXTEN});
Answer();
ExecIF(${CallMeCallerIDName}?Set(CALLERID(name)=${CallMeCallerIDName}):NoOp()); // выставляем CallerID если узнали его у Битрикс24
Set(CallStart=${STRFTIME(epoch,,%s)}); // начинаем отсчет времени звонка
Queue(Q1,tT);
Set(CallMeDISPOSITION=${CDR(disposition)});
Hangup();
}
تقول تثبيت PBX CallerID (الاسم) عامل CallMeCallerIDName.
يتم تعيين متغير CallMeCallerIDName نفسه ، بدوره ، بواسطة تطبيق CallMe (إذا كان لدى Bitrix24 اسمًا كاملاً لرقم المتصل ، فسنقوم بتعيينه على أنه CallerID (الاسم)، لا - لن نفعل أي شيء).
اتصل - إذا كان 1 ، فستتم كتابة جميع الأحداث التي تتم معالجتها بواسطة التطبيق في ملف السجل ، 0 - لا نكتب أي شيء
التكنولوجيا SIP / PJSIP / IAX / إلخ
AuthorToken - رمز ترخيص Bitrix24 ، رمز تفويض خطاف الويب الصادر
bitrixApiUrl - عنوان URL لخطاف الويب الوارد ، بدون ملف تعريف /
امتدادات - قائمة الأرقام الخارجية
سياق الكلام - سياق إنشاء المكالمة
listener_timeout - سرعة معالجة الحدث من علامة النجمة
النجمة - مصفوفة مع إعدادات الاتصال بعلامة النجمة:
مضيف - IP أو اسم مضيف خادم النجمة
مخطط - مخطط الاتصال (tcp: // ، tls: //)
ميناء - ميناء
اسم المستخدم - اسم المستخدم
سري - كلمة المرور
ربط مهلة - انتهى وقت محاولة الاتصال
إنتهى وقت القراءة - إنتهى وقت القراءة
مثال على ملف الإعدادات:
<?php
return array(
'CallMeDEBUG' => 1, // дебаг сообщения в логе: 1 - пишем, 0 - не пишем
'tech' => 'SIP',
'authToken' => 'xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6', //токен авторизации битрикса
'bitrixApiUrl' => 'https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/', //url к api битрикса (входящий вебхук)
'extentions' => array('888999'), // список внешних номеров, через запятую
'context' => 'dial_out', //исходящий контекст для оригинации звонка
'asterisk' => array( // настройки для подключения к астериску
'host' => '10.100.111.249',
'scheme' => 'tcp://',
'port' => 5038,
'username' => 'callme',
'secret' => 'JD3clEB8_f23r-3ry84gJ',
'connect_timeout' => 10000,
'read_timeout' => 10000
),
'listener_timeout' => 300, //скорость обработки событий от asterisk
);
إعداد المشرف
يتم استخدام المشرف لبدء عملية معالج الحدث من Asterisk CallMeIn.php ، والتي تراقب المكالمات الواردة وتتفاعل مع Bitrix24 (إظهار البطاقة وإخفاء البطاقة وما إلى ذلك).
أسئلة ، اقتراحات - من فضلك في التعليقات. أيضًا ، إذا كنت مهتمًا بكيفية تطور هذا التكامل ، فاكتب ، وسأحاول في المقالة التالية الكشف عن كل شيء بمزيد من التفصيل.