WEB
I. Cài đặt
Tải SIP.js tại đây: https://github.com/onsip/SIP.js/releases hoặc nếu project có sử dụng npm thì dùng
npm install sip.jsPhiên bản mới nhất hiện tại: 0.21.2
Document SIP.js: https://github.com/onsip/SIP.js/blob/master/docs/README.md
II. Đăng nhập máy nhánh (extension)
Khai báo các biến global và import các class sau:
import {
Invitation,
InvitationAcceptOptions,
Inviter,
InviterInviteOptions,
Registerer,
Session,
SessionState,
UserAgent,
UserAgentOptions,
Web
} from "sip.js";
import {IncomingResponse} from "sip.js/lib/core";
userAgent: UserAgent;
// registerer để quản lý các thao tác đăng nhập, đăng xuất máy nhánh.
registerer: Registerer;
// incomingInvitation để quản lý các sự kiện liên quan đến cuộc gọi đến (incoming call)
incomingInvitation: Invitation;
// outgoingInviter để quản lý các sự kiện liên quan đến cuộc gọi đi (outgoing call)
outgoingInviter: Inviter;
// khi một cuộc gọi bất kì diễn ra, 1 session được tạo ra, biến này dùng để theo dõi các trạng thái của cuộc gọi cho đến khi cuộc gọi kết thúc.
session: Session;Khai báo UserAgent và Registerer để đăng nhập máy nhánh:
III. Đăng xuất máy nhánh (extension)
IV. Thực hiện cuộc gọi (outgoing call)
Để thực hiện cuộc gọi:
Trước khi thực hiện cuộc gọi cần gọi API để lấy đường dây khả dụng có thể gọi.
Cuộc gọi video (Video Call), tiếp tục là hàm call() bên trên:
V. Nhận cuộc gọi (incoming call)
Thêm giá trị này vào field delegate của UserAgentOptions ở mục II, bước 2.
Nếu là cuộc gọi video thì check biến
incomingInvitation
Chấp nhận cuộc gọi
Nếu là cuộc gọi video thì cũng với hàm
answer()bên trên, ta có thể hiện thực như sau:
Từ chối cuộc gọi
VI. Xử lý cuộc gọi, lấy remoteMediaStream
Giao diện của bạn phải có các tag
<audio>và<video>để hiển thị video và phát audio khi nghe gọi. Với local là phía user và remote là phía người đàm thoại với user.Ví dụ:
VII. Lắng nghe các State của cuộc gọi
VIII. Chủ động kết thúc cuộc gọi
IX. Giữ máy
Last updated