Existují různé možnosti pro integraci IP-PBX Asterisk a CRM Bitrix24 do sítě, ale přesto jsme se rozhodli napsat vlastní.
Z hlediska funkčnosti je vše standardní:
Kliknutím na odkaz s telefonním číslem klienta v Bitrix24 Asterisk spojí interní číslo uživatele, jehož jménem bylo kliknutí provedeno, s telefonním číslem klienta. V Bitrix24 se nahrává záznam hovoru a na konci hovoru se vytáhne nahrávka konverzace.
Asterisk přijímá hovor zvenčí - v rozhraní Bitrix24 ukazujeme klientskou kartu pracovníkovi, na jehož číslo tento hovor dorazil.
Pokud takový klient neexistuje, otevřeme kartu pro vytvoření nového potenciálního zákazníka.
Jakmile je hovor dokončen, odrazíme to na kartě a vytáhneme záznam rozhovoru.
Pod střihem vám řeknu, jak si vše nastavit pro sebe, a dám vám odkaz na github – ano, ano, vezměte si to a používejte!
Obecný popis
Naši integraci jsme nazvali CallMe. CallMe je malá webová aplikace napsaná v PHP.
Parsování konfigurace, bezpečnostní problémy, získání certifikátu a dokonce i výběr webového serveru ponechám mimo rámec článku - o tom bylo napsáno hodně. Aplikace nemá žádná omezení, funguje přes http i https.
Používáme https, zašifrujeme certifikát.
Pokud jste vše udělali správně, tak kliknutím na odkaz byste měli vidět něco takového
Nastavení Bitrix24
Vytvoříme dva webhooky.
Příchozí webhook.
Pod účtem správce (s ID 1) postupujte podle cesty: Aplikace -> Webhooky -> Přidat webhook -> Příchozí webhook
Vyplňte parametry příchozího webhooku jako na snímcích obrazovky:
A klikněte na uložit.
Po uložení Bitrix24 poskytne URL příchozího webhooku, například:
Uložte si svou verzi URL bez koncového /profilu/ - bude v aplikaci použit pro práci s příchozími hovory.
mám to https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/
Odchozí webhook.
Aplikace -> Webhooky -> Přidat webhook -> Odchozí webhook
Podrobnosti jsou opět na screenshotech:
Uložte a přijměte autorizační kód
mám to xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. Také si jej musíte zkopírovat pro sebe, potřebujete jej pro odchozí hovory.
Důležité!
SSL certifikát musí být nakonfigurován na serveru Bitrix24 (můžete použít letsencrypt), jinak Bitrix api nebude fungovat. Pokud máte cloudovou verzi, nebojte se – ta již má ssl.
Důležité!
Pole „Adresa procesoru“ musí obsahovat adresu dostupnou z internetu!
A na závěr si nainstalujme náš CallMeOut jako aplikaci pro volání (aby po kliknutí na číslo na ústředně odletěl příkaz pro uskutečnění hovoru).
V nabídce vyberte: Více -> Telefonie -> Více -> Nastavení, nastavte v „Výchozí číslo odchozího hovoru“ Aplikace: CallMeOut a klikněte na „Uložit“
Nastavení hvězdičky
Pro úspěšnou interakci mezi Asterisk a Bitrix24 musíme přidat callme uživatele AMI do manager.conf:
zakázat vstup do CDR tabulky pro tuto pobočku (tam není potřeba), nastavit čas ukončení hovoru, vypočítat dobu trvání, pokud není znám výsledek hovoru - nastavit (proměnná Zavolejte MeDISPOSITION) a v posledním kroku vše odešlete do Bitrixu přes systémový curl.
A ještě trochu kouzla - příchozí 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();
}
Řekne ústředně, aby instalovala ID volajícího (jméno) rovná se proměnné CallMeCallerIDName.
Samotná proměnná CallMeCallerIDName je zase nastavena aplikací CallMe (pokud má Bitrix24 celé jméno pro číslo volajícího, nastavte jej jako ID volajícího (jméno), ne – nic neuděláme).
Nastavení aplikace
Soubor nastavení aplikace - /var/www/pbx.vistep.ru/config.php
Popis parametrů aplikace:
Volejte MeDEBUG — pokud 1, pak všechny události zpracované aplikací budou zapsány do log souboru, 0 — nic nezapisujeme
tech - SIP/PJSIP/IAX/atd
authToken — Autorizační token Bitrix24, autorizační kód odchozího webhooku
bitrixApiUrl — URL příchozího webhooku, bez profilu/
rozšíření — seznam externích čísel
kontext — kontext pro zahájení hovoru
listener_timeout — rychlost zpracování události z hvězdičky
hvězdička — pole s nastavením pro připojení k hvězdičce:
hostitel — IP nebo název hostitele serveru s hvězdičkou
systém — schéma připojení (tcp://, tls://)
přístav - přístav
uživatelské jméno - Uživatelské jméno
tajný - Heslo
connect_timeout — časový limit připojení
read_timeout - časový limit čtení
příklad souboru 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
);
Nastavení supervizora
Správce se používá ke spuštění procesu obsluhy událostí z Asterisk CallMeIn.php, který sleduje příchozí hovory a spolupracuje s Bitrix24 (zobrazit kartu, skrýt kartu atd.).
Dotazy, návrhy - zanechte je prosím v komentářích. Také pokud vás zajímá, jak probíhal vývoj této integrace, napište a v dalším článku se pokusím vše poodhalit podrobněji.