Mreža ima različite opcije za integraciju IP-PBX Asterisk i CRM Bitrix24, ali mi smo ipak odlučili napisati svoju.
Funkcionalno, sve je standardno:
Klikom na poveznicu s telefonskim brojem klijenta u Bitrix24, Asterisk povezuje interni broj korisnika u čije ime je izvršen ovaj klik s telefonskim brojem klijenta. U Bitrix24 se snima zapis poziva, a na kraju poziva se povlači zapis razgovora.
Poziv stiže u Asterisk izvana - u sučelju Bitrix24 prikazujemo karticu klijenta zaposleniku na čiji je broj stigao ovaj poziv.
Ako takvog klijenta nema, otvorite karticu za kreiranje novog potencijalnog klijenta.
Čim se poziv završi, to odražavamo na kartici i povlačimo snimku razgovora.
Pod rezom, reći ću vam kako sve postaviti za sebe i dati vezu na github - da, da, uzmite i koristite!
Opći opis
Našu integraciju nazvali smo CallMe. CallMe je mala web aplikacija napisana u PHP-u.
Analizu konfiguracije, sigurnosna pitanja, dobivanje certifikata, pa čak i odabir web poslužitelja ostavit ću izvan okvira članka - o tome je puno napisano. Aplikacija nema ograničenja, radi i na http i https.
Imamo https, šifrirajmo certifikat.
Ako ste sve napravili kako treba, onda bi klikom na link trebali vidjeti nešto ovako
Postavljanje Bitrix24
Kreirajmo dva webhooka.
Dolazni webhook.
Pod administratorskim računom (s ID-om 1) idite stazom: Aplikacije -> Web-dojavice -> Dodaj web-dojavnik -> Dolazni web-dojavnik
Ispunite parametre dolaznog webhooka kao na snimkama zaslona:
I kliknite spremi.
Nakon spremanja, Bitrix24 će pružiti URL dolaznog webhooka, na primjer:
Spremite svoju verziju URL-a bez /profila/ na kraju - koristit će se u aplikaciji za rad s dolaznim pozivima.
imam to https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/
imam to xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. Također ga trebate kopirati sebi, potreban je za odlazne pozive.
Važno!
Ssl certifikat mora biti konfiguriran na Bitrix24 poslužitelju (možete koristiti letsencrypt), inače BitrixXNUMX API neće raditi. Ako imate verziju u oblaku, ne brinite - ssl je već tu.
Važno!
U polju "Adresa procesora" mora biti navedena adresa dostupna s interneta!
I za kraj, instalirajmo naš CallMeOut kao aplikaciju za telefoniranje (tako da klikom na broj na PBX-u poleti naredba za uspostavu poziva).
U izborniku odaberite: Više -> Telefonija -> Više -> Postavke, stavite u "Broj za odlazne pozive prema zadanim postavkama" Aplikacija: CallMeOut i kliknite na "Spremi"
postavljanje zvjezdice
Za uspješnu interakciju između Asteriska i Bitrix24, moramo dodati callme AMI korisnika u manager.conf:
isključite unos u tablici CDR za ovaj lokal (ondje nije potreban), postavite vrijeme završetka poziva, izračunajte trajanje, ako rezultat poziva nije poznat - postavite (varijabla Zovite me DISPOZICIJA) i, posljednji korak, pošaljite sve na Bitrix kroz curl sustava.
I još malo magije - dolazni poziv:
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();
}
Ona kaže instalirati PBX ID pozivatelja (ime) varijabla CallMeCallerIDName.
Samu varijablu CallMeCallerIDName, pak, postavlja aplikacija CallMe (ako Bitrix24 ima puno ime za broj pozivatelja, postavit ćemo ga kao ID pozivatelja (ime), ne - nećemo ništa učiniti).
CallMeDEBUG - ako je 1, tada će se svi događaji koje aplikacija obradi zapisati u log datoteku, 0 - ne pišemo ništa
tech SIP/PJSIP/IAX/itd
authToken — Bitrix24 autorizacijski token, autorizacijski kod za odlazni webhook
bitrixApiUrl — URL dolaznog webhooka, bez profila/
proširenja — popis vanjskih brojeva
kontekst — kontekst za pokretanje poziva
slušatelj_timeout - brzina obrade događaja od zvjezdice
zvjezdica - niz s postavkama veze do zvjezdice:
domaćin - ip ili naziv hosta poslužitelja sa zvjezdicom
shema — dijagram povezivanja (tcp://, tls://)
luka - luka
korisničko ime - Korisničko ime
tajna - lozinka
povezivanje_timeout - vrijeme povezanosti je isteklo
istek_čitanja - vrijeme čekanja za čitanje
primjer datoteke postavki:
<?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
);
Postavljanje nadzornika
Supervizor se koristi za pokretanje procesa rukovatelja događajima Asterisk CallMeIn.php, koji prati dolazne pozive i komunicira s Bitrix24 (pokaži karticu, sakrij karticu itd.).
Pitanja, prijedlozi - molimo u komentarima. Također, ako vas zanima kako je tekao razvoj ove integracije, napišite, a ja ću u sljedećem članku pokušati otkriti sve detaljnije.