Kết nối WebRTC qua WSS
Thông số kết nối, cơ chế hoạt động và tài liệu tham khảo tích hợp tính năng nghe/gọi trực tiếp trên trình duyệt qua WebRTC.
Tài liệu này cung cấp thông số cấu hình và cơ chế kỹ thuật để lập trình viên tích hợp module thoại trực tiếp trên trình duyệt (CRM/ERP) thông qua SIP over Secure WebSocket (WSS) và WebRTC.
Định hướng tích hợp:
Đây là tài liệu thông số và cơ chế nền tảng để DEV tự phát triển module Softphone tùy biến theo hệ thống của doanh nghiệp; không phải là bộ webphone UI hoàn chỉnh sẵn sàng cho Production.
Ứng dụng và phạm vi triển khai
Tích hợp WebRTC cho phép ứng dụng web giao tiếp trực tiếp với tổng đài ODS mà không cần cài đặt phần mềm ngoài (như MicroSIP, Zoiper):
- Click-to-Call: Bấm gọi trực tiếp từ hồ sơ khách hàng hoặc ticket trên CRM.
- Tiếp nhận cuộc gọi (Screen Pop-up): Bắt sự kiện cuộc gọi đến để hiển thị thông tin người gọi ngay khi chuông reo.
- Giao diện tùy biến: Tự thiết kế bàn phím số và trải nghiệm gọi đồng bộ theo Design System của doanh nghiệp.
Phân định trách nhiệm
- ODS cung cấp: Cổng báo hiệu WSS, tổng đài SIP, hạ tầng Media Gateway chuyển đổi âm thanh và định tuyến viễn thông.
- Doanh nghiệp phát triển (DEV): Quản lý thư viện SIP client (JsSIP / SIP.js), thiết kế giao diện bàn phím, xin quyền Microphone và xử lý thẻ âm thanh trên trình duyệt.
Thông số kết nối
Sử dụng chính xác các giá trị cấu hình sau khi khởi tạo kết nối:
| Thông số | Giá trị quy chuẩn | Ghi chú kỹ thuật |
|---|---|---|
| WebSocket URL | wss://rtc.cloudfone.vn:4433 | Điểm kết nối báo hiệu WSS. Không thêm /ws và không đổi cổng 4433. |
| SipURI | sip:<MAY_LE>@<TENANT_DOMAIN> | Định danh máy nhánh (ví dụ: sip:[email protected]). |
| Username | <MAY_LE> | Số máy lẻ nội bộ (lấy tại mục Nhân viên trên Portal tổng đài). |
| Password | <MAT_KHAU_MAY_LE> | Mật khẩu SIP của máy lẻ (không dùng mật khẩu đăng nhập CRM). |
| Realm | <TENANT_DOMAIN> | Tên miền tổng đài do ODS cấp. Không tự suy từ REST ServiceName. |
| ICE Servers | Không cần khai báo thêm | Cấu hình ODS hỗ trợ sẵn định tuyến media thông thường. |
Lưu ý về ICE và tường lửa: Việc không cần khai báo thêm STUN/TURN server không đảm bảo 100% mọi mạng doanh nghiệp đều thông suốt. Nếu mạng nội bộ chặn các dải cổng UDP, âm thanh WebRTC vẫn có thể bị gián đoạn.
Cơ chế hoạt động và luồng kết nối
Hệ thống hoạt động dựa trên 2 kênh độc lập: Kênh báo hiệu (WSS) và Kênh âm thanh (WebRTC Media).
Các mốc trạng thái kết nối
- WSS connected: Mở thành công kênh WebSocket tới máy chủ ODS (chứng minh mạng thông suốt tới cổng
4433). - SIP registered: Tổng đài xác thực thành công máy nhánh (
200 OK). Máy lẻ chính thức trực tuyến. - Thiết lập cuộc gọi: Trao đổi bản tin SIP
INVITE,180 Ringingvà đàm phán mô tả phiên qua SDP (Codec âm thanh). - Truyền nhận Media: Khi người nhận nhấc máy (
200 OK), luồng âm thanh truyền trực tiếp qua giao thức bảo mật SRTP/UDP giữa trình duyệt và ODS Media Gateway. - Kết thúc cuộc gọi: Gửi bản tin
BYE, ngắt luồng âm thanh và dọn dẹp phiên.
2 nguyên tắc cốt lõi:
- WSS connected $\neq$ SIP registered: Mở socket thành công chưa chứng minh thông tin tài khoản hợp lệ.
- SIP registered $\neq$ Đã thông âm thanh: Báo hiệu thành công nhưng nếu mạng chặn UDP hoặc micro bị từ chối, cuộc gọi vẫn bị câm tiếng. Âm thanh không đi qua kênh WebSocket.
Tài liệu tham khảo
Để bắt đầu phát triển client, bạn có thể lựa chọn một trong các thư viện SIP mã nguồn mở phổ biến và tra cứu tài liệu chính thức:
- JsSIP Documentation (v3.10.x): Thư viện SIP client nhẹ, chuẩn RFC 3261, phổ biến trên Asterisk.
- SIP.js Documentation: Thư viện SIP client hiện đại hỗ trợ TypeScript đầy đủ.
- MDN WebRTC API: Tài liệu chuẩn của Mozilla về xử lý luồng
MediaStream,RTCPeerConnectionvà bắt quyền Microphone. - Autoplay Policy Guide (Chrome/MDN): Hướng dẫn xử lý chính sách chặn âm thanh tự động của trình duyệt khi nhận cuộc gọi đến.
Ghi chú kiểm chứng:
Tài liệu này được biên soạn dựa trên thông số kỹ thuật chuẩn của hệ thống ODS. Trong quá trình viết tài liệu, hệ thống chưa kiểm thử đăng ký SIP / thực hiện cuộc gọi thực tế nhằm tuân thủ quy tắc an toàn, không tự ý phát sinh cước viễn thông khi chưa có môi trường thử nghiệm chuyên dụng.
Bài viết liên quan
Tổng quan tích hợp WebRTC
Tìm hiểu cơ chế đàm thoại trực tiếp trên trình duyệt web, phân biệt WebRTC với WebSocket và lựa chọn phương án tích hợp phù hợp cho CRM/ERP.
Tích hợp Widget ODSPhone
Hướng dẫn nhúng bàn phím gọi thoại (ODSPhone Widget SDK) vào hệ thống CRM/ERP, cấu hình giao diện, cơ chế đăng nhập và giới hạn điều khiển.