2. 使用说明

2.1 签入/签出功能

2.1.1 工号密码方式签入

接口名称:
CallCenter.opLogin(operator,pwd,companyid,logintype,auto,logingroups,url[,client_type,server_type,sip_id])
功能:坐席上班(登录),建立与通话服务的连接
参数:
参数名类型描述
operator字符串必选,坐席工号
pwd字符串必选,帐号密码(md5加密)
companyid数字必选,企业编号
logintype字符串必选,登录方式,
‘0’手机
‘1’硬话机
‘2’软话机(webcall&webrtc)
auto数字必选,是否智能外呼,0否,1是
logingroups字符串可选,系统推荐采用空字符串
 
坐席所在技能组的技能组id,多个以英文逗号隔开,坐席将登录这些技能组,直到退出。并且将设置最后一个技能组id为任务技能组,直到退出。
 
如果传入空字符串,则系统默认登录全部坐席所在技能组,并且随时根据当前系统任务,来决定坐席的预测任务技能组,预测技能组会根据后续任务状态的变化而变化
url字符串必选,登录使用的url
client_type数字2020.1.4.1以下版本
可选,登录方式为软话机时,客户端类型 1 webcall(默认),2 BrowserSDK SIP话机或手机登录可不传
 
2020.1.4.1以上版本
必选,登录方式为软话机时,客户端类型 1 webcall,2webrtc
注:webRTC方式登录需要添加语音标签
<audio id="localVideo" autoplay></audio>
<audio id="remoteVideo" autoplay></audio>
<audio id="ringingVideo" loop src="./plugins/beep.wav"></audio>
<audio id="ringingBackVideo" src="./plugins/CalledHangup.wav"></audio>
server_type数字可选,服务类型:1默认,CCS;2 CTI
sip_id数字可选,登录时使用的SIP话机号码
返回值:无,需要监听 logon 事件获取响应
事件参数名参数类型参数说明
typestring固定值 logon
systemtimestring系统当前时间 时间格式 yyyy-MM-dd HH:mm:ss
statusint状态码
0 登录成功
1 参数没有传,登录受到licence限制,无法登录,websocket链接断开
2 坐席账号因在其它设备登录被挤下线时,当前设备会收到 logon 事件,状态码为2
3 坐席被班长强制签出时,坐席会收到 logon 事件,状态码为3
reasonstring原因
示例:
  • // 监听事件获取服务响应
  • CallCenter.addEventListener("logon",function(json){
  •            // json 响应数据
  • // {"reason":"上班成功","type":"logon","systemtime":"2019-07-12 09:50:40","status":0}
  • });
  • // 监听事件获取初始化的通话信息
  • CallCenter.addEventListener("callinfo",function(json){
  •           // json 响应数据
  •  //{"totalservicetime":0,"cmdtype":1,"aftertime_today":0,"totaltimes":0,"totaltimes_today":0,"busytime_today":0,"type":"callinfo","avgtimes":0}
  • });
  • // webcall连接失败监听
  • CallCenter.addEventListener("webcallError",function(){});
  • // 登录有可能失败,登录失败可以通过监听事件来处理相应业务
  • CallCenter.opLogin_callback=function(json){
  •            // json 响应数据,json.code 为响应码(详见1.3响应码)
  • };
  • // 提供工号和密码进行登录
  • CallCenter.opLogin('8000','96e79218965eb72c92a549dd5a330112',1,1,0,'','http://demo.acloudcc.com:8898',1,1, '')
注意:
登录类型为2(WebCall软话机)时,必须安装WebCall.x.x.x.x.exe(支持所有可用WebSocket的浏览器),IE8、Firefox51及以下,Chrome41及以下,需要在安装WebCall时需要勾选“支持IE8浏览器”。

2.1.2 logintype登录方式时的差异

2.1.3 通话的流程都需要经过“摘机”

“摘机”的过程实质是与“软电话进行通信的过程”,整个摘机的过程如下
 
 

2.1.4 SIP方式登录

接口名称:CallCenter.sipLogin(sip_id,sip_pwd,companyid,logintype,auto,logingroups,url[,client_type,server_type])
功能:坐席上班(登录),建立与通话服务的连接
参数:
参数名类型描述
sip_id字符串SIP账号
sip_pwd字符串SIP密码
companyid数字企业id
logintype数字登录方式,0手机1硬话机2软话机
auto数字是否智能外呼,0否,1是
logingroups字符串可选,当启用智能外呼,可传入该技能组编号
url字符串登录使用的url
client_type数字可选,登录方式为软化机时,客户端类型1 webcall(默认),2 ocx
server_type数字可选,登录类型1(默认,ccs),2 CTI版本
返回值:无,需要监听 logon 事件获取响应。(同1.1 工号密码方式登录)
登录成功时,还可以监听 callinfo 事件获取初始化的通话信息(同1.1 工号密码方式登录)
  • 示例:
  • // 监听事件获取登录响应
  • CallCenter.addEventListener("logon",function(json){
  •  // json 响应数据
  •  // {"reason":"上班成功","type":"logon","systemtime":"2019-07-12 09:50:40","status":0}
  • });
  •  // 监听事件获取初始化的通话信息
  • CallCenter.addEventListener("callinfo",function(json){
  •  // json 响应数据
  •  // {"totalservicetime":0,"cmdtype":1,"aftertime_today":0,"totaltimes":0,"totaltimes_today":0,"busytime_today":0,"type":"callinfo","avgtimes":0}
  • });
  •  
  • // 登录有可能失败,登录失败可以通过监听事件来处理相应业务
  • CallCenter.sipLogin_callback=function(json){
  •  // json 响应数据,json.code 为响应码(详见1.3响应码)
  • };
  •  // 提供SIP帐号和密码进行登录
  • CallCenter.sipLogin("8715457046540003","f47f5b2g",1,2,0,'','http://demo.acloudcc.com:8898')
注意:

2.1.5 下班/退出

接口名称:CallCenter.logout()
功能:执行登出动作
参数:
返回值:无,需要监听logout时间获取响应
事件参数名参数类型参数说明是否必填
reasonstring原因必填
statusint状态码 0 正常 非0 错误必填
systemtimestring系统当前时间 时间格式 yyyy-MM-dd HH:mm:ss必填
typestring固定值 logout必填
示例:
  • // 监听事件获取下班响应
  • CallCenter.addEventListener("logout",function(json){
  •  // json 响应数据
  • });
  • // 坐席下班
  • CallCenter.logout();
注意:无 

2.1.6 注册登录失败事件回调

接口名称:opLogin_callback
功能:无 
参数:
返回值:
示例:
注意:无 
说明:opLogin_callback事件回调会接受一个参数,为登录失败返回的数据。json.code为登录失败的状态码,不同的状态码代表不同的失败原因。详情如下:
0000正确
0003坐席不存在
0009验证非法
1001用户名格式错误
1002没有绑定SIP话机
1003没有绑定电话号码
1004用户名或密码错误
1005帐号被禁用
1007帐号不存在
1008没有绑定技能组
3001必填参数为空
9001任务ID为空
9002任务不存在 
9003任务状态有误
9005SIP话机不存在 
9012坐席所在的公司不存在
9013坐席所在企业被禁用
9014SIP话机被1001@test坐席签入,联系管理员
9015输入的字符串不是纯数字
9016当前号码已被工号1001@test坐席签入,请联系管理员
9017存在特殊字符,请检查
示例CallCenter.opLogin_callback = function(json){
 console.log(json.code);  // 状态码
 console.log(json.info); // 提示信息
}

2.1.7 注册登录失败事件回调

接口名称:sipLogin_callback
功能:无 
参数:
返回值:
示例:
注意:无 
说明:sipLogin_callback事件回调会接受一个参数,为登录失败返回的数据。json.code为登录失败的状态码,不同的状态码代表不同的失败原因。详情如下:
0000正确
0009验证非法
1001用户名格式错误
1002没有绑定SIP话机
1003没有绑定电话号码
1004用户名或密码错误
1005帐号被禁用
1007帐号不存在
1008没有绑定技能组
3001必填参数为空
9001任务ID为空
9002任务不存在 
9003任务状态有误
9005SIP话机不存在
示例
  • CallCenter.sipLogin_callback = function(json){
  •  console.log(json);
  • }

2.2 基本通话功能

2.2.1 示闲

接口名称:CallCenter.free()
功能:把座席设置为空闲,此时来电可以被分配到该座席
参数:
返回值:无,需要监听 agentidle 事件来获取结果。
事件参数名参数类型参数说明是否必填
reasonstring原因必填
statusint状态码 0 正常 非0 错误必填
typestring固定值 agentidle必填
示例:
  • // 监听事件获取示闲响应
  • CallCenter.addEventListener("agentidle",function(json){
  •  // json 响应数据
  •  // {"reason":"示闲成功.","type":"agentidle","status":0}
  • });
  • // 请求示闲
  • CallCenter. free()
注意:
坐席在签入、话后,示忙状态下,可以调用示闲接口。
坐席长签预测外呼,话机未接通的情况下,是不允许示闲的

