WebRTC话机插件

适用版本soft-phone-sdk_1.0.19

安装

npm install soft-phone-sdk

或者

<script src="/soft-phone-sdk/soft-phone-sdk_1.0.19.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)

    登录话机, 重新建立链接, 发起注册

  • stop()

    退出, 断开链接

  • call(called: string)

    话机发起外呼, 参数called 为被叫号码

  • answer()

    应答

  • dtmf(num: number | string)

    发送单个字符的dtmf命令, 支持0-9#*

  • mute()

    静音

  • unMute()

    解除静音

  • hangup()

    挂断通话, 呼叫中和通话中都可以使用

  • getDevices(): Promise<Array<MediaDeviceInfo>>

    获取设备信息

  • 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);
  • setAutoAnswer(autoAnswer: boolean)

    设置自动应答

事件 EventMap

可以通过sdk.on方法绑定或解绑并取得响应数据的事件名称集合。

sdk.on('Registered', res => { ... })

可监听的事件名称如下:

  • Connected

    链接成功

  • Disconnected

    链接断开

  • Registered

    注册成功

  • UnRegistered

    退出成功

  • RegistrationFailed

    注册失败

  • CallTerminated

    呼叫终止

  • Invite

    收到呼叫

  • Answer

    应答

  • AnswerFailed

    应答失败

  • Accepted

    进入通话

  • Terminated

    通话结束

文档更新时间: 2024-03-25 03:12   作者:董万越