Obstajajo različne možnosti za integracijo IP-PBX Asterisk in CRM Bitrix24 v omrežje, vendar smo se vseeno odločili napisati svojo.
Kar zadeva funkcionalnost, je vse standardno:
S klikom na povezavo s telefonsko številko stranke v Bitrix24 Asterisk poveže interno številko uporabnika, v imenu katerega je bil opravljen klik, s telefonsko številko stranke. V Bitrix24 se snema zapis klica in ob koncu klica se potegne posnetek pogovora.
Asterisk prejme klic od zunaj - v vmesniku Bitrix24 kartico stranke pokažemo zaposlenemu, na katerega številko je ta klic prispel.
Če te stranke ni, bomo odprli kartico za ustvarjanje novega potencialnega kupca.
Takoj ko je klic končan, to prikažemo na kartici in prikažemo posnetek pogovora.
Spodaj vam bom povedal, kako vse nastaviti zase in vam dal povezavo do githuba - da, da, vzemite in uporabite!
Splošni opis
Našo integracijo smo poimenovali CallMe. CallMe je majhna spletna aplikacija, napisana v PHP.
Razčlenjevanje konfiguracije, varnostne težave, pridobivanje certifikata in celo izbiro spletnega strežnika bom pustil izven okvira članka - o tem je bilo že veliko napisanega. Aplikacija je brez omejitev, deluje tako preko http kot https.
Uporabljamo https, šifrirajmo potrdilo.
Če ste vse naredili pravilno, bi morali s klikom na povezavo videti nekaj takega
Nastavitev Bitrix24
Ustvarimo dva webhooka.
Dohodni webhook.
Pod skrbniškim računom (z ID-jem 1) sledite poti: Aplikacije -> Webhooks -> Dodaj webhook -> Incoming webhook
Izpolnite parametre dohodnega webhooka kot na posnetkih zaslona:
In kliknite shrani.
Po shranjevanju bo Bitrix24 zagotovil URL dohodnega webhooka, na primer:
Shranite vašo različico URL-ja brez končnega /profila/ - ta bo uporabljen v aplikaciji za delo z dohodnimi klici.
tole imam xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. Kopirati ga morate tudi zase, potrebujete ga za odhodne klice.
Pomembno!
SSL certifikat mora biti nastavljen na strežniku Bitrix24 (lahko uporabite letsencrypt), sicer Bitrix api ne bo deloval. Če imate različico v oblaku, ne skrbite - že ima ssl.
Pomembno!
Polje “Naslov procesorja” mora vsebovati naslov, ki je dostopen iz interneta!
In za konec še namestimo naš CallMeOut kot aplikacijo za klicanje (tako da ob kliku na številko na centrali odleti ukaz za vzpostavljanje klica).
V meniju izberite: Več -> Telefonija -> Več -> Nastavitve, nastavite v “Privzeta številka odhodnega klica” Aplikacija: CallMeOut in kliknite “Shrani”
Nastavitev zvezdice
Za uspešno interakcijo med Asterisk in Bitrix24 moramo v manager.conf dodati uporabnik AMI callme:
onemogočite vnos v tabelo CDR za to razširitev (tam ni potrebna), nastavite končni čas klica, izračunajte trajanje, če rezultat klica ni znan - nastavite (spremenljivka CallMeDISPOSITION) in zadnji korak vse pošljite v Bitrix prek sistemskega kodra.
In še malo čarovnije - dohodni klic:
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 pove, naj se namesti ID klicatelja (ime) enako spremenljivki CallMeCallerIDName.
Sama spremenljivka CallMeCallerIDName pa nastavi aplikacija CallMe (če ima Bitrix24 polno ime za številko klicatelja, ga nastavi kot ID klicatelja (ime), ne - ne bomo storili ničesar).
Nastavitev aplikacije
Datoteka z nastavitvami aplikacije - /var/www/pbx.vistep.ru/config.php
Opis parametrov aplikacije:
CallMeDEBUG — če je 1, bodo vsi dogodki, ki jih obdela aplikacija, zapisani v dnevniško datoteko, 0 — ne pišemo ničesar
tech - SIP/PJSIP/IAX/itd
authToken — avtorizacijski žeton Bitrix24, avtorizacijska koda za izhodni webhook
bitrixApiUrl — URL dohodnega webhooka, brez profila/
razširitve — seznam zunanjih številk
ozadje — kontekst za vzpostavljanje klica
poslušalec_timeout — hitrost obdelave dogodkov iz zvezdice
zvezdico — polje z nastavitvami za povezavo z zvezdico:
gostitelj — ip ali ime gostitelja strežnika z zvezdico
shema — povezovalni diagram (tcp://, tls://)
pristanišče - pristanišče
uporabniško ime - Uporabniško ime
Skrivnost - geslo
povezava_timeout — časovna omejitev povezave
read_timeout - časovna omejitev branja
primer nastavitvene datoteke:
<?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
);
Nastavitev nadzornika
Supervisor se uporablja za zagon postopka obdelovalca dogodkov iz Asterisk CallMeIn.php, ki spremlja dohodne klice in komunicira z Bitrix24 (pokaži kartico, skrij kartico itd.).
Datoteka z nastavitvami, ki jo je treba ustvariti:
Vprašanja, predlogi - pustite jih v komentarjih. Tudi, če vas zanima, kako je potekal razvoj te integracije, pišite, v naslednjem članku bom poskušal vse podrobneje razkriti.