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 đó:
BACKEND và FRONTEND 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)
- FRONTEND sau khi chứng thực sẽ request để nhận token từ BACKEND, token này được tạo ra từ API_KEY và API_SECRET thông qua thuật toán được cung cấp bởi PitelHelper
- Token này sẽ truyền vào PitelSDK, cùng với số máy nhánh (extension) để giao tiếp với Pitel Backend.
- PitelSDK sau đó sẽ tự động kết nối SIP với Pitel Voice để thực hiện các tính năng thoại
Đă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ý.
- Tạo một project mới
- Tạo API_KEY cho project vừa tạo
Chọn create API_KEY, sau đó lưu lại và cập nhật cho BACKEND để sử dụng.
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:
- Đăng nhập vào portal
- Chọn project đã tạo trước đây
- Chọn API_KEY đã tạo trước đó và copy đoạn Embed code nhúng vào website trước thẻ đóng </body>
- Trong project, sau khi đã chứng thực và nhận được Token từ BACKEND, khởi tạo và sử dụng PitekSDK
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!