It netwurk hat ferskate opsjes foar it yntegrearjen fan IP-PBX Asterisk en CRM Bitrix24, mar wy hawwe lykwols besletten om ús eigen te skriuwen.
Funksjoneel is alles standert:
Troch te klikken op de keppeling mei it telefoannûmer fan de klant yn Bitrix24, ferbynt Asterisk it ynterne nûmer fan de brûker út namme fan wa't dizze klik makke is mei it telefoannûmer fan de klant. Yn Bitrix24 wurdt in rekord fan 'e oprop opnommen, en oan' e ein fan 'e oprop wurdt it konversaasjerekord ophelle.
In oprop komt by Asterisk fan bûten - yn 'e Bitrix24-ynterface litte wy de kliïntkaart sjen oan de meiwurker op waans nûmer dizze oprop kaam.
As d'r gjin sa'n klant is, iepenje de kaart foar it meitsjen fan in nije lead.
Sadree't de oprop foltôge is, reflektearje wy dit yn 'e kaart en lûke de opname fan it petear op.
Under de besuniging sil ik jo fertelle hoe't jo alles foar josels kinne ynstelle en in keppeling jaan oan github - ja, ja, nim it en brûk it!
Algemiene beskriuwing
Wy neamden ús yntegraasje CallMe. CallMe is in lytse webapplikaasje skreaun yn PHP.
Ik sil de analyse fan 'e konfiguraasje, feiligensproblemen, it krijen fan in sertifikaat, en sels it kiezen fan in webserver bûten it berik fan it artikel litte - hjir is in protte oer skreaun. De applikaasje hat gjin beheiningen, it wurket op sawol http as https.
Wy hawwe https, lit ús sertifikaat fersiferje.
As jo alles goed dien hawwe, dan moatte jo troch op de keppeling te klikken soks sjen
Bitrix24 ynstelle
Litte wy twa webhooks oanmeitsje.
Ynkommende webhook.
Under it administrator akkount (mei id 1) gean lâns it paad: Applikaasjes -> Webhooks -> Webhook tafoegje -> Ynkommende webhook
Folje de parameters fan 'e ynkommende webhook yn lykas yn' e skermôfbyldings:
En klik op bewarje.
Nei it bewarjen sil Bitrix24 de URL fan 'e ynkommende webhook leverje, bygelyks:
Bewarje jo ferzje fan 'e URL sûnder it efterfolgjende /profyl/ - it sil brûkt wurde yn 'e applikaasje om te wurkjen mei ynkommende oproppen.
ik haw it https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/
ik haw it xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. Jo moatte it ek nei josels kopiearje, it is nedich om útgeande oproppen te meitsjen.
Wichtich!
In ssl-sertifikaat moat konfigureare wurde op de Bitrix24-tsjinner (jo kinne letsencrypt brûke), oars sil de BitrixXNUMX-api net wurkje. As jo in wolkferzje hawwe, meitsje jo gjin soargen - ssl is der al.
Wichtich!
Yn it fjild "Address prosessor" moat in adres oanjûn wurde dat tagonklik is fan it ynternet!
En mei de lêste touch, litte wy ús CallMeOut ynstallearje as in applikaasje foar it meitsjen fan petearen (sadat troch te klikken op it nûmer op 'e PBX, in kommando sil fleane om de oprop te begjinnen).
Selektearje yn it menu: Mear -> Tillefoany -> Mear -> Ynstellings, ynsteld op "Nûmer foar útgeande oproppen standert" Applikaasje: CallMeOut en klik op "Bewarje"
asterisk opset
Foar suksesfolle ynteraksje tusken Asterisk en Bitrix24 moatte wy de callme AMI-brûker tafoegje oan manager.conf:
útsette de yngong yn 'e CDR-tabel foar dizze tafoeging (it is dêr net nedich), set de eintiid fan' e oprop yn, berekkenje de doer, as it resultaat fan 'e oprop net bekend is - set (fariabele) Neam my DISPOSISJON) en, de lêste stap, stjoer alles nei Bitrix fia de systeemkrullen.
En in bytsje mear magy - in ynkommende oprop:
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();
}
Se seit PBX ynstallearje CallerID (namme) fariabele CallMeCallerIDName.
De CallMeCallerIDName-fariabele sels wurdt op syn beurt ynsteld troch de CallMe-applikaasje (as Bitrix24 in folsleine namme hat foar it nûmer fan de beller, sille wy it ynstelle as CallerID (namme), nee - wy sille neat dwaan).
bitrixApiUrl - URL fan de ynkommende webhook, sûnder profyl/
extensions - list fan eksterne nûmers
kontekst - kontekst foar oprop ûntstean
listener_timeout - evenemint ferwurkjen snelheid fan asterisk
stjerke - in array mei de ferbiningynstellingen nei it asterisk:
gasthear - ip of hostnamme fan de asterisk-tsjinner
skema - ferbiningsdiagram (tcp://, tls://)
haven - haven
brûkersnamme - Brûkersnamme
geheim - wachtwurd
connect_timeout - ferbining timeout
read_timeout - timeout lêze
foarbyld ynstellingsbestân:
<?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 opset
Supervisor wurdt brûkt om it Asterisk CallMeIn.php-eveneminthannelerproses te starten, dat ynkommende petearen kontrolearret en ynteraksje mei Bitrix24 (de kaart sjen litte, de kaart ferbergje, ensfh.).
Fragen, suggestjes - asjebleaft yn 'e kommentaren. Ek, as jo ynteressearre binne yn hoe't de ûntwikkeling fan dizze yntegraasje gie, skriuw dan, en yn it folgjende artikel sil ik besykje alles yn mear detail te iepenbierjen.