ccbar.js
v2.0.6
Published
A simple, intuitive, and powerful JavaScript signaling library
Maintainers
Readme
ccbar.js
对接流程
Step1: 安装ccbar.js
npm i ccbar.js
import { CCBAR } from 'ccbar.js/lib/core';Step2 初始化
const uri = 'https://www.139130.com'; //后端服务地址;
// 初始化ccbar
const ccbar = new CCBAR({
enterprise: enterprise, // 企业账号
account: account, // 坐席账号
password: password, // 密码
skillGroupId: skillGroupId, // 技能组id
api: uri + '/tscloud/ccbar/', // 访问后端接口地址
wsUrl: uri, // 坐席消息推送websocket地址
log: { // webRTC日志构造,参考sip.js 0.14.6
builtinEnabled: true,
level: 2, // 0:error,1:warn,2:log,3:debug
connector: (level, category, label, content) => {
}
}
});Step3 获取sip参数
ccbar.getSip();Step4 订阅回调事件
let subscribe = ccbar.getInterfaceSubject().subscribe(res => {
// 接口异常
if (res.isError) {
alert(res.msg);
return;
}
// 签入成功
if (res.code === 2001) {
// 设置坐席初始状态,这里是react的写法
this.setState({
status: Util.getSeatStatusItemById(res.body.data.seatStatus)
});
// 获取显号列表
ccbar.getNumberList();
// 订阅坐席状态消息事件
wsMesseageCallback();
return;
}
//获取sip参数成功
if (res.code === 20011) {
// 初始化webRTC
ccbar.initWebRTC()
// 订阅软电话机sip消息推送回调。
sipMesseageCallback();
return;
}
// 获取显号成功
if (res.code === 2002) {
//TODO
return;
}
// 呼叫成功
if (res.code === 2004) {
//TODO
return;
}
// ...
});
// 订阅软电话机sip消息事件
function sipMesseageCallback() {
subscribe.add(ccbar.webRTCSubject.subscribe((res) => {
// sip注册成功
if (res.code === 6001) {
return;
}
// sip未注册
if (res.code === 6002) {
// TODO
return;
}
// ...
}));
}
// 订阅坐席状态消息事件
wsMesseageCallback() {
subscribe.add(ccbar.getWebSocketSubject().subscribe(res => {
const body = JSON.parse(res.body);
if (body.type === 2) {
// 坐席状态
// TODO
return;
}
if (body.type === 6) {
// 弹屏
return;
}
}));
}方法
| 方法名 | 参数 | 说明 | | :-----------: | :-----------------------------------------: | :-------------: | | signIn | 无 | 签入 | | getNumberList | 无 | 获取显号列表 | | changeStatus | status:number(1:空闲;2:小休;3:忙碌) | 坐席状态切换 | | normalCall | phone:呼叫号码;displayNum:显号 | 打电话 | | endCall | sessionId | 结束电话 | | mute | sessionId | 静音 | | holdOn | sessionId | 保持通话 | | resumeCall | sessionId | 恢复通话 | | satisfiy | sessionId | 下发满意度 | | signOut | 无 | 签出 | | getSip | 无 | 查询sip相关参数 | | accept | 无 | 接听来电 | | initWebRTC | 无 | 初始化webRTC | |callStatistics | 无 | 通话统计接口 | | getMissedCall | 无 | 未接来电列表接口 | | callBack | callRecordId:通话记录id | 未接来电回呼 | | stop | 无 | 断开WebRTC、坐席状态推送链接 | | setPredictStatus | ifPredict:number(0:否;1:是) | 设置是否接听预测式外呼 |
getWebSocketSubject回调
软电话机状态消息推送回调。
| 字段 | 值 | 说明 | | :---: | :-------------------------------------------------------------------------------------------: | :-----------: | | type | 1-建立连接2-坐席状态3-自动呼叫消息4-通知消息5-出登录消息6-通话弹窗7-联系计划通知8-号码异常消息9-接入来电方式消息| 类型 | | msg | WsMessage | WsMessage消息 |
WsMessage
| 字段 | 类型 | 说明 | | :--------: | :----: | :------------------------------: | | seatId | number | 坐席id | | status | string | 坐席状态名称 | | statusCode | number | 坐席状态值(详情参考statusCode) | | sessionId | string | 通话唯一标识 | | ttl | number | 后处理倒计时(单位秒) | | phone | string | 弹屏电话 | | timestamp | number | 时间戳 | | callRecordId | string | 通话记录id | | displayNum |string| 显号 | |callType|string| 呼叫类型| |caller|string| 主叫| |called|string| 被叫| |data|string| 自定义数据(流水号等)| |callTaskId|string| 任务id| |customerName|string| 客户姓名| |ifReline|number| 是否重呼|
statusCode
| 值 | 说明 | | :---: | :-------------------------: | | 0 | 未签入 UNSIGN | | 1 | 空闲 FREE | | 2 | 小休 BREAK | | 3 | 忙碌 BUSY | | 4 | 呼叫坐席中 SEAT_CALLING | | 5 | 坐席振铃中 SEAT_RINGING | | 6 | 呼叫客户中 CALLING_CUSTOMER | | 7 | 客户振铃中 CUSTOMER_RINGING | | 8 | 外呼通话中 OUT_CALLING | | 9 | 来电振铃中 IN_RINGING | | 10 | 来电通话中 IN_CALLING | | 11 | 后处理 AFTER_DEAL | | 12 | 呼出 OUT_CALLABLE | | 13 | 呼入 IN_CALLABLE | | 14 | 群呼中 MULT_CALLING |
getWebRTCSubject回调
软电话机sip消息推送回调。
| code | msg | | :---: | :-----------------------: | | 6001 | SIP注册成功! | | 6002 | SIP未注册! | | 6003 | SIP注册失败! | | 6004 | message | | 6005 | outOfDialogReferRequested | | 6006 | transportCreated | | 6007 | 您有新的来电! | | 6008 | 未检测到来电! | | 6009 | 未检测到音频设备! | | 60010 | 浏览器无法获取音频设备! |
getInterfaceSubject回调
软电话机接口消息推送回调。
| code | msg | | :---: | :----------------: | | 5001 | 签入失败! | | 5002 | 获取显号列表失败! | | 5003 | 坐席状态切换失败! | | 5004 | 外呼失败! | | 5005 | 结束通话失败! | | 5006 | 静音失败! | | 5007 | 保持失败! | | 5008 | 恢复失败! | | 5009 | 下发满意度失败! | | 50010 | 签出失败! | | 50011 | 获取sip失败! | | 50012 | SIP签入前失败! | | 50013 | 获取通话统计失败! | | 50014 | 获取未接来电列表失败! | | 50015 | 未接来电回呼失败! | | 50016 | 获取坐席状态失败! | | 50017 | 修改是否允许分配预测试外呼任务失败! | | 2001 | 签入成功! | | 2002 | 获取显号列表成功! | | 2003 | 坐席状态切换成功! | | 2004 | 外呼成功! | | 2005 | 结束通话成功! | | 2006 | 静音成功! | | 2007 | 保持成功! | | 2008 | 恢复成功! | | 2009 | 下发满意度成功! | | 20010 | 签出成功! | | 20011 | 获取sip成功! | | 20012 | SIP签入前成功! | | 20013 | 获取通话统计成功! | | 20014 | 获取未接来电列表成功! | | 20015 | 未接来电回呼成功! | | 20016 | 获取坐席状态成功! | | 20017 | 修改是否允许分配预测试外呼任务成功! |