2.2.2 示忙

接口名称:CallCenter.busy([typeId])
功能:把座席设置为繁忙,此时来电无法被分配到该座席
参数:
参数名类型说明
TypeIdint可选,示忙类型,默认值为0,typeId在Admin自定义非空闲类型配置。
返回值:无,需要监听 agentbusy 事件来获取结果。
事件参数名参数类型参数说明
typestring固定值 agentbusy
statusint状态码 0 正常 非0 错误
reasonstring原因
agentkeystring当前坐席唯一标识 工号@企业缩写
示例
  • // 监听事件获取示忙响应
  • CallCenter.addEventListener("agentbusy",function(json){
  • // josn 响应数据
  • });
  • // 请求示忙
  • CallCenter. busy(12)
注意:签入座席才能发起示忙操作。

2.2.3 外呼

接口名称:  CallCenter.callout(obj[,event,preview,transmission_number, caseid,userData])
功能:进行外呼,所传参数在发送到服务器时,SDK会过滤非数字的特殊字符(@除外)
参数:
参数名类型描述
obj字符串呼叫外线号码时为呼叫号码字符串
呼叫本企业座席时,格式:工号@企业简称
INPUT元素传入INPUT元素时,第二个参数event传入一个键盘事件对象。
如果在此元素点击的按键为回车(Enter),将使用此元素的value进行外呼。
eventKeyboardEvent可选。
第一个参数传字符串时该参数传空(null)
第一个参数传入INPUT元素时,判断按键是否为在dom元素敲了回车,回车时会执行外呼动作。
previewstring手拨外呼时传空字符串(””)。
预览外呼时传JSON字符串
{
 “taskid”:123, // 任务ID
 “contactid”:23, // 联系人ID
 “fieldid”:12, // 号码类型ID
 “p_uuid”:23, // 联系人唯一标识,对应uuid1
 “pds_station_no”:23, // PDS站点号
 “uuid”:’’, // 电话号码唯一标识,业务系统传空
 “call_round”:1 // 呼叫轮次
}
transmission_numberstring可选,无值时传null或空字符串(""),如果允许透传,使用此参数传入透传号码
caseidstring可选,无值时传null,该参数依赖于CCS版本支持
userDataobject数据
{
userData:{}, // 定义随路数据
uuiData:””, // 定义UUI数据
autoAnswer:"intercom" // 亿联话机自动摘机
}
返回值:无,需要监听 makecall 事件获取响应。
事件参数名参数类型参数说明是否必填
typestring固定值 makecall 必填
statusint状态码 0 正常 非0 错误必填
reasonstring原因必填
callidstring发起呼叫成功,产生的通话唯一标识选填
示例:
呼叫外线示例:
  • // 监听事件获取响应
  • CallCenter.addEventListener("makecall",function(json){
  •  // json 响应数据
  • // {"callid":"24542515792953347","reason":"Success",
  • "type":"makecall","status":0}
  • });
  •  
  • // 监听外呼坐席振铃事件
  • CallCenter.addEventListener("outringing",function(json){
  •  // json 响应数据
  • // {"callid":"24542515792953347","userdata":"*","caller":"*",
  • "origcaller":"8715628449220015","called":"*","nowgroupid":802,
  • "type":"outringing","followData":"*","timestamp":1562897471}
  • });
  •  
  • // 监听外呼坐席摘机事件
  • CallCenter.addEventListener("outcall",function(json){
  •  // json 响应数据
  •  // {"callid":"24542515792953347","number":"*","type":"outcall"}
  • });
  •  
  • // 监听外呼用户振铃事件
  • CallCenter.addEventListener("calledringing",function(json){
  •  // json 响应数据
  • // {"callid":"24542515792953347","userdata":"*","caller":"*",
  • "origcaller":"8715628449220015","called":"*","nowgroupid":802,
  • "type":"calledringing","followData":"*","timestamp":1562897471}
  • });
  •  
  • // 监听外呼用户摘机事件
  • CallCenter.addEventListener("answer",function(json){
  •  // json 响应数据
  •  // {"callid":"24542515792953347","caller":"*","type":"answer","called":"*"}
  • });
  •  
  • // 发起外呼
  • CallCenter.callout("13685647542",null,"",null,null,{
  •  userData:{caller:"854658754",called:"125468597"},
  • uuiData:"1542587745887744",
  • autoAnswer:"intercom" // 亿联话机自动摘机
  • });
  •  
  • // 空闲时发起外呼
  • CallCenter.addEventListener("agentidle",function(json){
  •  CallCenter.callout("13385768675",null,"",null,null,{
  •  userData:{
  •  caller:"854658754",
  •  called:"125468597"
  •  },
  •  uuiData:"1542587745887744",
  •  autoAnswer:"intercom" // 亿联话机自动摘机
  •  });
  • });
 
呼叫坐席示例:
  • // 发起呼叫坐席监听呼叫坐席失败事件
  • CallCenter.addEventListener("innercallout",function(json){
  •  // json 呼叫坐席失败响应数据
  • });
  •  
  • // 发起呼叫坐席监听外呼事件获取响应
  • CallCenter.addEventListener("makecall",function(json){
  •  // json 响应数据
  • });
  •  
  • // 发起呼叫坐席监听外呼坐席振铃事件
  • CallCenter.addEventListener("outringing",function(json){
  •  // json 响应数据
  • // {"callid":"24542515792953347","userdata":"*","caller":"*",
  • //"origcaller":"8715628449220015","called":"*","nowgroupid":802,"type":"outringing",
  • //"followData":"*","timestamp":1562897471}
  • });
  •  
  • // 发起呼叫坐席监听外呼坐席摘机事件
  • CallCenter.addEventListener("outcall",function(json){
  •  // json 响应数据
  •  // {"callid":"24542515792953347","number":"*","type":"outcall"}
  • });
  •  
  • // 发起呼叫坐席监听接听呼叫坐席振铃事件
  • CallCenter.addEventListener("calledringing",function(json){
  •  // json 响应数据
  • // {"callid":"24542515792953347","userdata":"*","caller":"*",
  • //"origcaller":"8715628449220015","called":"*","nowgroupid":802,
  • //"type":"calledringing","followData":"*","timestamp":1562897471}
  • });
  •  
  • // 发起呼叫坐席监听接听呼叫坐席摘机事件
  • CallCenter.addEventListener("answer",function(json){
  •  // json 响应数据
  •  // {"callid":"24542515792953347","caller":"*","type":"answer","called":"*"}
  • });
  •  
  • // 接听呼叫坐席监听振铃事件
  • CallCenter.addEventListener("innerringing",function(json){
  •  // json 响应数据
  • // {"callid":"24542515792953348","userdata":"*","caller":"*",
  • //"origcaller":"8715628449220015","called":"*","nowgroupid":802,"type":"innerringing",
  • //"followData":"*","timestamp":1562897911}
  • });
  •  
  • // 接听呼叫坐席监听摘机事件
  • CallCenter.addEventListener("innercall",function(json){
  •  // json 响应数据
  • // {"callid":"24542515792953348","userdata":"*","caller":"*",
  • //"origcaller":"8715628449220015","called":"*","nowgroupid":802,"type":"innercall",
  • //"followData":"*","timestamp":1562897911}
  • });
  •  
  • // 空闲时发起外呼
  • CallCenter.addEventListener("agentidle",function(json){
  •  // 监听事件获取响应
  •  CallCenter.addEventListener("idleagents",function(json){
  •  // json 为返回的数据
  •  // {"type":"idleagents","data":[{"groupname":"测试技能组","groupid":802,
  • "agents":["1001@test","1002@test"]}],"cmdtype":1}
  •  // 迭代获取到的坐席,视图事件触发时调用外呼接口
  •  CallCenter.callout(json.data[i].agents[j],null,"",null,null,{});
  •  }); 
  • });
  •  
  • // 获取空闲坐席
  • CallCenter.idleagents();
 
注意: 
· preview 参数仅在预览外呼时传,传JSON字符串格式,非预览外呼时传空字符串
· transmission_number 参数可用于在发起呼叫时改变主叫外显号码
· caseid 参数为定制版参数,推荐传null
· 坐席处于空闲或忙碌状态(启用忙碌外呼)才能调用外呼接口,2.1.1.24_42版本开始,允许坐席签入、空闲、忙碌、话后调用外呼接口
· 如果签入类型(loginType)为手机(0),外呼接口不要传参数{autoAnswer:”intercom”}

2.2.4 接听

接口名称:acceptcall()
功能:收到事件呼入、呼出、咨询振铃、转接振铃、监听、拦截、强插,并且使用软话机、Yealink硬话机或CTI方式时,可以调用接听
参数:
返回值:
示例:CallCenter. acceptcall()
注意:集成SDK时,在outringing、inringing、consultinringing、transferinringing、monitorringing、interceptaltering、agentinsertringing、innerringing 事件中可调用该接口
返回值:

2.2.5 保持

