13. Tích hợp hệ thống CRM API CALLCENTER
13.1. Thông tin sự kiện
Là các API liên quan đến sự kiện (Event) diễn ra trên tổng đài, báo về cho CRM (dưới dạng URL Webhook), có thể dưới dạng POST hoặc GET.
{domain_crm} & {secret} - do bên hệ thống CRM cung cấp thông tin. Hoặc ở dạng Webhook URL do hệ thống CRM quy định.
13.1.1 Thông tin cuộc gọi (Call logs)
Khi kết thúc cuộc gọi thì bên phía tổng đài sẽ trả về thông tin chi tiết cuộc gọi:
https://{domain_crm}/wsapi/{customer}/call_answered?secret={secret}POST body: JSON format
{ "callid": "{callid}", "start_stamp": "2025-03-02 15:29:30", "answer_stamp": "2025-03-02 15:29:45", "end_stamp": "2025-03-02 15:29:55", "extension": "101", "phone": "090xxxx242", "duration": "23", "billsec": 11, "status": "ANSWERED", "recording": "{https://ip_tong_dai/link_file_ghi_am}", "userfield": "{userfield}" "direction": "outbound" "source_telco": "YCALL" "dest_telco": "Mobifone" "hangup_by": "Agent" "hangup_cause": "NORMAL_CLEARING" "sip_code": "200" "hotline": "666690003" "domain": "c88001.ity.vn" "mos": "4.5" }Trong đó:
Method : POST
{domain_crm} - Domain của khách hàng sử dụng hệ thống CRM.
{ customer } - Mã khách hàng.
{secret} - Mã xác thực kết nối đến hệ thống CRM.
{callid} - ID cuộc gọi & thông tin của cuộc gọi đó.
{calldate} - Thời gian bắt đầu thực hiện cuộc gọi (định dạng Y-m-d H:i:s).
{extension} - Số máy lẻ đã nghe hoặc không nghe cuộc gọi.
{phone} - Số điện thoại gọi đến hoặc được gọi đi.
{duration} - Tổng thời gian gọi ( tính cả thời gian đổ chuông).
{billsec} - Thời gian đàm thoại.
{status} - Trạng thái cuộc gọi (ANSWERED, NO ANSER, BUSY, …).
{recording} - Đường dẫn file ghi âm cuộc gọi.
{userfield} - Trường tùy chỉnh của CRM để gán cuộc gọi với đơn hàng (nếu cần).
{direction} - Hướng gọi ra gọi vào ("outbound","inbound").
{source_telco} - Gọi ra từ nhà mạng.
{dest_telco} - Gọi ra đến nhà mạng.
{hangup_by} - Ngắt cuộc gọi từ phía.
{hangup_cause} - Nguyên nhân ngắt cuộc gọi.
{sip_code} - Mã SIP .
{hotline} - Số hotline.
{domain} - Domain khách hàng do ITY cung cấp.
{mos} - Chỉ số chất lượng cuộc gọi .
13.2. Thông tin điều khiển Call Control
13.2.1 Click to call softphone
https://{ip_tong_dai}/wsapi/{customer}/click2call.php?secret={secret}&extension={extension}&phone={phone}&domain={domain}&userfield={userfield}Trong đó:
Method : GET
{secret} - Là key xác thực kết nối giữa tổng đài & hệ thống CRM (secret do tổng đài cung cấp).
{ customer } - Mã khách hàng
{extesion} - Số máy lẻ sẽ thực hiện cuộc gọi đi.
{phone} - Số điện thoại sẽ gọi đi.
{domain} - domain khách hàng do ITY cung cấp.
{userfield} - Trường tùy chỉnh của CRM để gán cuộc gọi với đơn hàng(nếu cần).
![]()
13.2.2 Click to call webphone
** Webphone / Webcall** là tính năng tổng đài cho phép tích hợp tính năng quay số nghe gọi vào các hệ thống CRM / ERP… Tính năng sử dụng thư viện JsSIP để thực hiện điều khiển cuộc gọi.
JsSIP Documentation : https://jssip.net/documentation/3.10.x/
Code mẫu tùy chỉnh lại Call-ID trong JsSIP (trường này sẽ được trả lại CRM vào {userfield} trong call log):
this.phone.on('newRTCSession',(data) =>{ const session = data.session; session.on('sending',(data)=>{ const request = data.request; const callid = request.getHeader('Call-ID'); // Thay thế bằng CALL_ID tùy chỉnh bạn muốn sử dụng const modifiedCallID = 'your-custom-call-id'; request.setHeader('Call-ID' , modifiedCallID); }); });Trong ví dụ trên, chúng ta sử dụng sự kiện sending để truy cập đến Call-ID của yêu cầu cuộc gọi và sau đó sử dụng setHeader(‘Call-ID’, modifiedCallID) để cấu hình lại Call-ID thành giá trị tùy chỉnh