WEB

I. Cài đặt

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><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