Es gibt verschiedene Möglichkeiten, IP-PBX Asterisk und CRM Bitrix24 in das Netzwerk zu integrieren, aber wir haben uns dennoch entschieden, unsere eigenen zu schreiben.
Von der Funktionalität her ist alles Standard:
Durch Klicken auf einen Link mit der Telefonnummer eines Kunden in Bitrix24 verbindet Asterisk die interne Nummer des Benutzers, in dessen Namen der Klick erfolgt ist, mit der Telefonnummer des Kunden. In Bitrix24 wird eine Aufzeichnung des Anrufs aufgezeichnet und am Ende des Anrufs eine Aufzeichnung des Gesprächs abgerufen.
Asterisk erhält einen Anruf von außerhalb – in der Bitrix24-Schnittstelle zeigen wir die Kundenkarte dem Mitarbeiter, an dessen Nummer dieser Anruf angekommen ist.
Wenn es keinen solchen Kunden gibt, öffnen wir die Karte zum Erstellen eines neuen Leads.
Sobald das Gespräch beendet ist, vermerken wir dies auf der Karte und rufen eine Gesprächsaufzeichnung auf.
Unterhalb des Ausschnitts erkläre ich Ihnen, wie Sie alles selbst einrichten und gebe Ihnen einen Link zu Github – ja, ja, nehmen Sie es und verwenden Sie es!
Allgemeine Beschreibung
Wir haben unsere Integration CallMe genannt. CallMe ist eine kleine in PHP geschriebene Webanwendung.
Ich werde das Parsen der Konfiguration, Sicherheitsprobleme, den Erhalt eines Zertifikats und sogar die Auswahl eines Webservers außerhalb des Rahmens des Artikels lassen – darüber wurde viel geschrieben. Die Anwendung unterliegt keinen Einschränkungen, sie funktioniert sowohl über http als auch über https.
Wir verwenden https, verschlüsseln wir das Zertifikat.
Wenn Sie alles richtig gemacht haben, sollten Sie beim Klicken auf den Link so etwas sehen
Bitrix24 einrichten
Lassen Sie uns zwei Webhooks erstellen.
Eingehender Webhook.
Folgen Sie unter dem Administratorkonto (mit der ID 1) dem Pfad: Anwendungen -> Webhooks -> Webhook hinzufügen -> Eingehender Webhook
Geben Sie die Parameter des eingehenden Webhooks wie in den Screenshots ein:
Und klicken Sie auf Speichern.
Nach dem Speichern stellt Bitrix24 die URL des eingehenden Webhooks bereit, zum Beispiel:
Speichern Sie Ihre Version der URL ohne das endgültige /profile/ – es wird in der Anwendung verwendet, um mit eingehenden Anrufen zu arbeiten.
ich habe das https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/
Speichern Sie und erhalten Sie den Autorisierungscode
ich habe das xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. Sie müssen es auch selbst kopieren; Sie benötigen es, um ausgehende Anrufe zu tätigen.
Wichtig!
Auf dem Bitrix24-Server muss ein SSL-Zertifikat konfiguriert sein (Sie könnenletsencrypt verwenden), sonst funktioniert die Bitrix-API nicht. Wenn Sie eine Cloud-Version haben, machen Sie sich keine Sorgen – sie verfügt bereits über SSL.
Wichtig!
Das Feld „Prozessoradresse“ muss eine aus dem Internet erreichbare Adresse enthalten!
Und als letzten Schliff installieren wir unser CallMeOut als Anwendung zum Tätigen von Anrufen (sodass, wenn Sie auf der Telefonanlage auf die Nummer klicken, der Befehl zum Einleiten des Anrufs wegfliegt).
Wählen Sie im Menü: Mehr -> Telefonie -> Mehr -> Einstellungen, stellen Sie unter „Standard-Rufnummer für ausgehende Anrufe“ ein. Anwendung: CallMeOut und klicken Sie auf „Speichern“.
Asterisk einrichten
Für eine erfolgreiche Interaktion zwischen Asterisk und Bitrix24 müssen wir den AMI-Benutzer callme zur manager.conf hinzufügen:
Deaktivieren Sie den Eintrag in die CDR-Tabelle für diese Nebenstelle (er wird dort nicht benötigt), legen Sie die Endzeit des Anrufs fest, berechnen Sie die Dauer, wenn das Ergebnis des Anrufs nicht bekannt ist - setzen Sie (Variable CallMeDisposition) und im letzten Schritt alles über den System-Curl an Bitrix senden.
Und noch ein bisschen mehr Magie – ein eingehender Anruf:
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();
}
Sie weist die Telefonanlage an, sie zu installieren AnruferID(Name) gleich variabel CallMeCallerIDName.
Die CallMeCallerIDName-Variable selbst wird wiederum von der CallMe-Anwendung festgelegt (wenn Bitrix24 einen vollständigen Namen für die Nummer des Anrufers hat, legen Sie ihn fest als). AnruferID(Name), nein - wir werden nichts tun).
<?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
);
Supervisor-Setup
Supervisor wird verwendet, um den Event-Handler-Prozess von Asterisk CallMeIn.php zu starten, der eingehende Anrufe überwacht und mit Bitrix24 interagiert (Karte anzeigen, Karte ausblenden usw.).
Es stellte sich als ziemlich kompliziert heraus, aber ich bin sicher, dass ein erfahrener Administrator es implementieren und seinen Benutzern gefallen wird.
Fragen, Anregungen – hinterlassen Sie diese bitte in den Kommentaren. Wenn Sie auch daran interessiert sind, wie die Entwicklung dieser Integration verlaufen ist, schreiben Sie, und im nächsten Artikel werde ich versuchen, alles detaillierter zu enthüllen.