接口名称:CallCenter.mute()
功能:通话中使双方无法听到对方的声音
参数:
返回值:无,需要监听 mute 事件获取响应。
事件参数名参数类型参数说明
typestring固定值 mute
statusint状态码 0 成功 非0失败
reasonstirng原因
dirint呼叫方向 0呼入 1呼出
示例:
  • // 监听事件获取保持响应
  • CallCenter.addEventListener("mute",function(json){
  •  // json 响应数据
  • });
  • // 请求保持
  • CallCenter.mute()
注意:保持必须在通话中操作

2.2.6 取消保持

接口名称:CallCenter.unmute()
功能:恢复通话
参数:
返回值:无,需要监听 unmute 事件获取响应。
事件参数名参数类型参数说明
typestring固定值 unmute
statusint状态码 0 成功 非0失败
reasonstirng原因
dirint呼叫方向 0呼入 1呼出
示例:
  • // 监听事件获取取消保持响应
  • CallCenter.addEventListener("unmute",function(json){
  •  // json 响应数据
  • });
  • // 请求取消保持
  • CallCenter.unmute()
注意:取消保持必须在保持状态下操作
 

2.2.7 静音

接口名称:CallCenter.callmute()
功能:静音当前坐席
参数:
返回值:无,需要监听 callmute事件获取响应。
事件参数名参数类型参数说明
typestring固定值 callmute
statusint状态码 0 成功 非0失败
reasonstirng原因
dirint呼叫方向 0呼入 1呼出
示例:
  • // 监听事件获取取消保持响应
  • CallCenter.addEventListener("callmute",function(json){
  •  // json 响应数据
  • });
  • // 请求取消保持
  • CallCenter.callmute()
注意:保持必须在通话中操作

2.2.8 取消静音

接口名称:CallCenter.callunmute()
功能:恢复通话
参数:
返回值:无,需要监听 callunmute事件获取响应。
事件参数名参数类型参数说明
typestring固定值 callunmute
statusint状态码 0 成功 非0失败
reasonstirng原因
dirint呼叫方向 0呼入 1呼出
示例:
  • // 监听事件获取取消保持响应
  • CallCenter.addEventListener("callunmute",function(json){
  •  // json 响应数据
  • });
  • // 请求取消保持
  • CallCenter.callunmute()
注意:取消静音必须在静音状态下操作

2.2.9 按键

接口名称:CallCenter.sendDTMF(key[,role])
功能:按键
参数
参数名类型描述
keyString可传值为”0”~”9”、”*”、”#”
roleInt可选,不传默认为0
0 用户侧DTMF
1 第三方DTMF
返回值:无,可以监听 senddtmf 事件获取发送DTMF结果。
事件参数名参数类型参数说明
typestring固定值 senddtmf
cmdtypeInt固定值 1
statusint状态码 0 成功 非0失败
reasonstirng原因
 注意:仅在通话中可调用
不能一次发送多个按键,调用一次接口只能发送一个按键
示例:
  • // 正确的按键
  • CallCenter.sendDTMF("1");
  • CallCenter.sendDTMF("*");
  • CallCenter.sendDTMF("#");
  • // 错误的按键
  • CallCenter.sendDTMF("10");
  • CallCenter.sendDTMF("05");
  • CallCenter.sendDTMF("4#");

2.2.10 挂机

接口名称:CallCenter.cancelmakecall()
功能:取消当前持有的呼叫
参数:
返回值:无,需要监听cancelmakecall、after事件接收响应
挂机请求失败时,可以监听cancelmakecall 事件处理相应业务逻辑。cancelmakecall事件响应数据
事件参数名参数类型参数说明
typestring固定值 cancelmakecall
statusint状态码 0 成功 非0失败
reasonstirng原因
挂机成功时,可以监听after事件处理相应业务逻辑。after事件响应数据
事件参数名参数类型参数说明
typestring固定值 after
timestampstring通话创建时间unix时间戳
recordcodestring录音文件码
operator_namestring坐席姓名
operator_idint服务坐席工号
hangupdirint挂机方向 0平台挂机 1对端挂机
medianoint录音文件站点号,用于拼接录音下载地址
filenamestring录音文件全路径,用于拼接录音下载地址
end_timestirng这一路通话结束时间 yyyy-MM-dd HH:mm:ss
durationint通话时长s,坐席先挂机和用户先挂机会有不同,精确计算坐席与客户通话时长使用duration = end_time - answer_time。
dirint呼叫方向 0呼入 1呼出
devicetypeint设备类型
devicestring当前设备唯一标识
custId.uuid2 stringCrm_uuid2(Admin的uuid2)
custId.uuid1stringCrm_uuid  (Admin的uuid)
custId.uuidstring联系人唯一标识
custId.taskIdint任务id
custId.stationstringpds站点号
custId.relationshipstring和主号码关系
custId.phonestring呼叫号码
custId.namestring联系人名称
custId.call_phone_nameString号码字段名称
custId.cidint联系人id
custId.callRoundint呼叫轮次
custId.callColumnint号码归属列
custId.call_countint小结呼叫次数
custId.calltypeInt1预览,2预测
custId.afterTimestring话后时间
custIdjson预测外呼任务数据
causeMsgstring挂机原因描述(部分版本支持)
causeint挂机原因
callidstring通话唯一标识
callerstring主叫
calledstring被叫
begin_timestring这一路通话开始时间 yyyy-MM-dd HH:mm:ss
autoboolean是否为预测外呼
answer_timestirng这一路通话应答时间 yyyy-MM-dd HH:mm:ss
altering_timestring这一路通话振铃时间 yyyy-MM-dd HH:mm:ss
rstimestring这一路通话录音开始时间 yyyy-MM-dd HH:mm:ss
callerAreajson主叫号码归属地
{
 “provice”:””, // 省
“ city”:”” // 市
}
calledAreajson被叫号码归属地
{
 “provice”:””, // 省
“ city”:”” // 市
}
agentFileNamestring取坐席侧的录音
挂机成功时,还可以监听callinfo事件统计的通话信息:
事件参数名参数类型参数说明
typestring固定值 callinfo
totalservicetimeint本次登录总服务时长
totaltimesint本次登录总服务次数
avgtimesint本次登录平均服务时长
cmdtypeint固定值 1 表示电话条上时间不重新计时
totaltimes_todayint今天总服务次数
busytime_todayint今天忙碌时长
aftertime_todayint今天话后时长
示例:
  • // 监听事件获取挂机响应
  • CallCenter.addEventListener("cancelmakecall",function(json){
  •  // json 响应数据
  •  // {"reason":"挂机成功","type":"cancelmakecall","status":0}
  • });
  •  // 监听事件获取通话信息
  • CallCenter.addEventListener("callinfo",function(json){
  •  // json 响应数据
  •  // {"totalservicetime":127,"cmdtype":1,"aftertime_today":0,"totaltimes":1,"totaltimes_today":1,"busytime_today":33,"type":"callinfo","avgtimes":127}
  • });
  •  // 系统挂机响应
  • CallCenter.addEventListener("after",function(json){
  •  // json 响应数据
  •  // json.cause 挂机原因码,详见【附1:挂机原因说明】
  •  /* {
  •  "callid":"24542515792953347","answer_time":"2019-07-12 10:11:13","auto":false,"called":"*",
  •  "operator_id":"1000","altering_time":"2019-07-12 10:11:12","end_time":"2019-07-12 10:13:20",
  •  "begin_time":"2019-07-12 10:11:11","cause":0,"recordcode":"*","type":"after","dir":1,"devicetype":"1",
  •  "duration":127,"operator_name":"1000","caller":"*","filename":"*","hangupdir":0,"mediano":1,
  •  "device":"24543615304581125","timestamp":1562897471,"causeMsg":"呼叫正常结束"
  •  }*/
  • });
  •  // 请求挂机
  • CallCenter.cancelmakecall()
注意:
² 进入通话过程才能操作挂机接口,如:振铃、通话中等。
² 通过mediano、filename可以按规则(详见附录11.2)拼接录音文件地址,下载录音文件
² callerArea、calledArea、rstime在CCSDK2.1.1.24_42以上版本支持
附1:挂机原因说明
CauseCodeDescriptionCauseCodeDescriptionCauseCodeDescription
0呼叫正常结束11自动应答机接听21黑名单号码
1关机12主叫用户早释22用户不在
2停机13系统异常23用户未登录
3暂时无法接通14系统路由错误24用户不在服务区
4用户忙15应用服务器无应答25认证失败
5久叫不应,
无人接听
16用户未注册26应答但无声音
6呼叫限制17用户无响应30正在通话
7网络忙18空号31来电提醒
8用户拒接19一般错误32等待提示:(请不要挂机)
9呼叫被转移20目的号码错误33无应答
10传真机接听  35不在服务区
 

2.3 班长座席功能

2.3.1 强拆

