Estas malsamaj ebloj por integri IP-PBX Asterisk kaj CRM Bitrix24 en la reto, sed ni tamen decidis skribi nian propran.
Koncerne funkciecon, ĉio estas norma:
Alklakante ligilon kun la telefonnumero de kliento en Bitrix24, Asterisk ligas la internan nombron de la uzanto, pro kies nomo la klako estis farita kun la telefonnumero de la kliento. En Bitrix24, registro de la voko estas registrita kaj, ĉe la fino de la voko, registrado de la konversacio estas tirita supren.
Asterisk ricevas vokon de ekstere - en la interfaco Bitrix24 ni montras la klientkarton al la dungito, al kies numero ĉi tiu alvoko alvenis.
Se ne ekzistas tia kliento, ni malfermos la karton por krei novan plumbon.
Tuj kiam la voko estas finita, ni reflektas tion sur la karto kaj eltiras registradon de la konversacio.
Sub la tranĉo mi rakontos al vi kiel agordi ĉion por vi mem kaj donos al vi ligilon al github - jes, jes, prenu ĝin kaj uzu ĝin!
Ĝenerala priskribo
Ni nomis nian integriĝon CallMe. CallMe estas malgranda retejo-aplikaĵo skribita en PHP.
Mi forlasos analizi la agordojn, sekurecajn problemojn, akiri atestilon kaj eĉ elekti retservilon ekster la amplekso de la artikolo - multe estas skribita pri tio. La aplikaĵo ne havas limigojn, ĝi funkcias ambaŭ per http kaj https.
Ni uzas https, ni ĉifri atestilon.
Se vi faris ĉion ĝuste, tiam alklakante la ligilon vi devus vidi ion tian
Agordo de Bitrix24
Ni kreu du rethokojn.
Envenanta rethoko.
Sub la konto de administranto (kun id 1), sekvu la vojon: Aplikoj -> Rethooks -> Aldoni rethook -> Envenanta rethoko
Plenigu la parametrojn de la envenanta rethoko kiel en la ekrankopioj:
Kaj alklaku konservi.
Post konservado, Bitrix24 provizos la URL de la envenanta rethoko, ekzemple:
Konservu vian version de la URL sen la fina /profile/ - ĝi estos uzata en la aplikaĵo por labori kun envenantaj vokoj.
Mi havas ĉi tion https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/
Mi havas ĉi tion xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. Vi ankaŭ devas kopii ĝin por vi mem; vi bezonas ĝin por fari eksiĝintajn vokojn.
Grava!
SSL-atestilo devas esti agordita sur la servilo Bitrix24 (vi povas uzi letsencrypt), alie la Bitrix-api ne funkcios. Se vi havas nuban version, ne maltrankviliĝu - ĝi jam havas ssl.
Grava!
La kampo "Procesoro-Adreso" devas enhavi adreson alireblan de la Interreto!
Kaj kiel fina tuŝo, ni instalu nian CallMeOut kiel aplikaĵon por fari vokojn (por ke kiam vi alklakas la numeron sur la PBX, la komando por estigi la vokon forflugos).
En la menuo, elektu: Pli -> Telefonio -> Pli -> Agordoj, agordu en "Defaŭlta eksiĝinta alvoko" Apliko: CallMeOut kaj alklaku "Konservi"
Agordi asteriskon
Por sukcesa interago inter Asterisk kaj Bitrix24, ni devas aldoni la AMI-uzanto callme al manager.conf:
malŝaltu eniron al la CDR-tabelo por ĉi tiu etendo (ĝi tie ne necesas), agordu la fintempon de la voko, kalkulu la daŭron, se la rezulto de la voko ne estas konata - agordu (variablon). CallMeDISPOSITION) kaj, la lasta paŝo, sendu ĉion al Bitrix per la sistema buklo.
Kaj iom pli da magio - alvenanta voko:
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();
}
Ŝi rakontas al la PBX instali Alvokanto(nomo) egala al variablo CallMeCallerIDName.
La variablo CallMeCallerIDName mem, siavice, estas agordita de la aplikaĵo CallMe (se Bitrix24 havas plenan nomon por la numero de la alvokanto, agordu ĝin kiel Alvokanto(nomo), ne - ni faros nenion).
Agordo de aplikaĵo
Dosiero de agordoj de aplikaĵo - /var/www/pbx.vistep.ru/config.php
Priskribo de aplikaj parametroj:
VokuMeDEBUG — se 1, tiam ĉiuj eventoj procesitaj de la aplikaĵo estos skribitaj al la protokoldosiero, 0 — ni skribas nenion
bitrixApiUrl — URL de la envenanta rethoko, sen profilo/
etendaĵoj — listo de eksteraj nombroj
kunteksto — kunteksto por estigi vokon
listener_timeout — rapideco de evento-traktado de asterisko
asterisko — tabelo kun agordoj por konekti al la asterisko:
gastiganto — ip aŭ gastiga nomo de la asteriskservilo
skemo — konektodiagramo (tcp://, tls://)
haveno - haveno
uzantonomo - Uzantnomo
sekreta - Pasvorto
connect_timeout — konektotempo
read_timeout - legu timeout
ekzempla agorda dosiero:
<?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
);
Kontrolisto aranĝo
Kontrolisto estas uzata por lanĉi la eventan prizorgan procezon de Asterisk CallMeIn.php, kiu kontrolas envenantajn vokojn kaj interagas kun Bitrix24 (montri karton, kaŝi karton, ktp.).
Demandoj, sugestoj - bonvolu lasi ilin en la komentoj. Ankaŭ, se vi interesiĝas pri kiel iris la disvolviĝo de ĉi tiu integriĝo, skribu, kaj en la sekva artikolo mi provos malkaŝi ĉion pli detale.