Esistono diverse opzioni per integrare l'IP-PBX Asterisk e il CRM Bitrix24 nella rete, ma abbiamo comunque deciso di scriverne una nostra.
In termini di funzionalità, tutto è standard:
Facendo clic su un collegamento con il numero di telefono di un cliente in Bitrix24, Asterisk collega il numero interno dell'utente per conto del quale è stato effettuato il clic con il numero di telefono del cliente. In Bitrix24 viene registrata una registrazione della chiamata e alla fine della chiamata viene richiamata una registrazione della conversazione.
Asterisk riceve una chiamata dall'esterno: nell'interfaccia Bitrix24 mostriamo la carta cliente al dipendente al cui numero è arrivata questa chiamata.
Se non esiste tale cliente, apriremo la scheda per creare un nuovo lead.
Non appena la chiamata è completata, lo riflettiamo sulla carta e visualizziamo una registrazione della conversazione.
Sotto il taglio ti dirò come impostare tutto da solo e ti darò un link a github - sì, sì, prendilo e usalo!
descrizione generale
Abbiamo chiamato la nostra integrazione CallMe. CallMe è una piccola applicazione web scritta in PHP.
Lascerò l'analisi della configurazione, i problemi di sicurezza, l'ottenimento di un certificato e persino la scelta di un server Web al di fuori dello scopo dell'articolo: è stato scritto molto al riguardo. L'applicazione non ha restrizioni, funziona sia su http che su https.
Usiamo https, crittografiamo il certificato.
Se hai fatto tutto correttamente, facendo clic sul collegamento dovresti vedere qualcosa di simile
Configurazione di Bitrix24
Creiamo due webhook.
Webhook in entrata.
Sotto l'account amministratore (con ID 1), segui il percorso: Applicazioni -> Webhook -> Aggiungi webhook -> Webhook in entrata
Compila i parametri del webhook in entrata come negli screenshot:
E fai clic su Salva.
Dopo il salvataggio, Bitrix24 fornirà l'URL del webhook in entrata, ad esempio:
Salva la tua versione dell'URL senza il /profilo/ finale: verrà utilizzato nell'applicazione per gestire le chiamate in arrivo.
ho questo https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/
Webhook in uscita.
Applicazioni -> Webhook -> Aggiungi webhook -> Webhook in uscita
I dettagli sono di nuovo negli screenshot:
Salva e ricevi il codice di autorizzazione
ho questo xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. Devi copiarlo anche per te stesso; ti serve per effettuare chiamate in uscita.
Importante!
Un certificato SSL deve essere configurato sul server Bitrix24 (puoi usare letsencrypt), altrimenti l'API Bitrix non funzionerà. Se hai una versione cloud, non preoccuparti: ha già SSL.
Importante!
Il campo “Indirizzo processore” deve contenere un indirizzo accessibile da Internet!
E come tocco finale, installiamo il nostro CallMeOut come un'applicazione per effettuare chiamate (in modo che quando clicchi sul numero del centralino, il comando per avviare la chiamata volerà via).
Nel menu selezionare: Altro -> Telefonia -> Altro -> Impostazioni, impostato in “Numero chiamate in uscita predefinito” Applicazione: CallMeOut e fare clic su “Salva”
Impostazione dell'asterisco
Per un'interazione di successo tra Asterisk e Bitrix24, dobbiamo aggiungere l'utente AMI callme a manager.conf:
disabilitare l'ingresso nella tabella CDR per questo interno (non è necessario lì), impostare l'ora di fine della chiamata, calcolare la durata, se il risultato della chiamata non è noto - impostare (variabile CallMeDISPOSIZIONE) e, ultimo passaggio, invia tutto a Bitrix tramite il sistema curl.
E un po' più di magia: una chiamata in arrivo:
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();
}
Dice al PBX di eseguire l'installazione ID chiamante(nome) uguale a variabile CallMeCallerIDNome.
La stessa variabile CallMeCallerIDName, a sua volta, è impostata dall'applicazione CallMe (se Bitrix24 ha un nome completo per il numero del chiamante, impostalo come ID chiamante(nome), no, non faremo nulla).
Configurazione dell'applicazione
File delle impostazioni dell'applicazione - /var/www/pbx.vistep.ru/config.php
Descrizione dei parametri dell'applicazione:
CallMeDEBUG — se 1, tutti gli eventi elaborati dall'applicazione verranno scritti nel file di registro, 0 — non scriviamo nulla
Tech -SIP/PJSIP/IAX/ecc
authToken — Token di autorizzazione Bitrix24, codice di autorizzazione del webhook in uscita
bitrixApiUrl — URL del webhook in entrata, senza profilo/
estensioni — elenco dei numeri esterni
contesto — contesto per avviare una chiamata
listener_timeout — velocità di elaborazione degli eventi dall'asterisco
asterisco — un array con le impostazioni per la connessione all'asterisco:
host — IP o nome host del server con asterisco
schema — schema di collegamento (tcp://, tls://)
porto - porto
nome utente - Nome utente
segreto - parola d'ordine
timeout_connessione - connesione finita
read_timeout - leggere il timeout
file di impostazioni di esempio:
<?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
);
Configurazione del supervisore
Supervisor viene utilizzato per avviare il processo di gestione degli eventi da Asterisk CallMeIn.php, che monitora le chiamate in entrata e interagisce con Bitrix24 (mostra carta, nascondi carta, ecc.).
Domande, suggerimenti: lasciateli nei commenti. Inoltre, se sei interessato a come è andato lo sviluppo di questa integrazione, scrivi, e nel prossimo articolo cercherò di svelarti tutto più nel dettaglio.