接口名称:CallCenter.agentbreak(agentoperatorid)
功能:班长功能,强制拆除指定座席的当前通话,使座席进入话后状态
参数:
参数名类型描述
agentoperatorid字符串格式:工号
返回值:无,需监听agentbreak事件获取响应
属性类型说明
statusint状态 0失败 1成功 
reasonstring描述信息
typeString固定值agentbreak
monitorint0被监控座席1发起监控座席
agentkeystringmonitor是班长,则返回班长的工号@企业缩写 当monitor是座席,则返回的是座席的工号@企业缩写
示例:
  • // 监听事件获取强拆响应
  • CallCenter.addEventListener("agentbreak",function(json){
  •  // json 响应数据
  • });
  • // 请求强拆
  • CallCenter.agentbreak("1001");
注意:
仅班长坐席有效
班长坐席只有在坐席通话时才能调用此接口拆除通话

2.3.2 强插

接口名称:agentinsert(agentoperatorid)
功能:班长功能,强制加入到指定座席的通话中
参数:
参数名类型描述
agentoperatorid字符串班长座席工号
返回值:无,需要监听agentinsert事件获取响应
属性类型说明
typestring固定值agentinsert
statusint状态码0成功 非0失败
reasonstring原因
monitorint0被监控座席1发起监控座席
班长强插成功,会收到强插振铃 agentinsertringing、强插接听 agentinsertincall  事件
事件参数名参数类型参数说明
typestring固定值agentinsert
callidstring通话唯一标识
timestampstring通话创建unix时间戳
callerstring主叫
origcallerstring原主叫
calledstring被叫
nowgroupidint当前技能组id
userdatajson平台随入数据
followDatajson用户随入数据
uuiDatastringuser to user data
 
事件参数名参数类型参数说明
uuiDatastringuser to user data
userdatajson平台随入数据
typestring固定值 agentinsertincall 
timestampstring通话创建unix时间戳
origcallerstring原主叫
nowgroupidint当前技能组id
followDatajson用户随入数据
callidstring通话唯一标识
callerstring主叫
calledstring被叫
班长座席在强插通话中状态开始录音,在班长侧录音
示例:
  • // 监听事件获取强插响应
  • CallCenter.addEventListener("agentinsert",function(json){
  •  // json 响应数据
  • });
  • // 监听强插振铃事件
  • CallCenter.addEventListener("agentinsertringing",function(json){
  •  // json 响应数据
  • });
  • // 监听强插接听事件
  • CallCenter.addEventListener("agentinsertincall",function(json){
  •  // json 响应数据
  • });
  • // 请求强拆
  • CallCenter.agentinsert("1001");
注意:
仅班长坐席调用
班长坐席只有在空闲或忙碌时且坐席处理通话时才能调用此接口加入通话
强插挂机:
班长挂机,坐席和用户继续通话。
坐席挂机,班长挂机,坐席去坐席所在技能组客户评价。
用户挂机,坐席和班长同时挂机。

2.3.3 强制示忙

接口名称:CallCenter.forcebusy(agentoperatorid)
功能:班长功能,强制把指定座席设置为忙碌
参数:
参数名类型描述
agentoperatoridString坐席工号
返回值:
属性类型说明
typestring固定值 forcebusy
statusint状态码 0 成功 非0失败
reasonstring原因
monitorint0被监控坐席 1发起监控坐席
示例:
  • // 监听事件获取强制示忙坐席响应
  • CallCenter.addEventListener("forcebusy",function(json){
  •  // json 响应数据
  •  // json.monitor 身份标识,1 班长,0 坐席
  • });
  • // 请求强制示忙坐席
  • CallCenter.forcebusy("1001");
注意:
仅班长坐席可用。
班长坐席只有在登录、空闲、话后时才能将指定坐席示忙。

2.3.4 强制示闲

接口名称:CallCenter.forceidle(agentoperatorid)
功能:班长功能。强制把指定座席设置为空闲
参数:
参数名类型描述
agentoperatorid字符串格式:工号 
返回值:无,需监听forceidle事件接收响应
事件参数名参数类型参数说明
typestring固定值 forceidle
statusint状态码 0 成功 非0失败
reasonstring原因
monitorint0被监控坐席 1发起监控坐席
示例:
  • // 监听事件获取强制示闲坐席响应
  • CallCenter.addEventListener("forceidle",function(json){
  •  // json 响应数据
  •  // json.monitor 身份标识,1 班长,0 坐席
  • });
  • // 请求强制示闲坐席
  • CallCenter.forceidle("1001");
注意:
仅班长坐席可用。
班长坐席只有在登录、忙碌、话后时可能将指定坐席强制示闲。

2.3.5 座席监控

