API giám sát tổng đài asterisk
API giám sát được code và lib theo định dạng web với method POST để lấy thông tin hiện tại hoặc trạng thái hiện tại của tổng đài, từ đó phân tích nghiệp vụ theo qui trình nghiệp vụ hiện hành. Cơ chế mỗi khi gọi api sẽ được trả về trạng thái hiện hành trên tổng đài, do đó, phần Frontend sẽ gọi interval cứ mỗi 5s một lần hoặc hơn đến API để request thông tin trả về, hạn chế để interval time quá ngắn sẽ làm crash hệ thống. Phần này cần cân nhắc.
(a) Lấy thông tin trạng thái hiện hành của một extension
Cú pháp gọi:
Truyền biến:
- action: status – hành động cần truy vấn
- extension: là số extension của tổng đài gán với CRM user khi login nhận call (chính là extension dùng với API inbound call) hoặc bất cứ extension nào tồn tại trên tổng đài.
Trả về:
- Trả về json
[“Response: Success”,”Message: Extension Status”,”Exten: xxxx”,”Context: from-internal”,”Hint: SIP\/xxxx,CustomPresence:xxxx”,”Status: 4″,””,””,””]
- Status code
-1 = Extension not found
0 = Idle
1 = In Use
2 = Busy
4 = Unavailable
8 | 9 = Ringing
16 = On Hold
Ví dụ: Cần check status của extension 100, thì cần truy xuất API như sau:
kết quả trả về:
[
“Response: Success”,
“Message: Extension Status”,
“Exten: 100”,
“Context: from-internal”,
“Hint: SIP\/100,CustomPresence:100”,
“Status: 4”,
“”,
“”,
“”
]
(b) Lấy thông tin trạng thái hiện hành của các cuộc gọi được thiết lập
Cú pháp gọi:
Truyền biến:
- action: channel – là hành động cần lấy trạng thái hiện hành
Trả về:
- Trả về json mảng những cuộc gọi đang hiện hành trên hệ thống
Channel; Context; Extension; Prio; State; Application; Data; CallerID; Duration; Accountcode; PeerAccount; BridgedTo
- Status example
Một cuộc gọi OUTBOUND được máp 2 kênh, một kênh từ extension đến tổng đài, một kênh từ tổng đài dùng đường channel đi ra nhà mạng, phần highlight thể hiện 2 kênh được map với nhau, xem thêm phần giải thích cùng mẫu dữ liệu ở hình bên dưới, lưu ý BridgedTo chỉ có giá trị khi kênh được trả lời.
Data mẫu
[
{“Channel”:”SIP\/CMC-HN-00005cdd”,”Context”:”from-trunk”,”Extension”:””,”Prio”:”1″,”State”:”Up”,”Application”:”AppDial”,”Data”:”(Outgoing Line)”,”CallerID”:”0379691909″,”Accountcode”:””,”flag1″:””,”flag2″:”3″,”Duration”:”182″,”BridgedTo”:”SIP\/72113-00005cdc”,”UniqueID”:”1555143501.34013\n”},
{“Channel”:”SIP\/72113-00005cdc”,”Context”:”macro-dialout-trunk”,”Extension”:”s”,”Prio”:”22″,”State”:”Up”,”Application”:”Dial”,”Data”:”SIP\/CMC-HN\/0379691909,300,”,”CallerID”:”842871062199″,”Accountcode”:””,”flag1″:””,”flag2″:”3″,”Duration”:”182″,”BridgedTo”:”SIP\/CMC-HN-00005cdd”,”UniqueID”:”1555143501.34012\n”}
]
H1. Hình mô tả chi tiết tham số khi outbound call trả về và ý nghĩa
Một cuộc gọi INBOUND sinh ra 2 channels quản lý trên hệ thống. với Inbound call, cần phải máp BridgedTo trên extension channel với Channel trên PSTN channel, xem thêm giải thích ở phần hình ảnh bên dưới
[
{“Channel”:”SIP\/ctytnhhrealtime-00005ceb”,”Context”:”macro-dial-one”,”Extension”:”s”,”Prio”:”43″,”State”:”Up”,”Application”:”Dial”,”Data”:”SIP\/0000,15,tr”,”CallerID”:”0967616499″,”Accountcode”:””,”flag1″:””,”flag2″:”3″,”Duration”:”9″,”BridgedTo”:”SIP\/0000-00005cee”,”UniqueID”:”1555143979.34027\n”},
{“Channel”:”SIP\/0000-00005cee”,”Context”:”from-internal”,”Extension”:””,”Prio”:”1″,”State”:”Up”,”Application”:”AppDial”,”Data”:”(Outgoing Line)”,”CallerID”:”0000″,”Accountcode”:””,”flag1″:””,”flag2″:”3″,”Duration”:”5″,”BridgedTo”:”SIP\/ctytnhhrealtime-00005ceb”,”UniqueID”:”1555143983.34030\n”},
]
H2. Hình mô tả chi tiết tham số khi inbound call trả về và ý nghĩa
Ví dụ: Cần check channels trên tổng đài, thì cần truy xuất API như sau:
(c) Tương tác với kênh gọi được thiết lập
Tương tác thoai này cho phép giám sát hệ thống có thể thực hiện các thao tác như nghe xen, nghe lén, đàm thoại tay ba trên toàn diện các điện thoại viên mình đang quản lý
Cú pháp gọi:
Truyền biến:
- action: interact – hành động cần truy vấn tham số tương tác
- action_type : Originate
- function: listen | whisper | conference
- source: là số extension của giám sát viên tồn tại trên tổng đài.
- dest: là số extension của nhân sự đang cần giám sát
Trả về:
- None
Ví dụ: Từ giám sát sử dụng extension 100 cần nghe xen điện thoại viên extension 101 đang đàm thoại với khách hàng (điện thoại viên và khách hàng đều không biết sự việc đang sảy ra), thì cần truy xuất API như sau:
(2) Whisper – Nghe xen với điện thoại viên
Cú pháp gọi:
Truyền biến:
- action: interact – hành động cần truy vấn tham số tương tác
- action_type: Originate
- function: whisper
- source: là số extension của giám sát viên tồn tại trên tổng đài.
- dest: là số extension của nhân sự đang cần giám sát
Trả về:
- None
Ví dụ: Từ giám sát sử dụng extension 100 cần nghe xen và nói chuyện 2 chiều với mỗi điện thoại viên extension 101 đang trao đổi với khách hàng (điện thoại viên nghe và tương tác được 2 chiều với giám sát nhưng khách hàng không biết sự việc đang sảy ra), thì cần truy xuất API như sau:
(3) Conference – Nghe và đàm thoại với nhân viên và khách hàng (3way)
Cú pháp gọi:
Truyền biến:
- action: interact – hành động cần truy vấn tham số tương tác
- action_type: Originate
- function: conference
- source: là số extension của giám sát viên tồn tại trên tổng đài.
- dest: là số extension của nhân sự đang cần giám sát
Trả về:
- None
Ví dụ: Từ giám sát sử dụng extension 100 cần nghe xen và nói chuyện 2 chiều với mỗi điện thoại viên extension 101 đang trao đổi với khách hàng và cả khách hàng (trao đổi như conference), thì cần truy xuất API như sau:
Mr Huynh.
Liên hệ: sales@realtime.vn
Skype: chaungochuynh15
Hoặc hotline: 028 730 33888 | 0933119056