Existujú rôzne možnosti integrácie IP-PBX Asterisk a CRM Bitrix24 v sieti, ale aj tak sme sa rozhodli napísať si vlastnú.
Z hľadiska funkčnosti je všetko štandardné:
Kliknutím na odkaz s telefónnym číslom klienta v Bitrix24 Asterisk spojí interné číslo používateľa, v mene ktorého bolo kliknutie uskutočnené, s telefónnym číslom klienta. V Bitrix24 sa nahrá záznam hovoru a na konci hovoru sa vytiahne nahrávka konverzácie.
Asterisk prijme hovor zvonku - v rozhraní Bitrix24 ukážeme klientsku kartu zamestnancovi, na číslo ktorého tento hovor prišiel.
Ak takýto klient neexistuje, otvoríme kartu na vytvorenie nového potenciálneho zákazníka.
Akonáhle je hovor ukončený, premietneme to na kartu a vytiahneme záznam rozhovoru.
Pod strihom vám poviem, ako si všetko nastaviť pre seba, a dám vám odkaz na github - áno, áno, vezmite si ho a používajte ho!
Všeobecný opis
Našu integráciu sme nazvali CallMe. CallMe je malá webová aplikácia napísaná v PHP.
Rozoberanie konfigurácie, bezpečnostné problémy, získanie certifikátu a dokonca výber webového servera ponechám mimo rozsahu článku - o tom sa už veľa napísalo. Aplikácia nemá žiadne obmedzenia, funguje cez http aj https.
Používame https, zašifrujeme certifikát.
Ak ste urobili všetko správne, kliknutím na odkaz by ste mali vidieť niečo také
Konfigurácia Bitrix24
Vytvorme dva webhooky.
Prichádzajúci webhook.
Pod účtom správcu (s ID 1) postupujte podľa cesty: Aplikácie -> Webhooky -> Pridať webhook -> Prichádzajúci webhook
Vyplňte parametre prichádzajúceho webhooku ako na snímkach obrazovky:
A kliknite na uložiť.
Po uložení Bitrix24 poskytne URL prichádzajúceho webhooku, napríklad:
Uložte si svoju verziu URL bez koncového /profilu/ – bude slúžiť v aplikácii na prácu s prichádzajúcimi hovormi.
mám toto https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/
mám toto xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. Musíte si ho skopírovať aj pre seba, potrebujete ho na uskutočňovanie odchádzajúcich hovorov.
Dôležité!
Certifikát SSL musí byť nakonfigurovaný na serveri Bitrix24 (môžete použiť letsencrypt), inak Bitrix api nebude fungovať. Ak máte cloudovú verziu, nebojte sa – už má ssl.
Dôležité!
Pole „Adresa procesora“ musí obsahovať adresu prístupnú z internetu!
A na záver si nainštalujte náš CallMeOut ako aplikáciu na telefonovanie (aby po kliknutí na číslo na PBX odletel príkaz na uskutočnenie hovoru).
V ponuke vyberte: Viac -> Telefonovanie -> Viac -> Nastavenia, nastavte v časti „Predvolené číslo pre odchádzajúci hovor“ Aplikácia: CallMeOut a kliknite na „Uložiť“
Nastavuje sa hviezdička
Pre úspešnú interakciu medzi Asteriskom a Bitrix24 musíme pridať AMI user callme do manager.conf:
zakázať vstup do CDR tabuľky pre toto rozšírenie (tam to nie je potrebné), nastaviť čas ukončenia hovoru, vypočítať trvanie, ak výsledok hovoru nie je známy - nastaviť (premenná Zavolajte MeDISPOSITION) a v poslednom kroku odošlite všetko do Bitrixu cez systémový curl.
A ešte trochu kúzla - prichádzajúci hovor:
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();
}
Povie PBX, aby sa nainštalovala ID volajúceho (meno) rovná sa premennej CallMeCallerIDName.
Samotnú premennú CallMeCallerIDName zase nastavuje aplikácia CallMe (ak má Bitrix24 celé meno pre číslo volajúceho, nastavte ho ako ID volajúceho (meno), nie - neurobíme nič).
Nastavenie aplikácie
Súbor s nastaveniami aplikácie - /var/www/pbx.vistep.ru/config.php
Popis parametrov aplikácie:
CallMeDEBUG — ak 1, všetky udalosti spracované aplikáciou sa zapíšu do log súboru, 0 — nezapisujeme nič
tech - SIP/PJSIP/IAX/atď
authToken — Autorizačný token Bitrix24, odchádzajúci autorizačný kód webhooku
bitrixApiUrl — URL prichádzajúceho webhooku, bez profilu/
rozšírenia — zoznam externých čísel
kontext — kontext pre začatie hovoru
listener_timeout — rýchlosť spracovania udalosti od hviezdičky
hviezdička — pole s nastaveniami na pripojenie k hviezdičke:
hostiteľ — IP alebo názov hostiteľa servera s hviezdičkou
systém — schéma pripojenia (tcp://, tls://)
prístav - prístav
meno - Používateľské meno
tajomstvo - heslo
connect_timeout - spojenie vypršalo
read_timeout - časový limit čítania
príklad súboru nastavení:
<?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
);
Nastavenie supervízora
Supervisor sa používa na spustenie procesu obsluhy udalostí z Asterisk CallMeIn.php, ktorý monitoruje prichádzajúce hovory a interaguje s Bitrix24 (zobraziť kartu, skryť kartu atď.).
Otázky, návrhy - nechajte ich v komentároch. Taktiež ak vás zaujíma, ako prebiehal vývoj tejto integrácie, napíšte a v ďalšom článku sa pokúsim všetko odhaliť podrobnejšie.