1、开启座席监控
接口名称:CallCenter.monitoragent()
功能:开始接收所有座席的状态消息
参数:
返回值:无,需要监听monitoragent事件来获取响应
事件参数名参数类型参数说明
cmdtypeint固定值 1 表示电话条上时间不重新计时
datajsonarray排队信息
typestring固定值 monitoragent
data是一个jsonarray 里面的元素是json,json的格式如下:
属性名称属性描述是否必填
worktypeint坐席上班选择的话机类型 0话机 1sip话机 2webcall
taskgroupidint坐席签入的任务技能组id
statusstring欧西当前状态
operatoridint工号
operate_timestring坐席状态最后变更时间 yyyy-MM-dd HH:mm:ss
nowgroupidint坐席所在当前技能组id
namestring坐席姓名
groupidsjsonarray坐席所在技能组id的jsonarray
companyIdint企业id
callerstring坐席当前通话的主叫
calledstring坐席当前通话的被叫
busydescrint忙碌类型,只有在status为busy的情况下才有用,值为admin配置的忙碌类型的id
autoBoolean是否是预测外呼
agentKeystring工号@企业缩写
示例:
  • // 监听事件获取坐席监控响应
  • CallCenter.addEventListener("monitoragent",function(json){
  • // json 响应数据
  •  /* {"type":"monitoragent","data":[{"auto":false,"nowgroupid":802,"worktype":2,"agentKey":"1000@wucb","companyId":152,"groupids":[802],"name":"1000","taskgroupid":0,"operatorid":"1000","status":"free","operate_time":"2019-07-12 16:00:38"},{"auto":false,"nowgroupid":802,"worktype":2,"agentKey":"1001@wucb","companyId":152,"groupids":[802],"name":"1001","taskgroupid":0,"operatorid":"1001","status":"busy","operate_time":"2019-07-12 15:59:32"}],"cmdtype":1}
  • });*/
  • // 请求监控坐席
  • CallCenter.monitoragent();
注意:仅班长座席调用
 
2、结束座席监控
接口名称:CallCenter.closeMonitorAgent()
功能:停止接收所有坐席的状态消息。
参数:
返回值:无,需要监听 unmonitoragent 事件来获取响应
示例:
  • // 监听事件获取坐席监控响应
  • CallCenter.addEventListener("unmonitoragent",function(json){
  •  // json 响应数据
  •  // {"type":"unmonitoragent","reason":"取消班长监控成功","status":0}
  • });
  • // 请求监控坐席
  • CallCenter.closeMonitorAgent();
 
3、监控事件
3.1班长坐席开启监控后,每当有坐席签入预测技能组时,会收到 agentbegingroup 事件
事件参数名参数类型参数说明
cmdtypeint固定值 1 表示电话条上时间不重新计时
datajsonarray排队信息
typestring固定值 agentbegingroup
data是一个JSON数组,数组元素如下:
属性名称属性描述是否必填
operatoridint工号
statusstring欧西当前状态
namestring坐席姓名
companyIdint企业id
operate_timestring坐席状态最后变更时间 yyyy-MM-dd HH:mm:ss
agentKeystring工号@企业缩写
groupidsjsonarray坐席所在技能组id的jsonarray
callerstring坐席当前通话的主叫
calledstring坐席当前通话的被叫
worktypeint坐席上班选择的话机类型 0话机 1sip话机 2webcall
autoBoolean是否是预测外呼
busydescrint忙碌类型,只有在status为busy的情况下才有用,值为admin配置的忙碌类型的id
nowgroupidint坐席所在当前技能组id
taskgroupidint坐席签入的任务技能组id
示例:
  • // 监听智能外呼坐席签入智能外呼任务技能组事件
  • CallCenter.addEventListener("agentbegingroup",function(json){
  •  // json 响应数据
  • });
  • // 请求监控坐席
  • CallCenter.monitoragent();
 
3.2班长坐席开启监控后,每当有坐席签出预测技能组时,会收到 agentstopgroup 事件
事件参数名参数类型参数说明
typestring固定值 agentstopgroup
cmdtypeint固定值 1 表示电话条上时间不重新计时
datajsonarray排队信息
data是一个JSON数组,数组元素如下:
属性名称属性描述是否必填 
operatoridint工号必填
statusstring欧西当前状态必填
namestring坐席姓名必填
companyIdint企业id必填
operate_timestring坐席状态最后变更时间 yyyy-MM-dd HH:mm:ss必填
agentKeystring工号@企业缩写必填
groupidsjsonarray坐席所在技能组id的jsonarray必填
callerstring坐席当前通话的主叫选填
calledstring坐席当前通话的被叫选填
worktypeint坐席上班选择的话机类型 0话机 1sip话机 2webcall必填
autoBoolean是否是预测外呼必填
busydescrint忙碌类型,只有在status为busy的情况下才有用,值为admin配置的忙碌类型的id选填
nowgroupidint坐席所在当前技能组id必填
taskgroupidint坐席签出的任务技能组id必填
示例:
  • // 监听智能外呼坐席签入智能外呼任务技能组事件
  • CallCenter.addEventListener("agentstopgroup",function(json){
  •  // json 响应数据
  • });
  • // 请求监控坐席
  • CallCenter.monitoragent();
 
3.3班长座席开启监控后,会收到monitorqueue事件
事件参数名参数类型参数说明
typestring固定值 monitorqueue
cmdtypeint固定值 1 表示电话条上时间不重新计时
datajsonarray排队信息
data是一个JSON数组,数组元素如下:
属性名称属性描述是否必填
autonumint预测技能组排队数量
groupidint技能组id
numint呼入技能组排队数
示例:
  • // 监听智能外呼坐席签入智能外呼任务技能组事件
  • CallCenter.addEventListener("monitorqueue",function(json){
  •  // json 响应数据
  • });
  • // 请求监控坐席
  • CallCenter.monitoragent();

2.3.6 耳语

接口名称:CallCenter.whisper(agentoperatorid)
功能:耳语功能,辅助座席服务客户。
参数:
参数名类型描述
agentoperatorid字符串格式:工号
返回值:
事件参数名参数类型参数说明
typestring固定值 monitor
statusint状态码 0 成功 非0失败
reasonstring原因
monitorint0被监控坐席 1发起监控坐席
 
发起耳语成功之后,班长会受到振铃monitorringing和接听monitorincall事件
事件参数名参数类型参数说明
typestring固定值 monitorringing
callidstring通话唯一标识
timestampstring通话创建unix时间戳
callerstring主叫
origcallerstring原主叫
calledstring被叫
nowgroupidint当前技能组id
userdatajson平台随入数据
followDatajson用户随入数据
uuiDatastringuser to user data
 
事件参数名参数类型参数说明
typestring固定值monitorincall 
callidstring通话唯一标识
timestampstring通话创建unix时间戳
callerstring主叫
origcallerstring原主叫
calledstring被叫
nowgroupidint当前技能组id
userdatajson平台随入数据
followDatajson用户随入数据
uuiDatastringuser to user data
班长座席在监听通话中开始录音,在班长侧开始录音
示例:
  • // 监听事件获取耳语响应
  • CallCenter.addEventListener("monitor",function(json){
  •  // json 响应数据
  •  // json.monitor 身份标识,1 班长,0 坐席
  • });
  • // 监听耳语振铃事件
  • CallCenter.addEventListener("monitorringing",function(json){
  •  // json 响应数据
  • });
  • // 监听耳语接听事件
  • CallCenter.addEventListener("monitorincall",function(json){
  •  // json 响应数据
  • });
  • // 请求耳语
  • CallCenter.whisper("1001");
注意:
耳语功能仅对班长座席有效
耳语时用户听不到班长与座席通话
班长座席在空闲或忙碌状态下,才能调用此接口进行耳语

2.3.7 座席辅导

接口名称:CallCenter.instructAgent(agentoperatorid)
功能:座席辅导功能,辅助座席服务客户。
参数:
参数名类型描述
agentoperatorid字符串格式:工号
返回值:无,需要监听coach事件接收响应。
事件参数名参数类型参数说明
typestring固定值 coach
statusint状态码 0 成功 非0失败
reasonstring原因
monitorint0被监控坐席 1发起监控坐席
typestring固定值 coach
发起班长辅导成功后,班长座席会收到coachringing、coachcall 事件
事件参数名参数类型参数说明
typestring固定值 coachringing
callidstring通话唯一标识
timestampstring通话创建unix时间戳
callerstring主叫
origcallerstring原主叫
calledstring被叫
nowgroupidint当前技能组id
userdatajson平台随入数据
followDatajson用户随入数据
uuiDatastringuser to user data
 
事件参数名参数类型参数说明
typestring固定值  coachcall
callidstring通话唯一标识
calledstring诶叫
callerstring主叫
statusint状态码 0成功 1失败
monitorint0被监控坐席 1发起监控坐席
 示例:
  • // 监听事件获取坐席辅导响应
  • CallCenter.addEventListener("coach",function(json){
  •  // json 响应数据
  •  // json.monitor 身份标识,1 班长,0 坐席
  • });
  • // 监听辅导振铃事件
  • CallCenter.addEventListener("coachringing",function(json){
  •  // json 响应数据
  • });
  • // 监听辅导接听事件
  • CallCenter.addEventListener("coachcall",function(json){
  •  // json 响应数据
  • });
  • // 请求坐席辅导
  • CallCenter.instructAgent("1001");
注意:
座席辅导功能仅对班长座席有效
班长座席在空闲或忙碌状态下,才能调用此接口进行座席辅导
班长辅导中,班长可以和坐席说话,用户听不到班长声音。坐席说话,班长和用户都听得到。用户说话,班长和坐席都听得到。

2.3.8 座席辅导静音

接口名称:CallCenter.silence()
功能:座席辅导时静音用户,用户被静音后听不到班长与座席的通话。
参数:
返回值:无,需要监听silence事件接收响应
事件参数名参数类型参数说明
typestring固定值 silence
statusint状态码 0 成功 非0失败
reasonstirng原因
示例:
  • // 监听事件获取静音用户响应
  • CallCenter.addEventListener("silence",function(json){
  •  // json 响应数据
  • });
  •  
  • // 请求静音用户
  • CallCenter.silence();
注意:
        静音功能只能在座席辅导时调用
        静音功能只能在座席侧调用

2.3.9 座席辅导取消静音

接口名称:CallCenter.unsilence()
功能:座席辅导时取消静音用户,用户取消静音后恢复与座席的通话。
参数:
返回值:无,需要监听unsilence事件接收响应。
事件参数名参数类型参数说明
typestring固定值 unsilence
statusint状态码 0 成功 非0失败
reasonstirng原因
示例:
  • // 监听事件获取取消静音用户响应
  • CallCenter.addEventListener("unsilence",function(json){
  •  // json 响应数据
  • });
  • // 请求取消静音用户
  • CallCenter.unsilence();
注意:
        取消静音功能只能在座席辅导时调用
        取消静音功能只能在座席侧调用

2.3.10 座席辅导挂机

1、 用户挂机
当用户离开辅导后,班长和坐席可以继续通话。坐席会收到 leaveuser 事件,响应数据 json.status为0
事件参数名参数类型参数说明
typestring固定值leaveuser
statusint固定值0
示例:
  • // 监听坐席辅导用户挂机事件
  • CallCenter.addEventListener("leaveuser",function(json){
  •  // json 响应数据
  •  if(json.status===0){
  •  // 用户挂机了
  •  }
  • });
2、 座席挂机
坐席挂机时,班长挂机,如果设置有客户评价,用户去坐席所在技能组进行客户评价,否则用户挂机。
3、 班长挂机
班长挂机时,坐席和用户恢复之前的通话状态。
如果坐席辅导前是外呼,则会收到 answer 事件;如果是接听呼入电话,则会收到 incall 事件。
 
座席辅导时发起转接、咨询、咨询IVR、转接IVR
1、 转接、咨询、咨询IVR
坐席辅导中,坐席进行转接,咨询,咨询ivr流程时,班长会收到 after 事件,再执行相关流程。
2、 转接IVR
坐席辅导中,坐席进行转接IVR时,坐席会收到 leaveuser、after 事件,响应数据json.status为1
事件参数名参数类型参数说明
typestring固定值 leaveuser
statusint固定值 1
示例:
  • // 监听坐席辅导中转接IVR事件
  • CallCenter.addEventListener("leaveuser",function(json){
  •  // json 响应数据
  •  if(json.status===1){
  •  // 转接IVR
  •  }
  • });
  • // 监听话后事件
  • CallCenter.addEventListener("after",function(json){
  •  // json 响应数据
  • });

2.3.11 监听

接口名称:CallCenter.monitor(agentoperatorid)
功能:班长功能。监听指定座席
参数:
参数名类型描述
agentoperatorid字符串格式:工号
返回值:无,需要监听monitor事件获取响应
事件参数名参数类型参数说明
typestring固定值 monitor
statusint状态码 0 成功 非0失败
reasonstring原因
monitorint0被监控坐席 1发起监控坐席
事件参数名参数类型参数说明
发起监听成功之后,班长会收到振铃 monitorringing 和接听 monitorincall 事件
事件参数名参数类型参数说明
calledstring被叫
callerstring主叫
callidstring通话唯一标识
followDatajson用户随入数据
nowgroupidint当前技能组id
origcallerstring原主叫
timestampstring通话创建unix时间戳
typestring固定值 monitorringing
userdatajson平台随入数据
uuiDatastringuser to user data
 
事件参数名参数类型参数说明
typestring固定值monitorincall 
callidstring通话唯一标识
timestampstring通话创建unix时间戳
callerstring主叫
origcallerstring原主叫
calledstring被叫
nowgroupidint当前技能组id
userdatajson平台随入数据
followDatajson用户随入数据
uuiDatastringuser to user data
示例:
  • // 监听事件获取监听响应
  • CallCenter.addEventListener("monitor",function(json){
  •  // json 响应数据
  • });
  • // 监听振铃事件
  • CallCenter.addEventListener("monitorringing",function(json){
  •  // json 响应数据
  • });
  • // 监听接听事件
  • CallCenter.addEventListener("monitorincall",function(json){
  •  // json 响应数据
  • });
  • // 请求监听
  • CallCenter.monitor("1001");
注意:
仅班长坐席有效
班长坐席只有在空闲或忙碌时才能调用此接口执行监听
监听挂机:
用户挂机,坐席和班长同时挂机
坐席挂机,班长挂机,用户去坐席对应技能组进行客户评价
班长挂机,坐席和用户继续通话。

2.3.12 拦截

接口名称:CallCenter.agentinterceptcall(agentoperatorid)
功能:拦截
参数:
参数名类型描述
agentoperatorid字符串座席工号
返回值:无,需要监听 agentinterceptcall 事件接收响应。
返回事件如下:
成功,则坐席和班长都能收到成功消息。
失败,则班长收到失败消息。
事件参数名参数类型参数说明
monitorint0被监控坐席 1发起监控坐席
reasonstring原因
statusint状态码 0 成功 非0失败
typestring固定值 agentinterceptcall
发起拦截成功,坐席状态变更为拦截。之后受到拦截振铃和拦截接听。坐席侧被拆线挂机。
振铃事件:
班长坐席状态变更为拦截振铃
事件参数名参数类型参数说明
calledstring被叫
callerstring主叫
callidstring通话唯一标识
followDatajson用户随入数据
nowgroupidint当前技能组id
origcallerstring原主叫
timestampstring通话创建unix时间戳
typestring固定值 interceptaltering
userdatajson平台随入数据
uuiDatastringuser to user data
接听事件
班长坐席状态变更为拦截接听
事件参数名参数类型参数说明
calledstring被叫
callerstring主叫
callidstring通话唯一标识
followDatajson用户随入数据
nowgroupidint当前技能组id
origcallerstring原主叫
timestampstring通话创建unix时间戳
typestring固定值     interceptcall
userdatajson平台随入数据
uuiDatastringuser to user data
班长拦截通话中,在班长侧开始录音。
示例:
  • // 监听事件获取拦截响应
  • CallCenter.addEventListener("agentinterceptcall",function(json){
  •  // json 响应数据
  •  // json.monitor 身份标识,1 班长,0 坐席
  • });
  • // 监听拦截振铃事件
  • CallCenter.addEventLisnter("interceptaltering",function(json){
  •  // json 响应数据
  • });
  • // 监听拦截接听事件
  • CallCenter.addEventListener("interceptcall",function(json){
  •  // json 响应数据
  • });
  • // 请求拦截
CallCenter.agentinterceptcall("1001");
注意:

2.3.13 强制签出

接口名称:CallCener.forcelogout(agentoperatorid)
功能:班长功能,强制签出指定强制座席登出
参数:
参数名类型描述
agentoperatorid字符串格式:工号
返回值:无,班长坐席需要监听 forcelogout 事件获取响应,普通坐席需要监听 logon 事件获取响应
事件参数名参数类型参数说明
typestring固定值 forcelogout
statusint状态码 0 成功 非0失败
reasonstring原因
注意:
 
示例:
  • // 班长坐席监听强制签出事件
  • CallCenter.addEventListener("forcelogout",function(json){
  •  // json 响应数据
  • });
  •   
  • // 普通坐席侧监听强制签出事件
  • CallCenter.addEventListener("logon",function(json){
  •  if(json.status==3){
  •  // 我被班长强制签出了
  •  }
  • });
  •   
  • // 班长坐席强制签出坐席
  • CallCenter.forcelogout("1001");
 

2.4 转接咨询功能

2.4.1 转接

2.4.1.1 转接到号码

接口名称:CallCenter.transfercall(phone,null[ ,userdata])
功能:将当前通话转接到指定号码
参数:
参数名类型描述
phoneString必选,转接到号码
null--必选,传null
userdataObject可选,数据
{
outCall:ture  // 是否盲转外线,true盲转,false普通转
}
返回值:无,需要监听transfercall事件获取响应。
事件参数名参数类型参数说明
typestring固定值transfercall
statusint状态码0正常1非正常
reasonstring转接失败的原因
dirint呼叫方向0呼入1呼出
示例:
  • // 监听转接失败事件获取响应
  • CallCenter.addEventListener("transfercall",function(json){
  •  // json 响应数据
  • });
  •  
  • // 监听转接处理中事件
  • CallCenter.addEventListener("transfering",function(json){
  •  // json 响应数据
  •  // {"type":"transfering"}
  • });
  •  
  • // 监听话后事件
  • CallCenter.addEventListener("after",function(json){
  •  // json 响应数据
  • });
  •  
  • // 转接到指定号码
  • CallCenter. transfercall(“1568245875” ,null,{
  •  outCall:true // 使用盲转
  • });
 
注意:CTI模式下,userdata参数需要传字符串数据

2.4.1.2 转接到坐席

接口名称:CallCenter.transfercall(agentid,groupid[ ,userdata])
功能:将当前通话转接到指定座席
参数:
参数名类型描述
agentedString必选,
转接到座席,格式:工号@企业缩写
groupidint必选,转接到坐席的技能组id
userdataObject可选,数据
{
userData:{},定义随路数据
uuiData:’’//定义UUI数据
}
返回值:无,需要监听transfercall事件获取响应
属性类型说明
typestring固定值transfercall 
statusint状态码0正常1非正常
reasonstring原因
dirint呼叫方向0呼入1呼出
 示例:
  • // 监听转接失败事件获取响应(转接方)
  • CallCenter.addEventListener("transfercall",function(json){
  •  // json 响应数据
  •  // {"reason":"取消转接或转接失败","type":"transfercall","dir":1,"status":1}
  • });
  •  
  • // 监听转接处理中事件(转接方)
  • CallCenter.addEventListener("transfering",function(json){
  •  // json 响应数据
  •  // {"type":"transfering"}
  • });
  •  
  • // 监听话后事件(转接方)
  • CallCenter.addEventListener("after",function(json){
  •  // json 响应数据
  • });
  •  
  • // 监听转接振铃事件(被转接方)
  • CallCenter.addEventListener("transferinringing",function(json){
  •  // json 响应数据
  • // {"callid":"24542515792953352","userdata":"*","caller":"*",
  • "origcaller":"8715628449220015","called":"*","nowgroupid":802,
  • "dir":1,"type":"transferinringing","followData":"*","timestamp":1562899218}
  • });
  •  
  • // 监听转接通话事件(被转接方)
  • CallCenter.addEventListener("transferincall",function(json){
  •  // json 响应数据
  • // {"callid":"24542515792953352","userdata":"*","caller":"*",
  • "origcaller":"8715628449220015","called":"*","nowgroupid":802,
  • "type":"transferincall","followData":"*","timestamp":1562899218}
  • });
  •  
  • // 转接到指定坐席
  • CallCenter. transfercall(“1001@test” ,87,{
  •  userData:{}, // 随路数据
  •  uuiData: ”” // UUI数据
  • });
 
