Το δίκτυο έχει διαφορετικές επιλογές για την ενσωμάτωση IP-PBX Asterisk και CRM Bitrix24, αλλά εμείς, ωστόσο, αποφασίσαμε να γράψουμε το δικό μας.
Λειτουργικά, όλα είναι στάνταρ:
Κάνοντας κλικ στον σύνδεσμο με τον αριθμό τηλεφώνου του πελάτη στο Bitrix24, το Asterisk συνδέει τον εσωτερικό αριθμό του χρήστη για λογαριασμό του οποίου έγινε αυτό το κλικ με τον αριθμό τηλεφώνου του πελάτη. Στο Bitrix24, καταγράφεται μια εγγραφή της κλήσης και στο τέλος της κλήσης, η εγγραφή συνομιλίας ανασύρεται.
Μια κλήση φτάνει στο Asterisk από έξω - στη διεπαφή Bitrix24, δείχνουμε την κάρτα πελάτη στον υπάλληλο στον αριθμό του οποίου έφτασε αυτή η κλήση.
Εάν δεν υπάρχει τέτοιος πελάτης, ανοίξτε την κάρτα για τη δημιουργία νέου υποψήφιου πελάτη.
Μόλις ολοκληρωθεί η κλήση, το αντικατοπτρίζουμε στην κάρτα και ανασύρουμε την ηχογράφηση της συνομιλίας.
Κάτω από την περικοπή, θα σας πω πώς να ρυθμίσετε τα πάντα για τον εαυτό σας και να δώσετε έναν σύνδεσμο στο github - ναι, ναι, πάρτε το και χρησιμοποιήστε το!
Γενική περιγραφή
Καλέσαμε την ενσωμάτωσή μας CallMe. Το CallMe είναι μια μικρή διαδικτυακή εφαρμογή γραμμένη σε PHP.
Θα αφήσω την ανάλυση των παραμέτρων, τα ζητήματα ασφαλείας, την απόκτηση πιστοποιητικού, ακόμη και την επιλογή ενός διακομιστή ιστού εκτός του πεδίου εφαρμογής του άρθρου - έχουν γραφτεί πολλά για αυτό. Η εφαρμογή δεν έχει περιορισμούς, λειτουργεί τόσο σε http όσο και σε https.
Έχουμε https, ας κρυπτογραφήσουμε το πιστοποιητικό.
Εάν τα κάνατε όλα σωστά, τότε κάνοντας κλικ στον σύνδεσμο θα πρέπει να δείτε κάτι τέτοιο
Ρύθμιση του Bitrix24
Ας δημιουργήσουμε δύο webhook.
Εισερχόμενο webhook.
Κάτω από τον λογαριασμό διαχειριστή (με αναγνωριστικό 1) ακολουθήστε τη διαδρομή: Εφαρμογές -> Webhooks -> Προσθήκη webhook -> Εισερχόμενο webhook
Συμπληρώστε τις παραμέτρους του εισερχόμενου webhook όπως στα στιγμιότυπα οθόνης:
Και κάντε κλικ στην αποθήκευση.
Μετά την αποθήκευση, το Bitrix24 θα παρέχει τη διεύθυνση URL του εισερχόμενου webhook, για παράδειγμα:
Αποθηκεύστε την έκδοση της διεύθυνσης URL χωρίς το τέλος /προφίλ/ - θα χρησιμοποιηθεί στην εφαρμογή για εργασία με εισερχόμενες κλήσεις.
το έχω https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/
το έχω xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. Πρέπει επίσης να το αντιγράψετε στον εαυτό σας, είναι απαραίτητο για την πραγματοποίηση εξερχόμενων κλήσεων.
Σημαντικό!
Ένα πιστοποιητικό ssl πρέπει να ρυθμιστεί στον διακομιστή Bitrix24 (μπορείτε να χρησιμοποιήσετε letsencrypt), διαφορετικά το BitrixXNUMX api δεν θα λειτουργήσει. Εάν έχετε μια έκδοση cloud, μην ανησυχείτε - το ssl είναι ήδη εκεί.
Σημαντικό!
Στο πεδίο "Διεύθυνση Επεξεργαστή" πρέπει να αναγράφεται μια διεύθυνση προσβάσιμη από το Διαδίκτυο!
Και με την τελευταία πινελιά, ας εγκαταστήσουμε το CallMeOut ως εφαρμογή για την πραγματοποίηση κλήσεων (έτσι ώστε κάνοντας κλικ στον αριθμό στο PBX, να πετάξει μια εντολή για να ξεκινήσει η κλήση).
Στο μενού, επιλέξτε: Περισσότερα -> Τηλεφωνία -> Περισσότερα -> Ρυθμίσεις, ορίστε σε "Αριθμός για εξερχόμενες κλήσεις από προεπιλογή" Εφαρμογή: CallMeOut και κάντε κλικ στο "Αποθήκευση"
ρύθμιση αστερίσκου
Για επιτυχημένη αλληλεπίδραση μεταξύ Asterisk και Bitrix24, πρέπει να προσθέσουμε τον χρήστη callme AMI στο manager.conf:
απενεργοποιήστε την καταχώρηση στον πίνακα CDR για αυτήν την επέκταση (δεν χρειάζεται εκεί), ορίστε την ώρα λήξης της κλήσης, υπολογίστε τη διάρκεια, εάν το αποτέλεσμα της κλήσης δεν είναι γνωστό - ορίστε (μεταβλητή Call Me DISPOSITION) και, το τελευταίο βήμα, στείλτε τα πάντα στο Bitrix μέσω του συστήματος μπούκλας.
Και λίγη ακόμα μαγεία - μια εισερχόμενη κλήση:
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();
}
Η ίδια η μεταβλητή CallMeCallerIDName, με τη σειρά της, ορίζεται από την εφαρμογή CallMe (εάν το Bitrix24 έχει πλήρες όνομα για τον αριθμό του καλούντος, θα το ορίσουμε ως Αναγνωριστικό καλούντος (όνομα), όχι - δεν θα κάνουμε τίποτα).
bitrixApiUrl — URL του εισερχόμενου webhook, χωρίς προφίλ/
επεκτάσεις — λίστα εξωτερικών αριθμών
συμφραζόμενα — πλαίσιο για την προέλευση κλήσεων
listener_timeout - Ταχύτητα επεξεργασίας συμβάντων από τον αστερίσκο
αστερίσκος - έναν πίνακα με τις ρυθμίσεις σύνδεσης στον αστερίσκο:
οικοδεσπότης - ip ή όνομα κεντρικού υπολογιστή του διακομιστή αστερίσκου
σχέδιο — διάγραμμα σύνδεσης (tcp://, tls://)
λιμάνι - Λιμάνι
όνομα χρήστη - Όνομα χρήστη
μυστικό - Κωδικός πρόσβασης
connect_timeout - λήξη χρόνου σύνδεσης
read_timeout - διάβασμα χρονικού ορίου
παράδειγμα αρχείου ρυθμίσεων:
<?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 χρησιμοποιείται για την εκκίνηση της διαδικασίας χειρισμού συμβάντων Asterisk CallMeIn.php, η οποία παρακολουθεί τις εισερχόμενες κλήσεις και αλληλεπιδρά με το Bitrix24 (εμφάνιση της κάρτας, απόκρυψη της κάρτας κ.λπ.).
Ερωτήσεις, προτάσεις - παρακαλώ στα σχόλια. Επίσης, αν σας ενδιαφέρει πώς πήγε η εξέλιξη αυτής της ολοκλήρωσης, γράψτε και στο επόμενο άρθρο θα προσπαθήσω να τα αποκαλύψω όλα με περισσότερες λεπτομέρειες.