接口文档
如何认证
基于Auth token认证
使用方法
在Header中添加 Authorization字段,内容为:Bearer+(空格)+token,添加 Content-Type字段,内容为:application/json。
举例
认证token是否正确
curl -X GET \
https://account.icsoc.net/oauth2/verify \
-H 'Authorization: Bearer ce6e64d23315e49c772ed8844e4e5cce7657506a' \
-H 'Content-Type: application/json'
正确响应 http code 200 返回客户端信息
{
"client_id": "client1000",
"user_id": null,
"expires": 1514956045,
"scope": "openid"
}
不正确http code 非200(401)
{
"error": "invalid_token",
"error_description": "The access token provided is invalid"
}
API参数和输出
编码(encoding) 不支持协商,全部为UTF-8。无视HTTP header中的编码声明。
输出 不支持协商,仅支持json。无视HTTP header中Accept的要求。 如无特殊说明,API不支持If-Modified-Since/If-None-Match,始终输出完整结果。
数据类型或格式
- JSON代码中出现的时间格式,如无特殊说明,均采用时间戳。
文档编辑
文中json代码为了书写方便,属性名也许存在未带双引号的情况(也可能在文档升级时解决该问题),编码时请全部按照含双引号的规范方式理解。
公共返回值
{
"code" : 0,
"message" : "",
"data" : {}
}
接口地址
https://ctiplus-api.icsoc.net/interface/v2/
坐席控制
坐席签入
URL
/agent/login
请求方式
POST
请求参数
{
"agNo" : "8001",
"bindTel" : "8001",
"loginType" : 2,
"state" : 0
}
参数说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
bindTel | string | 绑定电话 | 是 | 3-20位数字,若带'-'或',',则可再加10为数字,最长31位 |
loginType | int | 签入模式 | 是 | 枚举值 1:动态模式,2:静态模式,默认1,如果未使用wincall SDK的情况下,必须签入为静态模式,动态坐席需要创建ws连接,如果没有ws连接的情况下,只能使用静态模式 |
state | int | 签入状态 | 是 | 枚举值 1:置闲,2:置忙,签入时必须指定签入后的状态 |
reason | int | 置忙原因 | 否 | state为2时填写,不能小于0,默认0,置忙原因为在系统中配置的置忙原因,例如小休、会议等,此值为置忙原因的ID |
返回结果
{
"code": 0,
"message": "签入成功",
"data": {
"regId": "7043772057548652544",
"wsLink": "0",
"agType": "1",
"agSta": "0",
"phoSta": "0",
"phoType": "5",
"phoNum": "8001"
}
}
{
"code": 50201,
"message": "坐席已初始化",
"data": {
"regId": "6473432467473838080",
"wsLink" : "0",
"agType" : "1",
"agSta" : "2",
"phoSta" : "1",
"phoNum" : ""
}
}
结果说明
返回字段 | 字段类型 | 说明 |
---|---|---|
regId | string | 签入版本ID |
wsLink | string | 标示是否已经建立了ws链接 0:未连接 1:已连接 |
agType | string | 坐席登录类型 枚举值 1:动态模式,2:静态模式 |
agSta | string | 坐席状态 |
phoSta | string | 分机状态 |
phoNum | string | 分机号码 |
坐席签出
URL
/agent/logout
请求方式
POST
请求参数
{
"agNo" : "123456",
"logoutType" : 1
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
logoutType | int | 签出类型 | 否 | 枚举值 1 : 完全退出 2:仅退出动态模式(默认) |
返回结果
{
"code" : 0,
"message" : "签出成功"
}
坐席置闲
URL
/agent/ready
请求方式
POST
请求参数
{
"agNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"description" : "置闲成功"
}
坐席置忙
URL
/agent/busy
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"reason" : 1,
"ischk" : 1
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
reason | int | 置忙原因ID | 否 | 自定义配置,大于10 |
ischk | int | 是否校验 | 否 | 值为1时校验,默认为0不校验,其他值非法;若ischk为1,则reason需满足 大于10 |
返回结果
{
"code" : 0,
"message" : "置忙成功"
}
坐席绑定电话修改
URL
/agent/changeBindTel
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"bindTel" : "8080"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
bindTel | string | 绑定电话 | 是 | 3-20位数字,若带'-'或',',则可再加10为数字,最长31位 |
返回结果
{
"code" : 0,
"message" : "成功"
}
坐席状态查询
URL
/agent/state
请求方式
POST
请求参数
{
"agNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"message" : "成功",
"data" : {
"agSta" : "" ,
"agType" : "" ,
"reason" : "" ,
"phoNum" : "" ,
"webId" : ""
}
}
说明
返回字段 | 字段类型 | 说明 |
---|---|---|
agSta | string | 坐席状态 |
agType | string | 坐席类型 |
reason | string | 分机状态 |
phoNum | string | 分机号码 |
webId | string | 客户端标示Id |
坐席模式切换
URL
/agent/switchMode
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"agType" : 1 ,
"bindTel" : ""
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
agType | int | 坐席签入类型 | 是 | 1动态 2静态 |
bindTel | string | 绑定电话 | 否 | 若填写则校验:3-20位数字,若带'-'或',',则可再加10为数字,最长31位 |
返回结果
{
"code" : 0 ,
"message" : "成功"
}
进入自动外呼
URL
/agent/agentAtIn
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"proID" : 1
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
proID | int | 项目ID | 是 |
返回结果
{
"code" : 0 ,
"message" : "成功"
}
退出自动外呼
URL
/agent/agentAtOut
请求方式
POST
请求参数
{
"agNo" : "123456" ,
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0 ,
"message" : "成功"
}
获取坐席项目列表
URL
/agent/agentPro
请求方式
POST
请求参数
{
"agNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0 ,
"message" : "成功" ,
"data": [
{
"pro_id": "620",
"pro_name": "预测试外呼",
"pro_state": "1"
}
]
}
获取坐席遵时配置
URL
/agent/busyInfo
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"interval" : 10
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
interval | int | 时间间隔 | 否 | 正整数,1~60,其他值非法,默认60 |
返回结果
{
"code" : 0 ,
"message" : "成功" ,
"data": []
}
获取坐席主叫列表
URL
/agent/callerList
请求方式
POST
请求参数
{
"agNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code": 0,
"message": "成功",
"data": {
"num": [
{
"name": "自动选择",
"value": "",
"type": "auto"
},
{
"name": "",
"value": "r:101",
"type": "route"
},
{
"name": "呼入号码组",
"value": "g:132",
"type": "group"
},
{
"name": "01012345678",
"value": "01012345678",
"type": "phone"
}
]
}
}
查询坐席操作权限
URL
/agent/accessControlInfo
请求方式
POST
请求参数
{}
通过header中的Authorization字段查询
返回结果
{
"code": 0,
"message": "成功",
"data": {
"wincallButtons": [
"consult",
"transfer",
"threeway",
"evaluation",
"autocall",
"auto_answer",
"outbound_callers",
"trans_ivr",
"switch_phone",
"raise_hand",
"dining_remind"
]
}
}
呼叫
呼叫坐席
URL
/agent/callInner
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"calledAgNo" : "8001" ,
"callerID" : ""
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
calledAgNo | string | 被叫坐席工号 | 是 | 取值3-20位数字或字母 |
callerID | string | 主叫号码(中继号) | 否 | 若填写则校验:3-20位数字 |
noAutoAns | int | 呼叫第一个坐席时不携带自动应答头 | 否 | 0/1 |
返回结果
{
"code" : 0,
"message" : "成功" ,
"data" : {
"callId" : "6400"
}
}
坐席外呼
URL
/agent/callOut
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"agPho" : "" ,
"tel" : "15623885110" ,
"telCode" : "010",
"callerID" : "" ,
"agCallerID" : "",
"queueId" : 0 ,
"userData" : {"a":1}
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
agPho | string | 坐席分机 | 否 | - |
tel | string | 外呼号码 | 是 | 3-20位数字,若带'-'或',',则可再加10为数字,最长31位 |
telCode | string | 外呼号码区号 | 否 | 号码加密时携带 |
callerID | string | 客户侧外显号码 | 否 | 若填写则校验:3-20位数字 |
agCallerID | string | 坐席侧显示号码 | 否 | 若填写则校验:3-20位数字 |
queueId | int | 呼出所属技能组 | 否 | - |
sipMsg | int | 通过SIP MESSAGE发送其他消息 | 否 | 0/1 |
noAutoAns | int | 呼叫坐席时不携带自动应答头 | 否 | 0/1 |
userData | 对象 | 自定义字段 | 否 | 最大500字节,传入的值会打入通道变量,格式:{"key":"value"} |
返回结果
{
"code" : 0,
"message" : "成功",
"data" : {
"callId" : "6400"
}
}
坐席外呼取消
URL
/agent/callOutCancel
请求方式
POST
请求参数
{
"agNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"message" : "成功"
}
通话控制
拒接
URL
/agent/refuse
请求方式
POST
请求参数
{
"agNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"message" : "成功"
}
挂机
URL
/agent/hangup
请求方式
POST
请求参数
{
"agNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"message" : "成功"
}
保持
URL
/agent/hold
请求方式
POST
请求参数
{
"agNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"message" : "成功"
}
保持接回
URL
/agent/unhold
请求方式
POST
请求参数
{
"agNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"message" : "成功"
}
发送DTMF码
URL
/agent/sendDTMF
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"digits" : ""
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
digits | String | 按键值 | 是 | 字符串(0-9,*,#,A,B,C,D)最大20位,如:012*#32D |
返回结果
{
"code" : 0,
"message" : "成功"
}
咨询
咨询坐席
URL
/agent/consultAg
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"consultAgNo" : "",
"userData":{"num":123456},
"threeWay":0
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
callerID | string | 主叫号码(外线号码) | 否 | 坐席签入时,会告知该坐席所有可用号码,若填写则校验:3-20位数字 |
consultAgNo | string | 被咨询者的座席工号 | 是 | 取值3-20位数字或字母 |
userData | object | 随路数据 | 否 | 最大500字节,必须是object类型或者null 默认null |
threeWay | int | 自动三方控制 | 否 | 0 闭关自动三方 1 开启自动三方 默认0 |
返回结果
{
"code" : 0,
"message" : "成功"
}
咨询外线
URL
/agent/consultTel
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"callerID" : "" ,
"consultTel" : "",
"userData":{"num":123456},
"threeWay":0
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
callerID | string | 主叫号码(外线号码) | 否 | 若填写则校验:3-20位数字 |
consultTel | string | 被咨询者的电话 | 是 | 3-20位数字,若带'-'或',',则可再加10为数字,最长31位 |
userData | object | 随路数据 | 否 | 最大500字节,必须是object类型或者null 默认null |
threeWay | int | 自动三方控制 | 否 | 0 闭关自动三方 1 开启自动三方 默认0 |
返回结果
{
"code" : 0,
"message" : "成功"
}
咨询取消/接回
URL
/agent/consultCancel
请求方式
POST
请求参数
{
"agNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"message" : "成功"
}
咨询转移
URL
/agent/consultTransfer
请求方式
POST
请求参数
{
"agNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"message" : "成功"
}
咨询三方
咨询成功后才可以三方 URL
/agent/consultThreeway
请求方式
POST
请求参数
{
"agNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"message" : "成功"
}
咨询三方接回
URL
/agent/consultThreewayReturn
请求方式
POST
请求参数
{
"agNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"message" : "成功"
}
转接
转坐席
URL
/agent/transferAg
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"transferAgNo" : ""
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
transferAgNo | string | 转接的坐席工号 | 是 | 取值3-20位数字或字母,被转移的座席工号 |
返回结果
{
"code" : 0,
"message" : "成功"
}
转电话
URL
/agent/transferTel
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"callerID" : "" ,
"transferTel" : "13012341234"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
callerID | string | 主叫号码(外线号码) | 否 | 若填写则校验:3-20位数字 |
transferTel | string | 转接的电话号码 | 是 | 3-20位数字,若带'-'或',',则可再加10为数字,最长31位 |
返回结果
{
"code" : 0,
"message" : "成功"
}
转技能组
URL
/agent/transferQueue
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"queueId" : 1000 ,
"transVcc" : 782
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
queueId | int | 队列Id | 是 | - |
transVcc | int | 跨企业转移 | 否 | 0为本企业转移,非0则为其他企业代码,默认0 |
返回结果
{
"code" : 0,
"message" : "成功"
}
排队拦截
URL
/agent/takeOutQueue
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"callId" : "1000",
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
callId | string | 通话ID | 是 | 字符串 |
返回结果
{
"code" : 0,
"message" : "成功"
}
转接满意度
URL
/agent/transferEvaluate
请求方式
POST
请求参数
{
"agNo" : "123456"
}
// 后期追加,转接指定满意度
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"message" : "成功"
}
转接IVR
URL
/agent/transferIVR
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"ivrCode" : "782" ,
"ivrNode" : "Node10",
"vccId" : 78
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
ivrCode | string | Ivr Code | 是 | 无 |
ivrNode | string | IVR节点 | 是 | 无 |
vccId | int | 企业ID | 否 | 默认为0,代表本企业 |
返回结果
{
"code" : 0,
"message" : "成功"
}
IVR交互
URL
/agent/interact
请求方式
POST
请求参数
{
"agNo" : "123456" ,
"ivrCode" : "782" ,
"ivrParam" : "sss"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
ivrCode | string | Ivr Code | 是 | 无 |
ivrParam | string | 自定义参数 | 否 | 无 |
返回结果
{
"code" : 0,
"message" : "成功"
}
监控
监听
URL
/manager/spy
请求方式
POST
请求参数
{
"monitoredAgNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
monitoredAgNo | string | 被监听者座席工号 | 是 | 取值3-20位数字或字母 |
noAutoAns | int | 呼叫坐席时不携带自动应答头 | 否 | 0/1 |
返回结果
{
"code" : 0,
"message" : "成功"
}
强插
URL
/manager/barge
请求方式
POST
请求参数
{
"monitoredAgNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
monitoredAgNo | string | 被强插者座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"message" : "成功"
}
强拆
URL
/manager/disconnect
请求方式
POST
请求参数
{
"monitoredAgNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
monitoredAgNo | string | 被强拆者座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"message" : "成功"
}
强置闲
URL
/manager/setReady
请求方式
POST
请求参数
{
"monitoredAgNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
monitoredAgNo | string | 被强置闲的坐席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"message" : "成功"
}
强置忙
URL
/manager/setBusy
请求方式
POST
请求参数
{
"monitoredAgNo" : "123456",
"reason": 1
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
monitoredAgNo | string | 被强置忙的坐席工号 | 是 | 被强置忙的坐席工号 取值3-20位数字或字母 |
reason | int | 置忙原因 | 否 | 1 :强制置忙 3:系统置忙 |
返回结果
{
"code" : 0,
"message" : "成功"
}
强制签出
URL
/manager/forceLogout
请求方式
POST
请求参数
{
"monitoredAgNo" : "123456",
"customId":""
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
monitoredAgNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
customId | string | ws签出消息随路数据 | 否 | 256字节以内 |
返回结果
{
"code" : 0,
"message" : "成功"
}
耳语
URL
/manager/whisper
请求方式
POST
请求参数
{
"monitoredAgNo" : "123456"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
monitoredAgNo | string | 被耳语者座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code" : 0,
"message" : "成功"
}
耳语取消
URL
/manager/whisperCancel
请求方式
POST
请求参数 无
返回结果
{
"code" : 0,
"message" : "成功"
}
设置随路数据
URL
/agent/setUserData
请求方式
POST
请求参数
{
"agNo": "7777",
"UserData": {"num":"123"}
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
userData | object | 随路数据 | 是 | 最大500字节,必须是object类型 |
返回结果
{
"code" : 0,
"message" : "成功"
}
获取随路数据
URL
/agent/getUserData
请求方式
POST
请求参数
{
"agNo": "7777"
}
说明
参数 | 类型 | 说明 | 必选 | 约束 |
---|---|---|---|---|
agNo | string | 座席工号 | 是 | 取值3-20位数字或字母 |
返回结果
{
"code": 0,
"message": "成功",
"data": { "num":"123"}
}