注意:
  • 被转接座席必须为非预测登录座席
  • 被转接座席必须处于空闲状态
  • CTI模式下,userdata参数需要传字符串数据

2.4.2 转接技能组

接口名称:CallCenter.transfergroup(groupid)
功能:将当前通话转接到指定技能组
参数:
参数名类型描述
groupidnumber技能组ID
返回值:无,需要监听 after 事件获取响应
示例:
  • // 监听话后事件获取响应
  • CallCenter.addEventListener("after",function(json){
  •  // json 响应数据
  • });
  •  
  • // 请求转接技能组
  • CallCenter.transfergroup(8);
 
注意:
  • 只有座席和用户建立通话后才能调用转接技能组接口
  • 转接技能组后,转接座席可以收到after事件进入话后状态 

2.4.3 转接IVR

接口名称:CallCenter.transferservice(filename[,num])
功能:将当前通话转接到指定IVR脚本
参数:
参数名类型必填描述
filenamestringIVR流程文件名
numintIVR流程类型 1 转接,2 咨询
hangupaftertransferBoolean转接后是否挂机
isFlownameBooleanfilename是否为文件名,默认值:false,
true:filename传入为IVR流程名,即flowname
返回值:
示例:
  • // 监听转接IVR失败事件获取响应
  • CallCenter.addEventListener("transferservice",function(json){
  •  // json 响应数据
  • });
  • // 监听挂机事件
  • CallCenter.addEventListener("cancelmakecall",function(json){
  •  // json 响应数据
  •  // {"reason":"挂机成功","type":"cancelmakecall","status":0}
  • });
  • CallCenter.addEventListenter("after",function(json){
  •  // json 响应数据
  • });
  • // 请求转接IVR,转接后直接挂机
  • CallCenter.transferservice("a.xml",1,true);
  • // 请求转接IVR,转接后不挂机
  • CallCenter.transferservice("b.lua",1,false);
