WebRTC话机插件
适用版本soft-phone-sdk_1.0.17
DEMO获取
获取demo, 点击下载
使用注意事项
- 需要在demo目录中开启
http
服务, 并使用http://localhost:<端口>
访问index.html
, 如果用ip访问, 会提示需要https
环境
安装
<script src="/soft-phone-sdk/soft-phone-sdk_1.0.17.js"></script>
快速使用
下面例子会自动创建一个默认自动接听的话机实例
import SoftPhoneSdk from 'soft-phone-sdk';
const op = {
wss: '话机服务地址',
wssport: '话机服务端口',
account: '话机账号',
password: '话机密码'
}
const SoftPhoneSdk = new SoftPhoneSdk(op);
如果弹出浏览器对麦克风的使用请求, 请点击允许
初始化配置 SoftPhoneOptions
在new SoftPhoneSdk(options)
中,options
配置项如下:
wss: string
必传
远程
websocket
服务地址wssport: string
必传
远程
websocket
服务端口account: string
必传
话机账号
password: string
必传
话机密码
el: string
接收一个元素选择器,用于指定
SDK
的UI控件的显示位置, 不传则不展示UI控件。
<div id="sdk-box"></div>
const sdk = new SoftPhoneSdk({
el: '#sdk-box',
...
});
如果配置正确, 会有如图控件出现在页面上的指定元素内。
ring: string
default: 内置音频
振铃音频文件路径
autoAnswer: boolean
default: true
开启自动接听
logLevel: number
default: 3
日志等级,
error 0
warn 1
log 2
debug 3
stunServers: Array
default: null
配置
stun
服务地址
API
在const sdk = new SoftPhoneSdk(options)
中,可以通过sdk
直接调用的方法。
init(options: SoftPhoneOptions)
接收一个
SDK
配置对象,将当前实例再次初始化,new SoftPhoneSdk(options)
会自动调用,当你需要重新初始化SDK
的时候可以使用。register(options ?: SoftPhoneOptions)
登录话机, 重新建立链接, 发起注册
unregister()
取消注册
stop()
退出, 断开链接
call(called: string)
话机发起外呼, 参数
called
为被叫号码answer()
应答
dtmf(num: number | string)
发送单个字符的
dtmf
命令, 支持0-9#*
mute()
静音
unMute()
解除静音
hangup()
挂断通话, 呼叫中和通话中都可以使用
getDevices(): Promise<Array<MediaDeviceInfo>>
获取设备信息
setAutoAnswer(autoAnswer: boolean)
设置自动接听
isVideo(): boolean
是否允许视频通话
on(eventName: string, callback: Function): string
对
sdk
的事件进行监听,当事件触发时调用callback
, 返回一个监听的uuid
用于取消监听, 支持的事件名称在EventMap部分找到。
const uuid = softPhone.on('Registered', data => {
// 注册成功
})
once(eventName: string, callback: Function): string
对
sdk
的事件进行监听,当事件触发时调用callback
, 返回一个监听的uuid
用于取消监听, 支持的事件名称在EventMap部分找到, 与on
不同的是,once
绑定的事件在触发之后会自动解绑, 一次绑定只会触发一次。
const uuid = softPhone.once('Registered', data => {
// 注册成功
})
off(eventName: string, uuidOrFn: string | Function): Boolean
取消一个SDK
的事件监听, 需要指定eventName
, 可以使用指定函数引用或监听的uuid
。
softPhone.off('Registered', uuid);
// or
softPhone.off('Registered', functionPointer);
事件 EventMap
可以通过sdk.on方法绑定或解绑并取得响应数据的事件名称集合。
sdk.on('Registered', res => { ... })
可监听的事件名称如下:
Connected
链接成功
Disconnected
链接断开
Registered
注册成功, 需要注意的是, 注册状态有过期时间, 默认5分钟, 5分钟之后, 会自动发起注册, 再次触发
Registered
事件UnRegistered
退出成功
RegistrationFailed
注册失败
CallTerminated
呼叫终止
Invite
收到呼叫
Try
收到
100 try
Ringing
对端振铃
Answer
应答
AnswerFailed
应答失败
Accepted
进入通话
Terminated
通话结束