代码拉取完成,页面将自动刷新
同步操作将从 小老头/webrtc-webphone 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
基于JsSIP封装的webrtc软电话工具条
yarn install
yarn serve
修改AgentBar.vue页面中config配置:
config: {
host: '10.133.35.89', //sip服务器地址
port: '5066', //sip服务器ws地址,如是wss地址修改proto为true
proto: false,
extNo: '1001',
extPwd: '123456',
autoRegister: false, //是否自动发起分机注册
stunServer: 'stun.1.google.com', //可自行修改使用stun服务器地址
stateEventListener: this.stateEventListener //状态回调
}
初始化加载sdk
参数 | 说明 | 是否必填 |
---|---|---|
host | 服务器地址 | 必填项 |
port | 服务器端口 | 必填项 |
proto | bool类型 true/false,使用wss或者ws协议 | 不填,默认为ws协议 |
extNo | 分机账号 | 必填项 |
extPwd | 分机密码 | 必填项 |
stateEventListener | 状态回调函数方法 参照文档最下方stateEventListener详细说明 | 需注入状态回调 |
autoRegister | bool类型 true/false,initSDK调用后是否自动注册 | 不填默认为false |
stunServer | stun server地址,example: stun.1.google.com | 可不填 |
let config = {
host: '10.133.35.89',
port: '5066',
proto: false,
extNo: '1001',
extPwd: '123456',
autoRegister: true,
stateEventListener: stateEventListener
}
Ctibar.initSDK(config)
关闭销毁sdk
Ctibar.cleanSDK()
分机注册register
Ctibar.register()
取消分机注册
Ctibar.unregister()
发起呼叫请求
参数 | 说明 | 是否必填 |
---|---|---|
phone | 真实外呼需要传的参数,请再调用前去除不必要的字符,如空格、- 等特殊符合 | 必填项 |
Ctibar.makecall(phone)
挂断电话
Ctibar.hangup()
接起通话
Ctibar.answer()
通话保持,一端播放音乐
Ctibar.hold()
取消通话保持
Ctibar.unhold()
通话转接,挂断自己转接至第三方
参数 | 说明 | 是否必填 |
---|---|---|
phone | 真实转接需要传的参数,请再调用前去除不必要的字符,如空格、- 等特殊符合 | 必填项 |
Ctibar.transfer(phone)
前端注入状态回调函数,通过状态回调 控制页面按钮显示
stateEventListener回调参数为 event, data
Event事件列表 | 返回值 | 状态说明 |
---|---|---|
MICERROR | {msg: xxxx} | 麦克风检测异常 |
ERROR | {msg: xxxx} | 错误异常 |
CONNECTED | {localAgent: '1001'} | 连接成功 |
DISCONNECTED | 无返回值 | websocket连接失败 |
REGISTERED | 无返回值 | 注册成功 |
UNREGISTERED | 无返回值 | 取消注册 |
REGISTER_FAILED | {msg: xxxx} | 注册失败 |
INCOMING_CALL/OUTGOING_CALL | {direction: 'inbound', otherLegNumber: '138xxxxxxxx', 'callId': 'xxxxxxx'} 说明:direction为呼叫方向:inbound呼入,outbound呼出;otherLegNumber:第三方呼叫记录 | 呼入振铃/外呼响铃 |
IN_CALL | 无返回值 | 通话中 |
HOLD | 无返回值 | 保持中 |
CALL_END | 无返回值 | 通话结束 |
const stateEventListener = (event, data) => {
switch(event){
case "ERROR":
break
case "CONNECTED":
break
......
default:
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。