NAV
javascript python

Giới thiệu

Cùng với sự phát triển của công nghệ VoIP, nhu cầu về việc tích hợp tính năng thoại và video trên các ứng dụng ngày càng phổ biến và đa dạng. Tuy nhiên, việc lập trình các tính năng thoại tương đối phức tạp và tốn nhiều công sức đối với các developer, đặc biệt các developer không có nhiều kinh nghiệm về tổng đài.

Thấu hiểu được điều đó, hệ thống tổng đài Pitel cho ra đời PitelSDK (bộ kit phát triển) giúp cho các developer dễ dàng tích hợp tính năng thoại và video sử dụng tổng đài Pitel lên các ứng dụng web/mobile một cách nhanh chóng và tiện lợi mà không đòi hỏi nhiều logic phức tạp.

Mọi thắc mắc cũng như thông tin hỗ trợ, vui lòng liên hệ support@tel4vn.com.

Mô hình tổng quan

Trong đó:
BACKENDFRONTEND là server side và client side của ứng dụng cần tích hợp.
PitelHelper được cung cấp dưới dạng module, cung cấp hàm tạo token từ API_KEY cho BACKEND.
PitelSDK được cung cấp dưới dạng thư viện cho từng nền tảng: Web (JS), iOS, Android.
Pitel Backend Còn gọi là portal, quản lý SDK và xử lý hầu hết các tác vụ.
Pitel Voice Hệ thống voice Pitel.

Hoạt động:
Để sử dụng PitelSDK, mỗi ứng dụng sẽ được cấp một cặp API_KEY / API_SECRET (có thể đăng ký và tạo tại https://portal.tel4vn.com)

Đăng ký API_KEY

Nhà phát triển (Developer) có thể dễ dàng đăng ký API_KEY thông qua portal
- Đăng nhập vào portal
Vào https://portal.tel4vn.com và tiến hành đăng nhập với username/password, nếu chưa có tài khoản thì tiến hành đăng ký.

Get Pitel Token

BACKEND cần xây dựng một API hoặc một cơ chế để tạo và trả về token client

API lấy token có thể được thiết kế tùy ý, tham khảo hoặc sử dụng PitelHelper để tạo token tùy thuộc ngôn ngữ lập trình đang sử dụng.

Golang - https://github.com/tel4vn/pitel-helpers-go
Python - https://github.com/tel4vn/pitel-helpers-python
Javascript - https://github.com/tel4vn/pitel-helpers-es6
NodeJS - https://github.com/tel4vn/pitel-helpers-nodejs
PHP - https://github.com/tel4vn/pitel-helpers-php

Ví dụ về API nhận token

from .helpers import PitelHelpers
import .config

def generate_token(number="100"):
  helper = PitelHelpers(config.api_key, config.api_secret, number)
  return helper.getAccessToken()
import PitelHelpers from 'pitel-helper-es6'
import {API_KEY, SECRET_KEY} from './config'

function generate_token(number:string="100") {
  const helper = new PitelHelpers(API_KEY, SECRET_KEY, number);
  return helper.getAccessToken();
}

PitelSDK Web

Để sử dụng PitelSDK cho ứng dụng, có thể thực hiện các bước đơn giản sau:

let pitelSDK = new PitelSDK(API_KEY, pitelToken, sipUsername, sipDelegates, sdkOptions)

Trong đó:
API_KEY: API_KEY đã tạo trên portal
pitelToken: token được tạo ra sau khi chứng thực
sipUsername: Sip account sipDelegates: Một object gồm các hàm callback để nhận các sự kiện được trả về từ SDK. Các hàm này là tùy chọn.
sipOptions: Các tùy chọn cấu hình SDK gồm:

Thuộc tính Kiểu dữ liệu Chi tiết
enableWidget boolean Sử dụng hoặc không sử dụng widget
sipOnly boolean Tùy chọn sử dụng SDK thông qua pitel portal hoặc sip account
sipDomain string Thông tin sip domain (Sử dụng khi sipOnly=true)
wsServer string Thông tin websocket (Sử dụng khi sipOnly=true)
sipPassword string Thông tin sip password (Sử dụng khi sipOnly=true)
const sipDelegates = {
 onRegistered: function() {
   console.log('SIP Register success!')
  //Demo call out, make sure SIP already registered
   pitelSDK.call('502');
 },
 onUnregistered: function() {
   console.log('SIP Unregister success!')
 },
 onCallReceived: function(remoteNumber) {
   //do something
 }
}

let pitelSDK = new PitelSDK(API_KEY, pitelToken, sipUsername, sipDelegates, sdkOptions)

Các hàm Delegates:

Các sự kiện được gọi thông qua delegates mô tả như bảng sau:

Tên hàm Tham số Chi tiết
onRegistered
onUnregistered Được gọi khi hủy đăng ký SIP thành công
onCallReceived remoteNumber: số điện thoại hoặc số nội bộ đầu xa
onCallCreated remoteNumber: số điện thoại hoặc số nội bộ đầu xa
onCallAnswered Được gọi khi cuộc gọi thông thoại
onCallHangup Được gọi khi cuộc gọi kết thúc
onCallHold held: true (tạm dừng), false (tiếp tục) Được gọi khi cuộc gọi tạm dừng hoặc tiếp tục

Các phương thức:
PitelSDK Web hỗ trợ các phương thức sau:

Tên hàm Tham số Chi tiết
call number: số điện thoại hoặc số nội bộ được gọi Thực hiện cuộc gọi đến số number
unregister Hủy đăng ký
decline Từ chối cuộc gọi đến
accept Trả lời cuộc gọi đến
hangup Kế thúc cuộc gọi
mute Tạm tắt kênh thoại chiều truyền đi, vẫn nghe âm thanh từ phía còn lại
unmute Mở lại kênh thoại truyền đi, âm thanh 2 chiều
hold Tạm dừng cuộc gọi
unhold Tiếp tục cuộc gọi sau khi tạm dừng
dtmf key: phím dtmf cần gửi. Chấp nhận [0-9*#] Gửi phím DTMF khi đang trong cuộc gọi

PitelSDK iOS

Tài liệu đang được xây dựng!

PitelSDK Android

Tài liệu đang được xây dựng!