注意:

2.4.4 咨询到号码

接口名称:CallCenter.agentconsult(phone,null[,userdata])
功能:咨询指定座席,被咨询的坐席需要是空闲状态
参数:
参数名类型描述
phoneString必选,咨询的号码
Null--必选,传null
userdataObject可选,数据
{
userData:{},  // 定义随路数据
uuiData:””  // 定义UUI数据
}
返回值:无,需要监听 agentconsult 事件获取响应
示例:
  • // 监听咨询到号码事件获取响应
  • CallCenter.addEventListener("agentconsult",function(json){
  •  // json 响应数据
  •  // {"reason":"Success","caller":"*","type":"agentconsult","status":0}
  • });
  • // 监听被咨方摘机事件
  • CallCenter.addEventListener("consultationcalls",function(json){
  •  // json 响应数据
  •  // {"type":"consultationcalls"}
  • });
  • // 请求咨询到号码
  • CallCenter.agentconsult("15864585965",null,{
  •  userData:{
  •  // 随路数据
  •  },
  •  uuiData:'1542587745887744'
  • });
注意: CTI服务方式时,userdata参数需要传字符串
2.1.1.24_34以下版本,集成三方会话邀请功能时,需要通过 CallCenter.isLeaveConf() 判断是否为三方会话被咨询方退出,若是则调用 CallCenter.handle_agentconsult(phone,null[ ,userdata])执行邀请。2.1.1.24_36、3.0.1.0不需要判断,直接调用CallCenter.agentconsult(phone,null[,userdata])即可。

2.4.5 咨询到坐席/技能组

接口名称:CallCenter.agentconsult(agentid,groupid[ ,userdata])
功能:咨询指定座席,被咨询的坐席需要是空闲状态
参数:
参数名类型描述
agentidString非必选,咨询的座席,格式:工号@企业缩写,若不传,则为转技能组
groupidint必选,咨询坐席的技能组id
userdataObject可选,数据
{
userData:{},  // 定义随路数据
uuiData:””  // 定义UUI数据
}
 
返回值:无,需要监听 agentconsult 事件获取响应。
注意:
咨询坐席前要先获取空闲坐席,调用获取空闲坐席接口
CTI服务方式时,userdata参数需要传字符串
2.1.1.24_34以下版本,集成三方会话邀请功能时,需要通过 CallCenter.isLeaveConf() 判断是否为三方会话被咨询方退出,若是则调用 CallCenter.handle_agentconsult(agentid,groupid[ ,userdata])执行邀请。2.1.1.24_36、3.0.1.0不需要判断,直接调用CallCenter.agentconsult(agentid,groupid[,userdata])即可。
 
示例
  • // 监听咨询到坐席事件获取响应(咨询方)
  • CallCenter.addEventListener("agentconsult",function(json){
  •  // json 响应数据
  •  // {"reason":"Success","caller":"*","type":"agentconsult","status":0}
  • });
  •   
  • // 监听被咨询坐席摘机事件(咨询方)
  • CallCenter.addEventListener("consultationcalls",function(json){
  •  // json 响应数据
  •  // {"type":"consultationcalls"}
  • });
  •   
  • // 监听咨询振铃事件(被咨询方)
  • CallCenter.addEventListener("consultinringing",function(json){
  •  // json 响应数据
  •  // {"callid":"24542515792953355","userdata":"*","caller":"*","origcaller":"8715628449220015","called":"*","nowgroupid":802,"type":"consultinringing","followData":"*","timestamp":1562900332}
  • });
  •   
  • // 监听咨询摘机事件(被咨询方)
  • CallCenter.addEventListener("consultincall",function(json){
  •  // json 响应数据
  •  // {"callid":"24542515792953355","userdata":"*","caller":"*","origcaller":"8715628449220015","called":"*","nowgroupid":802,"type":"consultincall","followData":"*","timestamp":1562900332}
  • });
  •   
  • // 监听事件获取响应
  • CallCenter.addEventListener("idleagents",function(json){
  •  // json 为返回的数据
  •  // {"type":"idleagents","data":[{"groupname":"测试技能组","groupid":802,"agents":["1001@test","1002@test"]}],"cmdtype":1}
  •  // 根据视图层事件响应调用咨询接口
  •  CallCenter.agentconsult(json.data[i].agents[j],8,{
  •  userData:{
  •  // 随路数据
  •  },
  •  uuiData:'1542587745887744'
  •  });
  • });
  •   
  • // 获取空闲坐席
  • CallCenter.idleagents();
 

2.4.6 咨询IVR

接口名称:CallCenter.consulationservice(filename[,groupid,userdata,num])
功能:将当前通话转接到指定IVR脚本
参数:
参数名类型描述
filename字符串IVR脚本文件
groupidint可选参数,转接到的技能组id
userdata字符串可选参数,CTI服务方式时使用,随路数据 
num字符串可选参数,CTI服务方式时使用,咨询到的IVR号码
返回值:无,需要监听consulationservice
属性类型说明
statusint状态 0失败 1成功 
reasonstring描述信息
TypeString固定值consulationservice
示例:
  • // 监听咨询IVR事件获取响应
  • CallCenter.addEventListener("consulationservice",function(json){
  •  // json 响应数据
  •  // {"reason":"咨询转接成功.","type":"consulationservice","status":0}
  • });
  • // 外呼咨询IVR结束监听 answer 事件
  • CallCenter.addEventListener("answer",function(json){
  •  // json 响应数据
  •  // {"callid":"24542517012054016","caller":"*","type":"answer","called":"*"}
  • });
  • // 呼入咨询IVR结束监听 incall 事件
  • CallCenter.addEventListener("incall",function(json){
  •  // json 响应数据
  •  // {"callid":"24542517012054017","caller":"*","called":"*","type":"incall"}
  • });
  • // 请求咨询IVR
  • CallCenter.consulationservice("a.lua",8,{
  •  userData:{
  •  // 随路数据
  •  },
  •  uuiData:'1542587745887744'
  • });
注意:

2.4.7 结束咨询 

接口名称:CallCenter.agentconsultback()
功能:取消当前的咨询
参数:
返回值:无,需要监听agnentconsultback事件获取响应
属性类型说明
statusint状态 0失败 1成功 
dirInt呼叫方向0呼入1呼出
typestring固定值agentconsultback
reasonstring描述信息
示例:
  • // 监听结束咨询事件
  • CallCenter.addEventListener("agentconsultback",function(json){
  •  // json 响应数据
  •  // {"reason":"Success","type":"agentconsultback","dir":1,"status":0}
  • });
  • // 请求结束咨询
  • CallCenter.agentconsultback();
注意:agentconsultback事件在咨询失败时也能接收到

2.4.8 咨询转接

接口名称:CallCenter.agentshift()
功能:咨询过程中,把当前通话转接到被咨询侧,当前座席挂机
参数:
返回值:无,需要监听after事件获取响应。
属性类型说明
statusint状态 0失败 1成功 
reasonstring描述信息
示例:
  • // 监听话后事件处理话后业务(转接方)
  • CallCenter.addEventListener("after",function(json){
  •  // json 响应数据
  • });
  • // 监听咨询转接通话事件(被转接方)
  • CallCenter.addEventListener("deviceChanged",function(json){
  •  // json 响应数据
  •  // {"callid":"24542515792953358","caller":"*","type":"deviceChanged","called":"*","dir":1,"cdrType":0}
  • });
  • // 请求咨询转接
  • CallCenter.agentshift();
注意:座席必须处于咨询通话中时调用此接口进行咨询转接

2.4.9 三方通话

接口名称:CallCenter.tripartitetalk()
功能:客户和座席与被咨询侧建立三方通话
参数:
返回值:无,需要监听 tripartitetalk 事件获取响应,监听 sanfangcall 事件获取三方通话建立响应。
示例:
  • // 监听事件获取三方通话响应
  • CallCenter.addEventListener("tripartitetalk",function(json){
  •  // json 响应数据
  •  // {"reason":"Success","type":"tripartitetalk","status":0}
  • });
  • // 监听三方通话中事件,各路通话都能收到 sanfangcall 事件,表示三方会话已建立
  • CallCenter.addEventListener("sanfangcall",function(){
  •  // json 响应数据
  •  // {"type":"sanfangcall"}
  • });
  • // 请求三方通话
  • CallCenter.tripartitetalk()
注意:
座席必须处于咨询通话中时调用此接口发起三方通话
各路通话都能收到sanfangcall事件,标识三方会话已建立

2.4.10 邀请加入三方

