شبکه گزینه های مختلفی برای ادغام IP-PBX Asterisk و CRM Bitrix24 دارد، اما ما تصمیم گرفتیم خودمان را بنویسیم.
از نظر عملکرد، همه چیز استاندارد است:
استریسک با کلیک بر روی پیوند با شماره تلفن مشتری در Bitrix24، شماره داخلی کاربری که این کلیک از طرف او انجام شده است را با شماره تلفن مشتری متصل می کند. در Bitrix24 یک رکورد از مکالمه ضبط می شود و در پایان مکالمه، رکورد مکالمه بالا کشیده می شود.
تماسی از خارج به استریسک می رسد - در رابط Bitrix24، کارت مشتری را به کارمندی که این تماس به شماره او رسیده است نشان می دهیم.
اگر چنین مشتری وجود ندارد، کارت را برای ایجاد سرنخ جدید باز کنید.
به محض اینکه تماس کامل شد، این را در کارت منعکس می کنیم و ضبط مکالمه را بالا می بریم.
در زیر برش، به شما خواهم گفت که چگونه همه چیز را برای خودتان تنظیم کنید و یک پیوند به github بدهید - بله، بله، آن را بگیرید و از آن استفاده کنید!
توضیحات عمومی
ما ادغام خود را CallMe نامیدیم. CallMe یک برنامه وب کوچک است که به زبان PHP نوشته شده است.
تجزیه و تحلیل پیکربندی، مسائل امنیتی، دریافت گواهینامه و حتی انتخاب سرور وب را خارج از محدوده مقاله می گذارم - در این مورد مطالب زیادی نوشته شده است. این برنامه هیچ محدودیتی ندارد، هم روی http و هم روی https کار می کند.
ما https داریم، اجازه دهید گواهی را رمزگذاری کنیم.
اگر همه چیز را به درستی انجام داده اید، با کلیک بر روی پیوند باید چیزی شبیه به این را ببینید
پیکربندی Bitrix24
بیایید دو وب هوک ایجاد کنیم.
وب هوک ورودی.
در زیر حساب مدیر (با شناسه 1) مسیر را طی کنید: برنامه ها -> وب هوک ها -> افزودن وب هوک -> وب هوک ورودی
پارامترهای وب هوک ورودی را مانند تصاویر پر کنید:
و روی save کلیک کنید.
پس از ذخیره، Bitrix24 آدرس وب هوک ورودی را ارائه می دهد، به عنوان مثال:
نسخه URL خود را بدون /profile/ ذخیره کنید - در برنامه برای کار با تماس های ورودی استفاده می شود.
برنامه ها -> Webhooks -> Add Webhook -> Outgoing Webhook
جزئیات در تصاویر موجود است:
ذخیره کنید و کد مجوز را دریافت کنید
دارمش xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. همچنین باید آن را برای خود کپی کنید، برای برقراری تماس های خروجی لازم است.
مهم!
گواهی ssl باید روی سرور Bitrix24 پیکربندی شود (می توانید از letsencrypt استفاده کنید)، در غیر این صورت api BitrixXNUMX کار نخواهد کرد. اگر نسخه ابری دارید، نگران نباشید - ssl در حال حاضر وجود دارد.
مهم!
در قسمت "آدرس پردازنده"، آدرسی که از اینترنت قابل دسترسی است باید مشخص شود!
و با آخرین لمس، بیایید CallMeOut خود را به عنوان یک برنامه برای برقراری تماس نصب کنیم (به طوری که با کلیک بر روی شماره در PBX، دستوری برای برقراری تماس پرواز می کند).
در منو، گزینه: More -> Telephony -> More -> Settings را انتخاب کنید، روی "Number for outgoing calls به طور پیش فرض" تنظیم کنید برنامه: CallMeOut و روی "ذخیره" کلیک کنید.
راه اندازی ستاره
برای تعامل موفق بین Asterisk و Bitrix24، باید کاربر callme AMI را به manager.conf اضافه کنیم:
ورودی جدول CDR را برای این برنامه افزودنی خاموش کنید (در آنجا نیازی نیست)، زمان پایان تماس را تنظیم کنید، مدت زمان را محاسبه کنید، اگر نتیجه تماس مشخص نیست - تنظیم کنید (متغیر با من DISPOSITION تماس بگیرید) و در مرحله آخر، همه چیز را از طریق curl سیستم به 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 نصب کنید شناسه تماس گیرنده (نام) متغیر CallMeCallerIDName.
خود متغیر CallMeCallerIDName به نوبه خود توسط برنامه CallMe تنظیم می شود (اگر Bitrix24 نام کاملی برای شماره تماس گیرنده داشته باشد، آن را به عنوان تنظیم می کنیم شناسه تماس گیرنده (نام)، نه - ما کاری انجام نخواهیم داد).
راه اندازی برنامه
فایل تنظیمات برنامه - /var/www/pbx.vistep.ru/config.php
شرح پارامترهای برنامه:
CallMeDEBUG - اگر 1 باشد، تمام رویدادهای پردازش شده توسط برنامه در فایل log نوشته می شود، 0 - ما چیزی نمی نویسیم
<?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
);
راه اندازی ناظر
از Supervisor برای راهاندازی فرآیند مدیریت رویداد Asterisk CallMeIn.php استفاده میشود که تماسهای دریافتی را نظارت میکند و با Bitrix24 تعامل دارد (نمایش کارت، پنهان کردن کارت و غیره).
سوالات، پیشنهادات - لطفا در نظرات. همچنین، اگر به چگونگی پیشرفت این ادغام علاقه دارید، بنویسید، و در مقاله بعدی سعی خواهم کرد همه چیز را با جزئیات بیشتری فاش کنم.