IP-PBX Asteriskin ja CRM Bitrix24:n integroimiseen verkkoon on olemassa erilaisia vaihtoehtoja, mutta päätimme silti kirjoittaa oman.
Toimivuuden suhteen kaikki on vakio:
Napsauttamalla asiakkaan puhelinnumeron sisältävää linkkiä Bitrix24:ssä Asterisk yhdistää sen käyttäjän sisäisen numeron, jonka puolesta klikkaus tehtiin, asiakkaan puhelinnumeroon. Bitrix24:ssä puhelu nauhoitetaan ja puhelun lopussa keskustelun tallenne vedetään esiin.
Asterisk saa puhelun ulkopuolelta - Bitrix24-rajapinnassa näytämme asiakaskortin työntekijälle, jonka numeroon tämä puhelu saapui.
Jos tällaista asiakasta ei ole, avaamme kortin uuden liidin luomista varten.
Heti kun puhelu on valmis, heijastamme tämän kortissa ja otamme keskustelun tallenteen.
Leikkauksen alapuolella kerron, kuinka asetat kaiken itsellesi ja annan sinulle linkin githubiin - kyllä, kyllä, ota ja käytä!
Yleinen kuvaus
Kutsuimme integraatiotamme CallMe:ksi. CallMe on pieni web-sovellus, joka on kirjoitettu PHP:llä.
Jätän kokoonpanon jäsentämisen, tietoturvakysymykset, varmenteen hankkimisen ja jopa web-palvelimen valinnan artikkelin ulkopuolelle - tästä on kirjoitettu paljon. Sovelluksella ei ole rajoituksia, se toimii sekä http- että https-yhteydellä.
Käytämme https, salataan varmenne.
Jos teit kaiken oikein, napsauttamalla linkkiä sinun pitäisi nähdä jotain tällaista
Asetetaan Bitrix24
Luodaan kaksi webhookia.
Saapuva webhook.
Seuraa järjestelmänvalvojan tilin (tunnuksella 1) alla olevaa polkua: Applications -> Webhooks -> Add webhook -> Incoming webhook
Täytä saapuvan webhookin parametrit kuten kuvakaappauksissa:
Ja napsauta Tallenna.
Tallennuksen jälkeen Bitrix24 antaa saapuvan webhookin URL-osoitteen, esimerkiksi:
Tallenna URL-versiosi ilman lopullista /profiilia/ - sitä käytetään sovelluksessa saapuvien puhelujen käsittelyyn.
minulla on tämä https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/
Lähtevä webhook.
Sovellukset -> Webhookit -> Lisää webhook -> Lähtevä webhook
Yksityiskohdat ovat jälleen kuvakaappauksissa:
Tallenna ja vastaanota valtuutuskoodi
minulla on tämä xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. Sinun on myös kopioitava se itsellesi; tarvitset sitä lähtevien puhelujen soittamiseen.
Tärkeää!
SSL-sertifikaatti on määritettävä Bitrix24-palvelimella (voit käyttää letsencryptiä), muuten Bitrix-sovellusliittymä ei toimi. Jos sinulla on pilviversio, älä huoli - siinä on jo ssl.
Tärkeää!
"Prosessorin osoite" -kentässä tulee olla Internetistä saatavilla oleva osoite!
Ja viimeisenä silauksena asennataan CallMeOut-sovelluksemme puheluiden soittamista varten (jotta kun napsautat PBX:n numeroa, puhelun aloittamiskomento lentää pois).
Valitse valikosta: Lisää -> Puhelu -> Lisää -> Asetukset, aseta "Lähtevän puhelun oletusnumero" Sovellus: CallMeOut ja napsauta "Tallenna".
Asetetaan tähti
Jotta Asteriskin ja Bitrix24:n välinen vuorovaikutus onnistuisi, meidän on lisättävä AMI-käyttäjä callme hakemistoon manager.conf:
estää pääsyn tämän alaliittymän CDR-taulukkoon (ei sitä siellä tarvita), aseta puhelun lopetusaika, laske kesto, jos puhelun tulos ei ole tiedossa - aseta (muuttuja) CallMeDISPOSITION) ja viimeisessä vaiheessa lähetä kaikki Bitrixiin järjestelmän curlin kautta.
Ja vielä vähän taikuutta - saapuva puhelu:
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();
}
Hän käskee PBX:ää asentamaan Soittajan tunnus (nimi) yhtä suuri kuin muuttuja CallMeCallerIDName.
Itse CallMeCallerIDName-muuttujan puolestaan asettaa CallMe-sovellus (jos Bitrix24:llä on soittajan numerolle koko nimi, aseta se Soittajan tunnus (nimi), ei – emme tee mitään).
bitrixApiUrl - saapuvan webhookin URL-osoite ilman profiilia/
laajennukset — ulkoisten numeroiden luettelo
tausta — konteksti puhelun aloittamiseen
kuuntelijan_aikakatkaisu — tapahtuman käsittelyn nopeus tähdestä
tähtimerkki — taulukko, jossa on asetukset tähdellä yhdistämistä varten:
isäntä — tähtipalvelimen IP-osoite tai isäntänimi
järjestelmä - kytkentäkaavio (tcp://, tls://)
portti - portti
käyttäjätunnus - Käyttäjätunnus
salaisuus - Salasana
connect_timeout - yhteyden aikakatkaisu
luku_aikakatkaisu - lukemisen aikakatkaisu
esimerkkiasetustiedosto:
<?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
);
Valvojan asetukset
Supervisoria käytetään tapahtumankäsittelyprosessin käynnistämiseen Asterisk CallMeIn.php:stä, joka valvoo saapuvia puheluita ja on vuorovaikutuksessa Bitrix24:n kanssa (näytä kortti, piilota kortti jne.).
Kysymyksiä, ehdotuksia - jätä ne kommentteihin. Lisäksi, jos olet kiinnostunut siitä, kuinka tämän integraation kehitys sujui, kirjoita, ja seuraavassa artikkelissa yritän paljastaa kaiken yksityiskohtaisemmin.