接口名称:CallCenter.handle_agentconsult(agentid[,groupid])
功能:建立三方通话后,如果被咨询方挂机,通过此接口再邀请被咨询者加入
参数:
参数名类型描述
agentid字符串格式:工号@公司简称,或咨询的号码
groupidint转接到的技能组id
userdata字符串随路数据,CTI服务方式时生效
返回值:无,需要监听agentconsult事件获取响应
示例:
  • // 监听咨询到号码事件获取响应
  • CallCenter.addEventListener("agentconsult",function(json){
  •  // json 响应数据
  • });
  • // 三方通话被邀请方挂机 
  • if(CallCenter.isLeaveConf()){
  • // 邀请其它方加入三方
  •  CallCenter.handle_agentconsult("15864585965");
  • }
注意:
  • 集成开发时,此接口必须在收到 leaveconf 事件后,才能调用
  • 调用此接口时,座席侧会保持三方状态
  • 3.0.1.0以上版本,可以直接调用 CallCenter.agentconsult(agentid,groupid) 邀请其它方加入三方

2.4.11移除会议

接口名称:CallCenter.handle_leavemeeting(agentid)
功能:主坐席讲其他坐席移除会议
参数:agentid
返回值:无,需要监听 tripartitetalk 事件获取响应,监听 sanfangcall 事件获取三方通话建立响应。
示例:
注意:
座席必须处于咨询通话中时调用此接口发起三方通话
各路通话都能收到sanfangcall事件,标识三方会话已建立
 

2.5 自定义忙碌类型

2.5.1 添加自定义未就绪状态

接口名称:CallCenter.addBusyButton(typeId,showText)
功能:在当前工具栏增加按钮
参数:
参数名类型说明
typeIdInt未就绪状态码
showTextString未就绪状态文字
返回值:
示例:CallCenter. addBusyButton(2,”小休”)
注意:部分版本定制接口,新版本自定义忙碌类型需要管理员在Admin中配置:
【配置】-【通话配置】-【座席忙碌类型】;
如果添加的未就绪状态typeId与原有的未就绪状态typeId相同,会覆盖原有的。

2.5.2  移除自定义忙碌按钮

接口名称:CallCenter.removeBusyButton(typeId)
功能:移除已经添加的未就绪状态
参数:
参数名类型说明
typeIdInt未就绪状态码
返回值:
示例:
  • // 移除未就绪状态
  • CallCenter. removeBusyButton(2);
  • // 或
  • CallCenter.getBusyTypeMap().remove(2);
  • 注意:部分版本定制接口,新版本自定义忙碌类型删除可以通过以下方式进行:
  • CallCenter.getBusyTypeMap().remove(typedId)

2.6 号码加密

2.6.1 隐藏部分号码 

接口名称:CallCenter.hidePhone()
功能:隐藏部分号码,手机号码隐藏中间4位,固话隐藏前面号码段
参数:
返回值:
示例:
  • //显示完成号码
  • CallCenter. hidePhone()
注意: 座席登录后调用

2.6.2 显示完整号码

接口名称:CallCenter.showPhone()
功能:显示完整号码,如果隐藏了部分号码,调用此函数恢复
参数:
返回值:
示例:
  • // 显示完整号码
  • CallCenter.showPhone()
注意:座席登录后调用

2.7 其它功能

2.7.1 事件提醒

接口名称:eventAlert(string)
功能:显示在工具条下方的提醒内容
参数:将以提醒的方式显示在工具条下方
返回值:CallCenter
示例:
  • CallCenter.eventAlert("呼叫状态切换")
注意:

2.7.2 获取座席所属技能组

接口名称:CallCenter.agentgroups()
功能:获取当前座席所属技能组
前置条件:调用此接口时座席必须处于登录状态。
参数:
返回值:无,需要监听agentgroups事件获取响应。
属性类型说明
idNumber:Integer技能组ID
nameString技能组名称
示例:
  • // 监听事件获取响应
  • CallCenter.addEventListener("agentgroups",function(json){
  •  // json 为返回的数据
  • });
  • // 获取坐席所属技能组
  • CallCenter.agentgroups();
注意:调用此接口时座席必须处于登录状态

2.7.3 获取座席

接口名称:CallCenter.idleagents([type])
功能: 获取其他非通话状态(签入、空闲、忙碌、话后)的坐席
参数:
参数名类型描述
typeNumber默认0,获取语音座席,1获取IM座席
返回值:无,需要监听idieagents
事件参数名参数类型参数说明
typestring固定值 idleagents 
cmdtypeint固定值 1 表示电话条上时间不重新计时
datajsonarray空闲坐席数据
data[i].groupidint技能组id
data[i].groupnamestring技能组名称
data[i].agentsjsonarray非通话坐席的数组,与agentnames索引匹配
data[i].agents[j]string非通话坐席,格式:坐席工号@企业缩写
data[i].agentnamesjsonarray非通话坐席名称,与agents索引匹配
Data[i].agentnames[j]string非通话坐席名称
示例:
  • // 监听事件获取响应
  • CallCenter.addEventListener("idleagents",function(json){
  •  // json 为返回的数据
  •  // {"type":"idleagents","data":[{"groupname":"测试技能组","groupid":802,"agents":["1001@test","1002@test"]}],"cmdtype":1}
  • });
  •  // 获取空闲坐席
  • CallCenter.idleagents();
注意:

2.7.4 获取指定座席状态

接口名称:getagentstate(agentid)
功能:获取指定座席状态,仅支持CTI方式登录
参数:
参数名类型描述
agented字符串格式:工号
返回值:
属性类型说明
statusint状态 0失败 1成功 
reasonstring描述信息
示例:
  • CallCenter. getagentstate(“1001”)
注意:

2.7.5 获取预测外呼可用技能组

接口名称:CallCenter. availablegroup()
功能:获取预测外呼可用技能组
参数:
返回值:预测外呼可用技能组
属性类型说明
statusint状态 0失败 1成功
reasonstring描述信息
示例:
  • //获取智能外呼可用技能组
  • CallCenter. availablegroup()
注意:

2.7.6 获取IVR列表

接口名称:CallCenter.getIVRFlowList()
功能:获取IVR列表
参数:
返回值:IVR列表JSON数据
示例:
  • //获取IVR列表
  • CallCenter. getIVRFlowList()
注意:
1. 需要坐席签入成功后调用

2.7.7 拨号过滤 

接口名称:call()
功能:增加电话条输入号码特殊符号校验(@除外),增加输入号码特殊符号校验接口CallCenter.Call( )
参数:
返回值:布尔值(true/false)
示例:
  • CallCenter. call()
注意:

2.8 websocket功能 

1、 建立连接
接口名称:CallCenter.onopen_callback
功能:定义服务连接建立成功后的回调
参数:
返回值:
示例
  • // 注册连接回调
  • CallCenter.onopen_callback = function(){
  •  // 业务逻辑处理
  • };
注意:
2、 关闭连接
接口名称:CallCenter.onclose_callback
功能:定义服务连接关闭成功后的回调。
参数:
返回值:
示例
  • // 注册连接关闭回调
  • CallCenter.onclose_callback = function(){
  •  // 业务逻辑处理
  • };
注意:
3、 连接失败
接口名称;CallCenter.onerror_callback
功能:定义服务连接失败后的回调。
参数:
返回值:
示例:
  • // 注册连接失败回调
  • CallCenter.onerror_callback = function(){
  •  // 业务逻辑处理
  • };
注意:
4、 重新连接
座席与服务端连接意外断开后,SDK会自动发起重连
命令参数名参数类型参数说明
cmdstring固定值 reconnection
operatoridint工号
abbreviatestring企业缩写
companyidint企业id
passwordstring加密后密码
worktypeint坐席三种话机选择 0手机 1sip话机 2webcall
autoint是否是预测登录 1 预测外呼登录 0 非预测外呼登录
logingroupsstring不传,则平台自动签入所有技能组,预测任务技能组由任务信息自动分配;传,格式为技能组id,以英文逗号隔开。坐席这次登录只签入这个这几个技能组,任务技能组是传入的最后一个技能组id。建议不传
agentType int 长短签 1短签 2长签
重连参数错误,会收到logon事件
事件参数名参数类型参数说明
typestring固定值 logon
systemtimestring系统当前时间 时间格式 yyyy-MM-dd HH:mm:ss
statusint状态码 0 正常 非0 错误
reasonstring原因
事件参数名参数类型参数说明
重连成功或失败,会收到reconnection事件:
事件参数名参数类型参数说明
typestring固定值 reconnection
statusint状态码 0 正常 非0 错误
reasonstring原因
cmdtypeint固定值 1 表示电话条上时间不重新计时
事件参数名参数类型参数说明
重连成功之后,如果断开前坐席处于通话状态,则会收到断开前最后收到的业务事件:
  • 外呼类型会收到 answer 事件
  • 呼入类型会收到 incall 事件
  • 转接类型会收到 transferincall 事件
  • 咨询类型会收到 consultincall 事件
如果断开之前坐席为非通话状态, 则会收到 agentbusy 事件
事件参数名参数类型参数说明是否必填
typestring固定值 agentbusy必填
statusint状态码 0 正常 非0 错误必填
reasonstring原因必填