Có nhiều tùy chọn khác nhau để tích hợp IP-PBX Asterisk và CRM Bitrix24 trên mạng, nhưng chúng tôi vẫn quyết định tự viết.
Về chức năng, mọi thứ đều tiêu chuẩn:
Bằng cách nhấp vào liên kết có số điện thoại của khách hàng trong Bitrix24, Asterisk kết nối số nội bộ của người dùng thay mặt họ thực hiện nhấp chuột với số điện thoại của khách hàng. Trong Bitrix24, bản ghi cuộc gọi được ghi lại và khi kết thúc cuộc gọi, bản ghi cuộc trò chuyện sẽ được kéo lên.
Asterisk nhận cuộc gọi từ bên ngoài - trong giao diện Bitrix24, chúng tôi hiển thị thẻ khách hàng cho nhân viên có số điện thoại nhận cuộc gọi này.
Nếu không có khách hàng nào như vậy, chúng tôi sẽ mở thẻ để tạo khách hàng tiềm năng mới.
Ngay sau khi cuộc gọi kết thúc, chúng tôi phản ánh điều này trên thẻ và đưa ra bản ghi âm cuộc trò chuyện.
Bên dưới phần cắt, tôi sẽ hướng dẫn bạn cách thiết lập mọi thứ cho chính bạn và cung cấp cho bạn liên kết tới github - vâng, vâng, hãy lấy nó và sử dụng nó!
Mô tả chung
Chúng tôi gọi sự tích hợp của mình là CallMe. CallMe là một ứng dụng web nhỏ được viết bằng PHP.
Tôi sẽ để phân tích cấu hình, các vấn đề bảo mật, lấy chứng chỉ và thậm chí chọn máy chủ web nằm ngoài phạm vi của bài viết - rất nhiều điều đã được viết về vấn đề này. Ứng dụng này không có hạn chế, nó hoạt động trên cả http và https.
Chúng tôi sử dụng https, hãy mã hóa chứng chỉ.
Nếu bạn đã làm mọi thứ chính xác, thì khi nhấp vào liên kết, bạn sẽ thấy một cái gì đó như thế này
Thiết lập Bitrix24
Hãy tạo hai webhook.
Webhook đang đến.
Trong tài khoản quản trị viên (có id 1), hãy làm theo đường dẫn: Ứng dụng -> Webhooks -> Thêm webhook -> Webhook đến
Điền các thông số của webhook đến như trong ảnh chụp màn hình:
Và bấm lưu.
Sau khi lưu, Bitrix24 sẽ cung cấp URL của webhook đến, ví dụ:
Lưu phiên bản URL của bạn mà không có /profile/ cuối cùng - nó sẽ được sử dụng trong ứng dụng để xử lý các cuộc gọi đến.
Tôi có cái này https://b24-xsynia.bitrix24.ru/rest/1/7eh61lh8pahw0fwt/
Webhook gửi đi.
Ứng dụng -> Webhooks -> Thêm webhook -> Webhook gửi đi
Thông tin chi tiết một lần nữa trên ảnh chụp màn hình:
Lưu và nhận mã ủy quyền
Tôi có cái này xcrp2ylhzzd2v43cmfjqmkvrgrcbkni6. Bạn cũng cần phải sao chép nó cho chính mình; bạn cần nó để thực hiện các cuộc gọi đi.
Quan trọng!
Chứng chỉ SSL phải được cấu hình trên máy chủ Bitrix24 (bạn có thể sử dụng letencrypt), nếu không api Bitrix sẽ không hoạt động. Nếu bạn có phiên bản đám mây, đừng lo lắng - nó đã có ssl.
Quan trọng!
Trường "Địa chỉ bộ xử lý" phải chứa địa chỉ có thể truy cập được từ Internet!
Và cuối cùng, hãy cài đặt CallMeOut của chúng tôi làm ứng dụng thực hiện cuộc gọi (để khi bạn nhấp vào số trên PBX, lệnh bắt đầu cuộc gọi sẽ bay đi).
Trong menu chọn: Khác -> Điện thoại -> Khác -> Cài đặt, đặt trong “Số cuộc gọi đi mặc định” Ứng dụng: CallMeOut và nhấp vào “Lưu”
Đang thiết lập dấu hoa thị
Để tương tác thành công giữa Asterisk và Bitrix24, chúng ta cần thêm callme người dùng AMI vào manager.conf:
vô hiệu hóa mục nhập vào bảng CDR cho tiện ích mở rộng này (không cần thiết ở đó), đặt thời gian kết thúc cuộc gọi, tính thời lượng, nếu không biết kết quả của cuộc gọi - đặt (biến GọiTôiBố trí) và bước cuối cùng, gửi mọi thứ tới Bitrix thông qua hệ thống cuộn tròn.
Và một điều kỳ diệu nữa - một cuộc gọi đến:
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();
}
Cô bảo tổng đài cài đặt ID người gọi (tên) bằng biến Gọi cho tôiTên người gọiID.
Biến CallMeCallerIDName lần lượt được thiết lập bởi ứng dụng CallMe (nếu Bitrix24 có tên đầy đủ cho số người gọi, hãy đặt nó là ID người gọi (tên), không - chúng tôi sẽ không làm gì cả).
Thiết lập ứng dụng
Tệp cài đặt ứng dụng - /var/www/pbx.vistep.ru/config.php
Mô tả các tham số ứng dụng:
Gọi cho tôiGỡ lỗi — nếu là 1 thì tất cả các sự kiện được ứng dụng xử lý sẽ được ghi vào tệp nhật ký, 0 — chúng tôi không ghi gì cả
công nghệ cao - SIP/PJSIP/IAX/v.v.
mã thông báo xác thực — Mã thông báo ủy quyền Bitrix24, mã ủy quyền webhook gửi đi
bitrixApiUrl — URL của webhook đến, không có hồ sơ/
phần mở rộng - danh sách các số bên ngoài
bối cảnh - bối cảnh để bắt đầu cuộc gọi
người nghe_timeout — tốc độ xử lý sự kiện từ dấu hoa thị
dấu hoa thị - một mảng có các cài đặt để kết nối với dấu hoa thị:
chủ nhà — ip hoặc tên máy chủ của máy chủ có dấu hoa thị
Đề án — sơ đồ kết nối (tcp://, tls://)
cổng - Hải cảng
tên truy nhập - Tên tài khoản
bí mật - mật khẩu
kết nối_timeout - hết thời gian kết nối
giờ đọc đã kết thúc - giờ đọc đã kết thúc
tập tin cài đặt ví dụ:
<?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
);
Thiết lập giám sát
Người giám sát được sử dụng để khởi chạy quy trình xử lý sự kiện từ Asterisk CallMeIn.php, quy trình này sẽ giám sát các cuộc gọi đến và tương tác với Bitrix24 (hiển thị thẻ, ẩn thẻ, v.v.).
Câu hỏi, gợi ý - xin vui lòng để lại trong phần bình luận. Ngoài ra, nếu bạn quan tâm đến quá trình phát triển của sự tích hợp này, hãy viết và trong bài viết tiếp theo, tôi sẽ cố gắng tiết lộ mọi thứ chi tiết hơn.