1. 注意事项
-
浏览器支持:IE8/IE9/IE10/IE11/Edge、Chrome、Firefox、Safari
-
软电话功能请使用Chrome或者Firefox浏览器并使用HTTPS协议
-
请不要在回调函数中执行阻塞操作(如alert、confirm),阻塞会导致连接断线重连,引发事件丢失
2. 产品简介
欢迎使用“AICC”的电话条,您可以在自己的业务系统中快速集成通话的功能。当前为您提供了三种接入方式:插件版、接口版、桌面版,您可以根据项目需要选择其中任一一款。
2.2. 接口版
接口版提供原始JS文件,无需安装其他ocx控件,将电话条JS嵌入您的业务系统中,即可实现这些功能。如果您想完全自定义UI样式,建议您选择这种方式。
2.3. 桌面版
桌面版需要把应用程序安装在使用者电脑中,独立于浏览器存在,可解决多页面切换话务状态无法同步的问题。如果您希望多页面操作保持话务状态共享,建议您选择这种接入方式。
-
注意:此版本只支持简单话务操作:接听、挂机、通话保持、座席状态切换、上下线、咨询、转移等。
3. 插件版
3.1. 快速集成
3.1.1. 引入依赖
<script type="text/javascript" src="{host}/clink-client.js?id={identifier}"></script>
<script type="text/javascript" src="{host}/clink-client-ui-vue/ClinkToolbar.umd.min.js"></script>
参数说明:
参数 | 说明 |
---|---|
host |
平台接入地址: 北京平台:https://ws-bj.clink.cn/ 上海平台:https://ws-sh.clink.cn/ 其它平台:请咨询技术支持 |
identifier |
企业编号,开户时创建的企业编号 |
3.1.2. 初始化
在您的业务系统中接入以下代码即可完成初始化配置,展示电话条界面。
// 隐藏登录界面、隐藏登录界面中的部分版块以及话务管理参数配置
var options = {
isAutoLogin: false, // 展示登录界面
// 隐藏登录界面中的部分版块配置
toolbarMsgShowConfiguration: {
showEnterprise: true, // 展示企业编码、座席工号、密码
showTel: true, //展示电话类型和电话号码
showAgentInitStatus: true, //展示座席初始状态
showTelInput: false, // 登录状态下是否显示号码输入框、默认为true
showCallingBth: false, // 登录状态下是否显示呼叫按钮、默认为true
showChangeBindTel: false, // 登录状态下是否显示换绑定电话配置、默认为false
},
// 话务管理配置
showHold: true, // 支持保持
showConsult: true, //支持咨询,
showTransfer: true, //支持转移
showSatisfaction: true, //支持满意度
showMute: true, //支持静音
debug: true // 是否开启debug 默认开启
}
var clinkToolbar = new ClinkToolbar(
options, // 登录方式和话务管理参数配置
domContainer, // 比如 document.querySelector('#root'),可以替换为任何你想插入的DOM节点。
callback // 回调函数
);
// 注意事项:初始化对象的过程需要在全局方法中处理,同时保存clinkToolbar为全局变量,避免电话条被销毁。
参数说明:
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
options |
object |
是 |
|
domContainer |
node |
否 |
传入你想要嵌入的任意元素节点,比如document.getElementById('#root'),不传入则默认嵌入到body里 |
callback |
function |
否 |
回调函数 |
登录界面配置
登录界面默认展示全部版块,您可根据实际需求隐藏部分版块或隐藏整个版块。如下图所示
隐藏部分版块
您可根据实际需求隐藏部分版块,例如隐藏企业编号、座席号、密码、签出,代码接入如下所示
-
⚠️ 隐藏部分版块后,必须通过 [clinkToolbar.setLoginNecessaryParams] 进行传参
const options = {
isAutoLogin: false,
toolbarMsgShowConfiguration:{
showEnterprise: false, // 隐藏企业编码、座席工号、密码
showTel: true, // 展示电话类型和电话号码
showAgentInitStatus: true // 展示座席初始状态
showLogout: false // 隐藏签出按钮
},
//...
};
const dom = document.getElementById('root');
const clinkToolbar = new ClinkToolbar(options, dom, () => {
console.log('电话条初始化完成');
});
const params = {
identifier: 'xxx',
cno: 'xxx',
password: 'xxx',
}
clinkToolbar.setLoginNecessaryParams(params);
示意图
参数说明:
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
debug |
boolean |
true |
否 |
是否开启debug日志,默认开启 |
toolbarMsgShowConfiguration |
object |
{showEnterprise:true, showTel:true, showAgentInitStatus:true} |
否 |
隐藏登录界面中的部分版块 |
isAutoLogin |
boolean |
false |
否 |
是否隐藏登录界面 |
toolbarMsgShowConfiguration参数说明:
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
showEnterprise |
boolean |
true |
否 |
是否展示企业编码、座席工号、密码 |
showTel |
boolean |
true |
否 |
是否展示电话类型和电话号码 |
showAgentInitStatus |
boolean |
true |
否 |
是否展示座席初始状态 |
showLogout |
boolean |
true |
否 |
是否显示座席登录后的签出按钮,默认显示 |
隐藏部分版块后,座席登录的必需参数初始化方式如下:
clinkToolbar.setLoginNecessaryParams(params);
params参数说明:
参数 | 类型 | 说明 |
---|---|---|
identifier |
string |
企业编码 当showEnterprise为false时必填,否则忽略 |
cno |
string |
座席工号 规则同identifier |
password |
string |
密码 规则同identifier |
bindType |
number |
绑定电话类型 当showTel为false时必填,否则忽略 参数取值参考[登录] |
bindTel |
string |
绑定电话号码 规则同bindType |
loginStatus |
number |
座席初始登录状态 当showAgentInitStatus为false时必填,否则忽略 参数取值参考[登录] |
隐藏整个版块
如果您不需要展示登录界面,只需将options参数中isAutoLogin参数设为true,然后调用ClinkAgent.login()方法即可。
const options = {
//...
isAutoLogin: true, //隐藏登录界面
//...
};
const dom = document.getElementById('root');
var clinkToolbar = new ClinkToolbar(options, dom, () => {
console.log('电话条初始化完成');
});
const params = {
identifier: 'xxx',
cno: 'xxx',
password: 'xxx',
bindTel: 'xxx',
bindType: xxx,
loginStatus: 1,
};
ClinkAgent.login(params);
|
话务管理配置
您可根据实际需要配置座席可进行的话务操作,如下图所示
var options = {
//...
showHold: true, // 支持保持
showConsult: true, //支持咨询,
showTransfer: true, //支持转移
showSatisfaction: true, //支持满意度
showMute: true //支持静音`
}
var clinkToolbar = new ClinkToolbar(
options,
domContainer,
callback
);
话务管理参数说明:
参数 | 类型 | 默认值 | 是否必填 | 说明 |
---|---|---|---|---|
showHold |
boolean |
true |
否 |
是否支持保持 |
showConsult |
boolean |
true |
否 |
是否支持咨询 |
showTransfer |
boolean |
true |
否 |
是否支持转移 |
showSatisfaction |
boolean |
true |
否 |
是否支持满意度 |
showMute |
boolean |
true |
否 |
是否支持静音 |
3.2. 座席操作
3.2.1. 登录
ClinkAgent.login(params);
// 注意事项:全文中的clinkToolbar全部指初始化电话条(ClinkToolbar)时生成的全局变量
clinkToolbar.userCustomEvent.on(ClinkAgent.ResponseType.LOGIN, function(event) {}); // 登录后的事件监听
3.2.2. 退出
ClinkAgent.logout(params);
clinkToolbar.userCustomEvent.on(ClinkAgent.ResponseType.LOGOUT, function(event) {}); // 退出后的事件监听
3.2.3. 预览外呼
ClinkAgent.previewOutcall(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
tel |
String |
必选 |
外呼号码 , 当开启号码隐藏设置时,可从弹屏事件中获取customerNumberKey的值,进行外呼 |
timeout |
Integer |
可选 |
呼叫座席超时时间,取值范围 5⇐timeout⇐60,默认30单位:秒 |
dialTelTimeout |
Integer |
可选 |
取值范围 5⇐dialTelTimeout⇐60,默认45,单位:秒 |
obClid |
String |
可选 |
客户侧外显号码 |
obClidGroup |
String |
可选 |
客户侧外显号码组 (字段废弃),使用obClidGroup需要账号支持按标识路由,使用此参数是obClid参数无效 |
obClidGroupName |
String |
可选 |
客户侧外显号码组,使用obClidGroupName需要账号支持按标识路由,使用此参数时obClid参数无效 |
userField |
String |
可选 |
用户自定义变量, 1. 将对象数据转化为json格式字符串,例如:"{\"key\":\"value\"}" 传入的值若需要在通话记录中进行展示,则需要在管理员控制台-企业配置-系统对接-话单变量,配置相应属性 |
requestUniqueId |
String |
可选 |
请求唯一标识,不传会自动生成,会存入通话记录表中 |
backupTels |
String |
可选 |
备用外呼号码,tel没呼通时呼叫备用号码,最多支持5个号码,多个之间用逗号分隔 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:previewOutcall |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
3.3. 事件说明
如果您想在业务系统中基于相应事件做扩展处理,请注册以下事件
⚠️ 同一事件多次注册,按注册顺序依次执行
clinkToolbar.userCustomEvent.on(ClinkAgent.EventType.STATUS, e => {
console.log('座席状态事件回调:', e);
});
clinkToolbar.userCustomEvent.on(ClinkAgent.EventType.PREVIEW_OUTCALL_RINGING, e => {
console.log('预览外呼客户响铃事件回调:', e);
});
clinkToolbar.userCustomEvent.on(ClinkAgent.EventType.PREVIEW_OUTCALL_BRIDGE, e => {
console.log('预览外呼客户接听事件回调:', e);
});
clinkToolbar.userCustomEvent.on(ClinkAgent.EventType.CONSULT_START, e => {
console.log('咨询开始事件回调:', e);
});
clinkToolbar.userCustomEvent.on(ClinkAgent.EventType.CONSULT_LINK, e => {
console.log('咨询接听事件回调:', e);
});
clinkToolbar.userCustomEvent.on(ClinkAgent.EventType.CONSULT_ERROR, e => {
console.log('咨询失败事件回调:', e);
});
clinkToolbar.userCustomEvent.on(ClinkAgent.EventType.UNCONSULT, e => {
console.log('咨询挂断/接回/取消事件回调:', e);
});
clinkToolbar.userCustomEvent.on(ClinkAgent.EventType.CONSULT_THREEWAY, e => {
console.log('咨询三方事件回调:', e);
});
clinkToolbar.userCustomEvent.on(ClinkAgent.EventType.CONSULT_THREEWAY_UNLINK, e => {
console.log('咨询三方挂断事件回调:', e);
});
clinkToolbar.userCustomEvent.on(ClinkAgent.EventType.CONSULT_TRANSFER, e => {
console.log('咨询转移事件回调:', e);
});
clinkToolbar.userCustomEvent.on(ClinkAgent.EventType.RINGING, e => {
console.log('响铃事件回调:', e);
});
clinkToolbar.userCustomEvent.on(ClinkAgent.EventType.KICKOUT, e => {
console.log('被踢下线事件回调:', e);
});
// 注册只监听一次的事件
clinkToolbar.userCustomEvent.once(ClinkAgent.EventType.STATUS, e => {
console.log('座席状态事件回调:', e);
});
// 取消事件监听
clinkToolbar.userCustomEvent.off(ClinkAgent.EventType.RINGING);
3.3.1. 座席状态
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
status |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作,座席状态动作对照表 |
loginStatus |
Integer |
登录状态 |
deviceStatus |
Integer |
设备状态 |
pauseDescription |
String |
loginStatus=2时,置忙描述 |
callType |
Integer |
deviceStatus=2,3或4时,通话类型 |
3.3.2. 预览外呼客户响铃
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
previewOutcallRinging |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
3.3.3. 预览外呼客户接听
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
previewOutcallRinging |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
customerNumberType |
Integer |
客户号码类型,1:固话 、2:手机 |
customerAreaCode |
String |
客户号码区号 |
calleeNumber |
String |
被叫号码 |
customerNumber |
String |
客户号码 |
callType |
Integer |
通话类型 |
3.3.4. 咨询开始
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
consultStart |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
channel |
String |
通道名称 |
3.3.5. 咨询接听
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
consultStart |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
channel |
String |
通道名称 |
objectType |
Integer |
咨询类型,0:电话号码、1:座席号、2:IP话机号 |
consultObject |
String |
咨询对象 |
3.3.6. 咨询接回/挂断/取消
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
unconsult |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
objectType |
Integer |
咨询类型,0:电话号码、1:座席号、2:IP话机号 |
consultObject |
String |
咨询对象 |
3.3.7. 咨询失败
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
consultError |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
3.3.8. 咨询三方
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
consultThreeway |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
3.3.9. 咨询三方挂断
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
consultThreewayUnlink |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
3.3.10. 咨询转移
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
consultThreewayUnlink |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
objectType |
Integer |
咨询类型,0:电话号码、1:座席号、2:IP话机号 |
consultObject |
String |
咨询对象 |
3.3.11. 弹屏
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
ringing |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
customerNumberType |
Integer |
客户号码类型,1:固话 、2:手机 |
customerAreaCode |
String |
客户号码区号 |
customerNumber |
String |
客户号码 |
customerProvince |
String |
客户省份 |
customerCity |
String |
客户城市 |
calleeNumber |
String |
被叫号码 |
callType |
Integer |
通话类型 |
uniqueId |
String |
通话唯一标识 |
mainUniqueId |
String |
主通话唯一标识 |
3.3.12. 被踢下线
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
kickout |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
3.3.13. 座席状态动作对照表
event | code | action | 描述 |
---|---|---|---|
status |
OFFLINE |
offline |
离线 |
status |
IDLE |
- |
空闲 |
status |
PAUSE |
pause |
忙碌 |
status |
CALLING |
calling |
呼叫中 |
status |
RINGING |
ringingIb |
呼入座席响铃 |
status |
RINGING |
ringingAgentOb |
外呼座席响铃 |
status |
RINGING |
ringingConsult |
咨询响铃 |
status |
RINGING |
ringingTransfer |
转移响铃 |
status |
BUSY |
busyAgentOb |
外呼座席接通,呼叫客户中 |
previewOutcallRinging |
BUSY |
ringingCustomerOb |
外呼客户响铃 |
previewOutcallBridge |
BUSY |
busyOb |
外呼客户接听,双方通话 |
status |
BUSY |
busyIb |
呼入接听 |
status |
BUSY |
hold |
保持开始 |
status |
BUSY |
unhold |
保持取消 |
consultStart |
BUSY |
consultStart |
咨询开始 |
consultLink |
BUSY |
consultLink |
咨询成功 |
unconsult |
BUSY |
unconsult |
咨询接回 |
consultThreeway |
BUSY |
consultThreeway |
咨询三方 |
consultError |
BUSY |
consultError |
咨询失败 |
consultTransfer |
BUSY |
consultTransfer |
咨询转移 |
status |
BUSY |
busyConsult |
座席被咨询 |
status |
BUSY |
busyTransfer |
座席被转移 |
status |
WRAPUP |
wrapup |
整理开始 |
ringing |
- |
- |
设备响铃 |
breakLine |
- |
- |
断线 |
kickout |
- |
- |
被踢下线 |
4. 接口版
4.1. 快速集成
4.1.1. 引入依赖
首先在页面中引入clink-client.js
<script type="text/javascript" src="{host}/clink-client.js?id={identifier}"></script>
参数说明:
参数 | 说明 |
---|---|
host |
平台接入地址: 北京平台:https://ws-bj.clink.cn/ 上海平台:https://ws-sh.clink.cn/ 其它平台:请咨询技术支持 |
identifier |
企业编号,开户时创建的企业编号 |
4.1.2. 参数设置
clink-client.js加载完成后,即可通过ClinkAgent对象调用setup方法进行初始设置
ClinkAgent.setup(params, callback);
参数说明:
参数 | 类型 | 必选 | 说明 |
---|---|---|---|
sipPhone |
boolean |
否 |
是否使用软电话 |
debug |
boolean |
否 |
是否开启控制台日志 |
callback回调函数
ClinkAgent.setup({sipPhone: false, debug: false}, function () {
// 回调操作
});
4.1.3. 事件注册
在ClinkAgent.setup的回调函数中进行事件注册多次注册同一事件,只保留最后一次注册的回调函数。注册方式如下:
ClinkAgent.setup({sipPhone: false, debug: false}, function () {
ClinkAgent.registerListener(ClinkAgent.EventType.STATUS, function (token) {
});
});
4.1.4. 方法调用
ClinkAgent.setup({sipPhone: false, debug: false}, function () {
// 以登录为例,注册回调方法
ClinkAgent.registerCallback(ClinkAgent.ResponseType.LOGIN, function (result) {
if(result.code === 0) {
// 登录成功
} else {
// 登录失败
}
});
// 传入参数对象
var params = {};
params.pauseType = 1;
params.pauseDescription = "忙碌";
ClinkAgent.pause(params);
// 不传入参数对象
ClinkAgent.unpause();
});
4.2. 座席操作
座席操作相关回调方法注册示例:
ClinkAgent.registerCallback(ClinkAgent.ResponseType.LOGIN, function(event) {}); // 登录
ClinkAgent.registerCallback(ClinkAgent.ResponseType.LOGOUT, function(event) {}); //退出
ClinkAgent.registerCallback(ClinkAgent.ResponseType.PAUSE, function(event) {}); // 置忙
ClinkAgent.registerCallback(ClinkAgent.ResponseType.UNPAUSE, function(event) {}); // 置闲
ClinkAgent.registerCallback(ClinkAgent.ResponseType.PREVIEW_OUTCALL, function(event) {}); // 预览外呼
ClinkAgent.registerCallback(ClinkAgent.ResponseType.PREVIEW_OUTCALL_CANCEL, function(event) {}); // 外呼取消
ClinkAgent.registerCallback(ClinkAgent.ResponseType.REFUSE, function(event) {}); // 拒接
ClinkAgent.registerCallback(ClinkAgent.ResponseType.UNLINK, function(event) {}); // 挂断
ClinkAgent.registerCallback(ClinkAgent.ResponseType.HOLD, function(event) {}); // 保持
ClinkAgent.registerCallback(ClinkAgent.ResponseType.UNHOLD, function(event) {}); // 保持接回
ClinkAgent.registerCallback(ClinkAgent.ResponseType.MUTE, function(event) {}); // 静音
ClinkAgent.registerCallback(ClinkAgent.ResponseType.UNMUTE, function(event) {}); // 取消静音
ClinkAgent.registerCallback(ClinkAgent.ResponseType.CONSULT, function(event) {}); // 咨询
ClinkAgent.registerCallback(ClinkAgent.ResponseType.CONSULT_CANCEL, function(event) {}); // 咨询取消
ClinkAgent.registerCallback(ClinkAgent.ResponseType.CONSULT_TRANSFER, function(event) {}); // 咨询转移
ClinkAgent.registerCallback(ClinkAgent.ResponseType.UNCONSULT, function(event) {}); // 咨询接回
ClinkAgent.registerCallback(ClinkAgent.ResponseType.TRANSFER, function(event) {}); // 转移
ClinkAgent.registerCallback(ClinkAgent.ResponseType.INTERACT, function(event) {}); // 交互
ClinkAgent.registerCallback(ClinkAgent.ResponseType.INVESTIGATION, function(event) {}); // 满意度调查
ClinkAgent.registerCallback(ClinkAgent.ResponseType.DTMF, function(event) {}); // 发送按键
ClinkAgent.registerCallback(ClinkAgent.ResponseType.CHANGE_BIND_TEL, function(event) {}); // 修改绑定电话
ClinkAgent.registerCallback(ClinkAgent.ResponseType.PROLONG_WRAPUP, function(event) {}); // 延长整理时间(方法已废弃,该回调无效)
ClinkAgent.registerCallback(ClinkAgent.ResponseType.SIP_LINK, function(event) {}); // 软电话接听
ClinkAgent.registerCallback(ClinkAgent.ResponseType.SIP_UNLINK, function(event) {}); // 软电话挂断
ClinkAgent.registerCallback(ClinkAgent.ResponseType.STATUS, function(event) {}); // 座席状态
ClinkAgent.registerCallback(ClinkAgent.ResponseType.ENTERPRISE_PAUSE, function(event) {}); // 企业置忙状态
ClinkAgent.registerCallback(ClinkAgent.ResponseType.PARALLEL_RINGING, function(event) {}); // 座席同振
ClinkAgent.registerCallback(ClinkAgent.ResponseType.PARALLEL_PICKUP, function(event) {}); // 同振抢线
ClinkAgent.registerCallback(ClinkAgent.ResponseType.PARALLEL_REFUSE, function(event) {}); // 同振拒接
4.2.1. 登录
登录
ClinkAgent.login(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
identifier |
String |
必选 |
企业编号 |
cno |
String |
必选 |
座席工号 |
password |
String |
必选 |
座席密码 |
bindTel |
String |
必选 |
绑定电话 |
bindType |
Integer |
必选 |
绑定类型,1:普通电话、2:IP话机、3:软电话 |
loginStatus |
Integer |
必选 |
登录状态,1:空闲、2:忙碌 |
pauseDescription |
String |
可选 |
置忙描述,当loginStatus为2时需要给定参数值,描述需包含在企业自定义的置忙状态内 |
needPasswordEncry |
Integer |
可选 |
是否需要对密码加密,1-前端加密 0-明文 |
queueMembers |
Objects[] |
可选 |
座席绑定队列; 数据源 参考 查看座席详情接口 返回的 赋值示例:[{"queueId":44170,"penalty":1}] |
chatLoginStatus |
Integer |
— |
1:空闲 2:置忙,全渠道、在线类型座席必选 |
chatPauseDescription |
String |
— |
置忙登录时的置忙状态 |
chatLimitNumber |
Integer |
— |
可接待会话数,指定则更新当前设置值 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:login |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
values |
object |
返回数据对象 |
示例
ClinkAgent.setup({sipPhone: false, debug: false}, function () {
// 注册登录响应回调方法
ClinkAgent.registerCallback(ClinkAgent.ResponseType.LOGIN, function (result) {
if(result.code === 0){
// 登录成功
} else {
// 登录失败
}
});
});
var params = {};
params.identifier = "";
params.cno = "";
params.loginStatus = 1;
params.bindTel = "";
params.bindType = 1;
params.password = "";
ClinkAgent.login(params);
4.2.2. token登录
token登录
ClinkAgent.login(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
identifier |
String |
必选 |
企业编号 |
agentToken |
String |
必选 |
token |
agentTokenLogin |
Integer |
必选 |
登录类型 值为:1 |
bindTel |
String |
必选 |
绑定电话,使用默认绑定电话请传空字符串:"" |
bindType |
Integer |
必选 |
绑定类型,1:普通电话、2:IP话机、3:软电话 |
loginStatus |
Integer |
必选 |
登录状态,1:空闲、2:忙碌 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:login |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
values |
object |
返回数据对象 |
示例
ClinkAgent.setup({sipPhone: false, debug: false}, function () {
// 注册登录响应回调方法
ClinkAgent.registerCallback(ClinkAgent.ResponseType.LOGIN, function (result) {
if(result.code === 0){
// 登录成功
} else {
// 登录失败
}
});
});
var params = {};
params.identifier = "";
params.agentToken = "";
params.agentTokenLogin = 1;
params.bindTel = "";
params.bindType = 1;
ClinkAgent.login(params);
4.2.3. 退出
ClinkAgent.logout(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
logoutMode |
Integer |
必选 |
退出方式,0:退出后台在线、1:完全退出 |
removeBinding |
Integer |
必选 |
解绑电话,0:不解绑、1:解绑 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:logout |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
示例
ClinkAgent.setup({sipPhone: false, debug: false}, function () {
// 注册退出响应回调方法
ClinkAgent.registerCallback(ClinkAgent.ResponseType.LOGOUT, function (result) {
if(result.code === 0) {
// 退出成功
} else {
// 退出失败
}
});
});
var params = {};
params.logoutMode = 1;
params.removeBinding = 0;
ClinkAgent.logout(params);
4.2.4. 置忙
ClinkAgent.pause(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
pauseType |
Integer |
必选 |
类型,1:置忙、2:休息 |
pauseDescription |
String |
可选 |
置忙描述 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:pause |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.5. 置闲
// 例: ClinkAgent.unpause({});
ClinkAgent.unpause(params);
参数params:无
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:unpause |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
4.2.6. 预览外呼
// 注意: 预览外呼须在 EVENT_TYPE.SIP_REGISTERED 事件发生后进行 !!!
// 例: ClinkAgent.registerListener(ClinkAgent.EventType.SIP_REGISTERED, function(token) {})
ClinkAgent.previewOutcall(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
tel |
String |
必选 |
外呼号码 , 当开启号码隐藏设置时,可从弹屏事件中获取customerNumberKey的值,进行外呼 |
timeout |
Integer |
可选 |
呼叫座席超时时间,取值范围 5⇐timeout⇐60,默认30单位:秒 |
dialTelTimeout |
Integer |
可选 |
取值范围 5⇐dialTelTimeout⇐60,默认45,单位:秒 |
obClid |
String |
可选 |
客户侧外显号码 |
obClidGroup |
String |
可选 |
客户侧外显号码组 (字段废弃),使用obClidGroup需要账号支持按标识路由,使用此参数时,obClid参数无效 |
obClidGroupName |
String |
可选 |
客户侧外显号码组,使用obClidGroupName需要账号支持按标识路由,使用此参数时,obClid参数无效 |
userField |
String |
可选 |
用户自定义变量 |
requestUniqueId |
String |
可选 |
请求id |
backupTels |
String |
可选 |
备用号码,多个号码以`,`链接。 |
task |
String |
可选 |
外呼任务 外呼任务ID。 |
taskInventoryId |
String |
可选 |
外呼任务详情id。 1. 将对象数据转化为json格式字符串,例如:"{\"key\":\"value\"}" 传入的值若需要在通话记录中进行展示,则需要在管理员控制台-企业配置-系统对接-话单变量,配置相应属性 |
requestUniqueId |
String |
可选 |
请求唯一标识,不传会自动生成,会存入通话记录表中 |
backupTels |
String |
可选 |
备用外呼号码,tel没呼通时呼叫备用号码,最多支持5个号码,多个之间用逗号分隔 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:previewOutcall |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.7. 预览外呼取消
// 例:ClinkAgent.previewOutcallCancel({});
ClinkAgent.previewOutcallCancel(params);
参数params :无
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:previewOutcallCancel |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.8. 拒接
ClinkAgent.refuse(params);
参数params:无
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:refuse |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.9. 挂断
ClinkAgent.unlink(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
side |
Integer |
可选 |
挂机侧,1:座席侧、2:客户侧,默认座席侧 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:unlink |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.10. 保持
ClinkAgent.hold(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
holdType |
Integer |
可选 |
保持类型,0:通话保持、1:咨询保持、2:转移保持,默认通话保持 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:hold |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.11. 保持接回
ClinkAgent.unhold(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
holdType |
Integer |
可选 |
保持类型,0:通话保持、1:咨询保持、2:转移保持,默认通话保持 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:unhold |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.12. 静音
ClinkAgent.mute(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
direction |
String |
必选 |
静音方向,in:座席侧、out:客户侧、all:全部侧 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:mute |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.13. 取消静音
ClinkAgent.unmute(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
direction |
String |
必选 |
静音方向,in:座席侧、out:客户侧、all:全部侧 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:unmute |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.14. 咨询
ClinkAgent.consult(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
objectType |
Integer |
必选 |
咨询类型,0:电话号码,1:座席号,2:IP话机号 |
consultObject |
String |
必选 |
咨询对象 (电话号码 或 座席号 或 IP话机号) |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:consult |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.15. 咨询取消
// 例如: ClinkAgent.consultCancel({});
ClinkAgent.consultCancel(params);
参数params: 无
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:consultCancel |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.16. 咨询转移
ClinkAgent.consultTransfer(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
limitTimeSecond |
Integer |
可选 |
通话限制时间,单位:秒 |
limitTimeAlertSecond |
Integer |
可选 |
提前提醒时间,单位:秒 |
limitTimeFile |
String |
可选 |
提醒语音文件名称 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:consultTransfer |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.17. 咨询三方
ClinkAgent.consultThreeway(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
limitTimeSecond |
Integer |
可选 |
通话限制时间,单位:秒 |
limitTimeAlertSecond |
Integer |
可选 |
提前提醒时间,单位:秒 |
limitTimeFile |
String |
可选 |
提醒语音文件名称 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:consultThreeway |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.18. 咨询三方静态转接
ClinkAgent.consultTransferThreeway(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
limitTimeSecond |
Integer |
可选 |
通话限制时间,单位:秒 |
limitTimeAlertSecond |
Integer |
可选 |
提前提醒时间,单位:秒 |
limitTimeFile |
String |
可选 |
提醒语音文件名称 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:consultTransferThreeway |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.19. 咨询接回
ClinkAgent.unconsult(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
limitTimeSecond |
Integer |
— |
通话限制时间,单位:秒 |
limitTimeAlertSecond |
Integer |
— |
提前提醒时间,单位:秒 |
limitTimeFile |
String |
— |
提醒语音文件名称 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:unconsult |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.20. 咨询三方接回
ClinkAgent.consultUnthreeway(params);
参数params: 无
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:consultUnthreeway |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.21. 转移
ClinkAgent.transfer(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
objectType |
Integer |
必选 |
转移类型,0:电话号码、1:座席号、2:IP话机号、3:语音导航节点 |
transferObject |
String |
必选 |
转移对象,转移类型为语音导航节点时传递json格式字符串: ivrNode: 语音导航节点endPoint {\"ivrName\":\"XXX\", \"ivrNode\":\"XXXXXXXXX\"} |
hold |
Integer |
可选 |
座席保持通话,1:保持,0:不保持,默认不保持。仅转移类型为语音导航节点时,支持保持通话功能 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:transfer |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.22. 交互
ClinkAgent.interact(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
interactType |
String |
必选 |
交互类型;1(默认):语音导航节点;2:坐席 |
ivrId |
Integer |
可选 |
语音导航id (字段废弃) |
ivrName |
String |
可选 |
语音导航名称 |
ivrNode |
String |
可选 |
语音导航节点endPoint |
interactedCno |
String |
可选 |
交互座席 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:interact |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.23. 满意度调查
ClinkAgent.investigation(params);
参数params :无
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:investigation |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.24. 内部呼叫
ClinkAgent.internalCall(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
internalType |
Integer |
必选 |
内部呼叫类型,0:座席号、1:IP话机号 |
calleeNumber |
String |
必选 |
被叫号码 |
timeout |
Integer |
可选 |
呼叫座席超时时间,取值范围 5⇐timeout⇐60,默认30单位:秒 |
dialTelTimeout |
Integer |
可选 |
取值范围 5⇐dialTelTimeout⇐60,默认45,单位:秒 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:internalCall |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.25. 发送按键
ClinkAgent.dtmf(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
digits |
String |
必选 |
按键值,数字类型的字符串,最大 20 位 |
direction |
String |
必选 |
发送按键方向,in:座席侧;out:客户侧,all:双方,consult:被咨询侧 |
duration |
Integer |
可选 |
按键持续毫秒数,取值 100-500 之间,默认值 100 |
gap |
Integer |
可选 |
按键之间间隔毫秒数,取值 250-1000 之间,默认值 250 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:dtmf |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.26. 修改绑定电话
ClinkAgent.changeBindTel(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
bindTel |
String |
必选 |
绑定号码 |
bindType |
Integer |
可选 |
号码类型,1:电话号码、2:IP话机号 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:changeBindTel |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.27. 延长整理时间 (方法已被禁用)
ClinkAgent.prolongWrapup(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
wrapupTime |
Integer |
必选 |
延长时间,取值30-600之间,单位:秒 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:prolongWrapup |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.2.28. 软电话接听
ClinkAgent.sipLink();
4.2.29. 软电话挂断
ClinkAgent.sipUnlink();
4.2.30. 座席状态
// ClinkAgent.status({});
ClinkAgent.status(params);
参数params:无
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:status |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
values |
Object |
返回数据对象 |
4.2.31. 企业置忙状态
ClinkAgent.enterprise_pause();
参数params:无
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:enterprise_pause |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
values |
Object |
返回数据对象 |
4.2.32. 座席同振
ClinkAgent.parallelRinging(params);
参数params:
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
parallelCnos |
String |
必选 |
同振座席,以`,`连接。 |
exten |
String |
必选 |
分机号 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:parallelRinging |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
values |
Object |
返回数据对象 |
4.2.33. 同振抢线
ClinkAgent.parallelPickup(params);
参数params:
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
initiateCno |
String |
必选 |
发起同振座席 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:parallelPickup |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
values |
Object |
返回数据对象 |
4.2.34. 同振拒接
ClinkAgent.parallelPickup(params);
参数params:
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
initiateCno |
String |
必选 |
发起同振座席 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:parallelPickup |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
values |
Object |
返回数据对象 |
4.2.35. Ping响应
// 无需主动调用
参数params:无
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:ping |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
values |
Object |
返回数据对象 |
latency |
Integer |
延迟时间,单位:毫秒。 latency ⇐ 100:好 100 < latency ⇐ 200:中 200 < latency ⇐ 500:差 500 < latency:极差 |
4.3. 班长席操作
班长席操作相关回调方法注册示例:
ClinkAgent.registerCallback(ClinkAgent.ResponseType.PAUSE_CLIENT, function(event) {}); // 置忙
ClinkAgent.registerCallback(ClinkAgent.ResponseType.UNPAUSE_CLIENT, function(event) {}); // 置闲
ClinkAgent.registerCallback(ClinkAgent.ResponseType.SPY, function(event) {}); // 监听
ClinkAgent.registerCallback(ClinkAgent.ResponseType.UNSPY, function(event) {}); // 取消监听
ClinkAgent.registerCallback(ClinkAgent.ResponseType.THREEWAY, function(event) {}); // 三方
ClinkAgent.registerCallback(ClinkAgent.ResponseType.UNTHREEWAY, function(event) {}); // 取消三方
ClinkAgent.registerCallback(ClinkAgent.ResponseType.WHISPER, function(event) {}); // 耳语
ClinkAgent.registerCallback(ClinkAgent.ResponseType.UNWHISPER, function(event) {}); // 取消耳语
ClinkAgent.registerCallback(ClinkAgent.ResponseType.BARGE, function(event) {}); // 强插
ClinkAgent.registerCallback(ClinkAgent.ResponseType.DISCONNECT, function(event) {}); // 强拆
ClinkAgent.registerCallback(ClinkAgent.ResponseType.PICKUP, function(event) {}); // 抢线
4.3.1. 置忙
ClinkAgent.pause_client(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
cno |
String |
必选 |
被置忙的座席编号 |
pauseDescription |
String |
可选 |
置忙描述 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:pause_client |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.3.2. 置闲
ClinkAgent.unpause_client(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
cno |
String |
必选 |
被置闲的座席编号 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:unpause_client |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.3.3. 监听
ClinkAgent.spy(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
cno |
String |
必选 |
被监听的座席编号 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:spy |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.3.4. 取消监听
ClinkAgent.unspy();
4.3.5. 三方
ClinkAgent.threeway(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
cno |
String |
必选 |
被三方的座席编号 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:threeway |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.3.6. 取消三方
ClinkAgent.unthreeway();
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
cno |
String |
必选 |
被三方的座席编号 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:threeway |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.3.7. 耳语
ClinkAgent.whisper(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
cno |
String |
必选 |
被耳语的座席编号 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:whisper |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.3.8. 取消耳语
ClinkAgent.unwhisper();
4.3.9. 强插
ClinkAgent.barge(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
cno |
String |
必选 |
被强插的座席编号 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:barge |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.3.10. 强拆
ClinkAgent.disconnect(params);
参数params
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
cno |
String |
必选 |
被强拆的座席编号 |
callback方法的参数
属性 | 类型 | 描述 |
---|---|---|
type |
String |
消息类型,始终为:response |
reqType |
String |
请求类型,始终为:disconnect |
code |
Integer |
响应结果,0:成功、-1:失败 |
errorCode |
Integer |
错误码 |
msg |
String |
响应消息 |
4.4. 事件说明
ClinkAgent.EVENT_TYPE对象封装了所有的事件类型,示例如下
ClinkAgent.setup({sipPhone: false, debug: false}, function () {
ClinkAgent.registerListener(ClinkAgent.EventType.STATUS, handleState); // 座席状态
ClinkAgent.registerListener(ClinkAgent.EventType.PREVIEW_OUTCALL_START, handleState); // 预览外呼呼叫客户
ClinkAgent.registerListener(ClinkAgent.EventType.PREVIEW_OUTCALL_RINGING, handleState); // 预览外呼客户响铃
ClinkAgent.registerListener(ClinkAgent.EventType.PREVIEW_OUTCALL_BRIDGE, handleState); // 预览外呼客户接听
ClinkAgent.registerListener(ClinkAgent.EventType.CONSULT_START, handleState); // 咨询开始
ClinkAgent.registerListener(ClinkAgent.EventType.CONSULT_LINK, handleState); // 咨询接听
ClinkAgent.registerListener(ClinkAgent.EventType.CONSULT_ERROR, handleState); // 咨询失败
ClinkAgent.registerListener(ClinkAgent.EventType.UNCONSULT, handleState); // 咨询接回/挂断/取消
ClinkAgent.registerListener(ClinkAgent.EventType.CONSULT_THREEWAY, handleState); // 咨询三方
ClinkAgent.registerListener(ClinkAgent.EventType.CONSULT_THREEWAY_UNLINK, handleState); // 咨询三方挂断
ClinkAgent.registerListener(ClinkAgent.EventType.CONSULT_TRANSFER, handleState); // 咨询转移
ClinkAgent.registerListener(ClinkAgent.EventType.RINGING, handleRinging); // 弹屏、响铃
ClinkAgent.registerListener(ClinkAgent.EventType.PREVIEW_OUTCALL, function (token) { }); // 预览外呼
ClinkAgent.registerListener(ClinkAgent.EventType.KICKOUT, function (token) { }); // 被踢下线
ClinkAgent.registerListener(ClinkAgent.EventType.BREAK_LINE, breakLineInfo); // 断线
ClinkAgent.registerListener(ClinkAgent.EventType.INTERACT_RETURN, function (token) { }); // 交互返回
ClinkAgent.registerListener(ClinkAgent.EventType.QUEUE_STATUS, function (token) { }); // 队列状态
ClinkAgent.registerListener(ClinkAgent.EventType.OB_REMEMBER_BUSY, function (token) { }); // 外呼主叫记忆未接
ClinkAgent.registerListener(ClinkAgent.EventType.NO_ANSWER, function (token) { }); // 未接来电
ClinkAgent.registerListener(ClinkAgent.EventType.UNREACHABLE_AUTO_PAUSE, function (token) { }); // 话机不可达置忙
ClinkAgent.registerListener(ClinkAgent.EventType.ORDER_CALL_BACK, function (token) { }); // 预约回呼
ClinkAgent.registerListener(ClinkAgent.EventType.PARALLEL_RINGING, function (token) { }); // 座席同振
ClinkAgent.registerListener(ClinkAgent.EventType.SIP_DISCONNECTED, function (token) { }); // 软电话断线
ClinkAgent.registerListener(ClinkAgent.EventType.SIP_CONNECTED, function (token) { }); // 软电话连接
ClinkAgent.registerListener(ClinkAgent.EventType.SIP_REGISTERED, function (token) { }); // 软电话注册
ClinkAgent.registerListener(ClinkAgent.EventType.JOIN_QUEUE, function (token) { }); // 客户进入队列
ClinkAgent.registerListener(ClinkAgent.EventType.QUEUE_CALL, function (token) { }); // 排队正在呼叫座席
ClinkAgent.registerListener(ClinkAgent.EventType.QUEUE_RNA, function (token) { }); // 排队呼叫座席未应答
ClinkAgent.registerListener(ClinkAgent.EventType.LEAVE_QUEUE, function (token) { }); // 客户离开队列
});
4.4.1. 座席状态
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
status |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作,座席状态动作对照表 |
loginStatus |
Integer |
登录状态 |
deviceStatus |
Integer |
设备状态 |
pauseDescription |
String |
loginStatus=2时,置忙描述 |
callType |
Integer |
deviceStatus=2,3或4时,通话类型 |
4.4.2. 预览外呼呼叫客户
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
previewOutcallStart |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
customerNumberType |
Integer |
客户号码类型,1:固话 、2:手机 |
customerAreaCode |
String |
客户号码区号 |
calleeNumber |
String |
被叫号码 |
customerNumber |
String |
客户号码 |
callType |
Integer |
通话类型 |
4.4.3. 预览外呼客户响铃
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
previewOutcallRinging |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
4.4.4. 预览外呼客户接听
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
previewOutcallRinging |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
customerNumberType |
Integer |
客户号码类型,1:固话 、2:手机 |
customerAreaCode |
String |
客户号码区号 |
calleeNumber |
String |
被叫号码 |
customerNumber |
String |
客户号码 |
callType |
Integer |
通话类型 |
4.4.5. 内部呼叫开始
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
internalCallStart |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
4.4.6. 内部呼叫接听
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
internalCallBridge |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
4.4.7. 咨询开始
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
consultStart |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
channel |
String |
通道名称 |
4.4.8. 咨询接听
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
consultStart |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
channel |
String |
通道名称 |
objectType |
Integer |
咨询类型,0:电话号码、1:座席号、2:IP话机号 |
consultObject |
String |
咨询对象 |
4.4.9. 咨询接回/挂断/取消
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
unconsult |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
objectType |
Integer |
咨询类型,0:电话号码、1:座席号、2:IP话机号 |
consultObject |
String |
咨询对象 |
4.4.10. 咨询失败
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
consultError |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
4.4.11. 咨询三方
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
consultThreeway |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
4.4.12. 咨询三方挂断
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
consultThreewayUnlink |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
4.4.13. 咨询转移
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
consultThreewayUnlink |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
objectType |
Integer |
咨询类型,0:电话号码、1:座席号、2:IP话机号 |
consultObject |
String |
咨询对象 |
4.4.14. 弹屏
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
ringing |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
座席对应状态 |
action |
String |
状态对应动作 |
customerNumberType |
Integer |
客户号码类型,1:固话 、2:手机 |
customerAreaCode |
String |
客户号码区号 |
calleeNumber |
String |
被叫号码 |
customerNumber |
String |
客户号码 |
callType |
Integer |
通话类型 |
uniqueId |
String |
通话唯一标识 |
mainUniqueId |
String |
主通话唯一标识 |
4.4.15. 预览外呼结果
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
previewOutcall |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
result |
String |
结果,success接通成功;error失败,如外呼取消等 |
4.4.16. 被踢下线
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
kickout |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
4.4.17. 断线
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
breakLine |
enterpriseId |
Integer |
企业id |
cno |
String |
座席工号 |
code |
String |
重连状态,0:成功、1:失败 |
randoms |
Integer |
随机数,重连间隔 |
attempts |
Integer |
重连次数 |
4.4.18. 客户进入队列
|
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
joinQueue |
enterpriseId |
Integer |
企业id |
qno |
String |
队列号 |
customerNumber |
String |
客户号码 |
customerNumberEncrypt |
String |
客户加密号码 |
uniqueId |
String |
通话唯一标识 |
queueEntryCount |
Integer |
队列内客户数 |
queueEntryNPCount |
Integer |
队列内排队数 |
4.4.19. 排队正在呼叫座席
|
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
queueCall |
enterpriseId |
Integer |
企业id |
qno |
String |
队列号 |
cno |
String |
座席工号 |
uniqueId |
String |
通话唯一标识 |
queueEntryCount |
Integer |
队列内客户数 |
queueEntryNPCount |
Integer |
队列内排队数 |
4.4.20. 排队呼叫座席未应答
|
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
queueRna |
enterpriseId |
Integer |
企业id |
qno |
String |
队列号 |
uniqueId |
String |
通话唯一标识 |
queueEntryCount |
Integer |
队列内客户数 |
queueEntryNPCount |
Integer |
队列内排队数 |
4.4.21. 客户离开队列
|
参数 | 类型 | 描述 |
---|---|---|
type |
String |
event |
event |
String |
leaveQueue |
enterpriseId |
Integer |
企业id |
qno |
String |
队列号 |
uniqueId |
String |
通话唯一标识 |
queueEntryCount |
Integer |
队列内客户数 |
queueEntryNPCount |
Integer |
队列内排队数 |
4.4.22. 座席状态动作对照表
event | code | action | 描述 |
---|---|---|---|
status |
OFFLINE |
offline |
离线 |
status |
IDLE |
- |
空闲 |
status |
PAUSE |
pause |
忙碌 |
status |
CALLING |
calling |
呼叫中 |
status |
RINGING |
ringingIb |
呼入座席响铃 |
status |
RINGING |
ringingAgentOb |
外呼座席响铃 |
status |
RINGING |
ringingConsult |
咨询响铃 |
status |
RINGING |
ringingTransfer |
转移响铃 |
status |
BUSY |
busyAgentOb |
外呼座席接通,呼叫客户中 |
previewOutcallRinging |
BUSY |
ringingCustomerOb |
外呼客户响铃 |
previewOutcallBridge |
BUSY |
busyOb |
外呼客户接听,双方通话 |
status |
BUSY |
busyIb |
呼入接听 |
status |
BUSY |
hold |
保持开始 |
status |
BUSY |
unhold |
保持取消 |
consultStart |
BUSY |
consultStart |
咨询开始 |
consultLink |
BUSY |
consultLink |
咨询成功 |
unconsult |
BUSY |
unconsult |
咨询接回 |
consultThreeway |
BUSY |
consultThreeway |
咨询三方 |
consultError |
BUSY |
consultError |
咨询失败 |
consultTransfer |
BUSY |
consultTransfer |
咨询转移 |
status |
BUSY |
busyConsult |
座席被咨询 |
status |
BUSY |
busyTransfer |
座席被转移 |
status |
WRAPUP |
wrapup |
整理开始 |
ringing |
- |
- |
设备响铃 |
breakLine |
- |
- |
断线 |
kickout |
- |
- |
被踢下线 |
5. 桌面版
5.1. 快速集成
安装AICC软电话桌面端,下载链接如下
5.2. 座席操作
5.2.1. 登录
<a href="tinet://startapp/here?"+path >登录</a>
path参数说明:
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
identifier |
String |
必选 |
企业编号 |
cno |
String |
必选 |
座席工号 |
password |
String |
必选 |
座席密码 |
bindTel |
String |
必选 |
绑定电话 |
bindType |
Integer |
必选 |
绑定类型,1:普通电话、2:IP话机、3:软电话 |
initStatus |
Integer |
必选 |
登录状态,1:空闲、2:忙碌 |
pauseDescription |
String |
可选 |
置忙描述 |
chatLoginStatus |
Integer |
可选 |
1:空闲 2:置忙,全渠道、在线类型座席必选 |
chatPauseDescription |
String |
可选 |
置忙登录时的置忙状态 |
chatLimitNumber |
Integer |
可选 |
可接待会话数,指定则更新当前设置值 |
platform |
Integer |
可选 |
指定平台,1:北京平台、2:上海平台、3:新加坡平台;不传默认北京平台 |
handleType |
String |
必选 |
'login' 执行登录事件 |
5.2.2. token登录
<a href="tinet://startapp/here?"+path >登录</a>
path参数说明:
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
identifier |
String |
必选 |
企业编号 |
agentToken |
String |
必选 |
token |
agentTokenLogin |
Integer |
必选 |
登录类型 值为:1 |
bindTel |
String |
必选 |
绑定电话 |
bindType |
Integer |
必选 |
绑定类型,1:普通电话、2:IP话机、3:软电话 |
initStatus |
Integer |
必选 |
登录状态,1:空闲、2:忙碌 |
pauseDescription |
String |
可选 |
置忙描述 |
chatLoginStatus |
Integer |
可选 |
1:空闲 2:置忙,全渠道、在线类型座席必选 |
chatPauseDescription |
String |
可选 |
置忙登录时的置忙状态 |
chatLimitNumber |
Integer |
可选 |
可接待会话数,指定则更新当前设置值 |
platform |
Integer |
可选 |
指定平台,1:北京平台、2:上海平台、3:新加坡平台;不传默认北京平台 |
handleType |
String |
必选 |
'login' 执行登录事件 |
5.2.3. 预览外呼
<a href="tinet://startapp/here?"+path >登录</a>
path参数说明:
参数 | 类型 | 可选 | 描述 |
---|---|---|---|
tel |
String |
必选 |
外呼号码 , 当开启号码隐藏设置时,可从弹屏事件中获取customerNumberKey的值,进行外呼 |
timeout |
Integer |
可选 |
呼叫座席超时时间,取值范围 5⇐timeout⇐60,默认30单位:秒 |
dialTelTimeout |
Integer |
可选 |
取值范围 5⇐dialTelTimeout⇐60,默认45,单位:秒 |
obClid |
String |
可选 |
客户侧外显号码 |
obClidGroup |
String |
可选 |
客户侧外显号码组,使用obClidGroup需要账号支持按标识路由,使用此参数是obClid参数无效 (字段废弃) |
obClidGroupName |
String |
可选 |
客户侧外显号码组,使用obClidGroupName需要账号支持按标识路由,使用此参数时obClid参数无效 |
userField |
String |
可选 |
用户自定义变量 |
handleType |
String |
必选 |
'previewOutcall' 执行预览外呼事件 |