一、说明
1.1、推送方式
URL推送:需要配置接收URL地址
不推送:不接收推送的消息
1.2、API请求
请求消息体中必须携带authentication字段,该字段包括如下内容:
名称 | 必填 | 说明 | 值说明 |
---|
customer | Y | 客户名称,客户在申请API时,会生产。 | 大写C加数字,如C2 |
timestamp | Y | 时间戳 | 毫秒级别时间戳 |
seq | Y | 请求序列号,保证一段时间内序列号不重复即可 | number(随机字符串) |
digest | Y | 认证域 | 对接账户、对接密码、消息序列号、时间戳,md5 加密后的数据 |
api 配置数据:
客户在申请开通API时,运营创建客户API相关数据,包括对接账户,对接密码
digest域计算方法:
对接账户、对接密码、消息序列号、时间戳(前两个数据由运营商提供)
md5(<customer> + “@” + <timestamp> + “@” + <seq> + “@” + 密码)
如:
客户申请的用户名和密码如下:
客户名称:C2
密码:E416D0F85DC0CB67C85E070A32D9F0123AFF4762
digest字段为 下面这个字符串的md5加密:
-
C2@1471918933001@5271@E416D0F85DC0CB67C85E070A32D9F0123AFF4762*
-
即md5(C2@1471918933001@5271@E416D0F85DC0CB67C85E070A32D9F0123AFF4762)*
-
结果: ae62e11cab746436b64a26f4ed8e41a3
注:密码非常重要,不能在任何信息中直接传输,否则可能导致致命安全问题。
需要发送的消息如下
{
authentication: { customer: “C2”, timestamp: 1471918933001, seq: 5271, digest: "*ae62e11cab746436b64a26f4ed8e41a3*" },
request: { …… }
}
1.3、推送消息(URL推送)
客户需要创建好接收推送消息的url 地址
1.4、请求格式(只针对API 请求)
2.所有内容必须是UTF-8无Bom格式;
3.所有内容必须是合法的json格式;后续可能开发xml格式接口;
4.请求的数据域可以携带如下内容
“param”: {`
“debug”: true|false,`
“lang”: “zh_CN|en_US”`
},
“request”:{}
其中param域中 debug 表示,开启调试,lang表示响应中的语种;
request域根据不同接口传入不同的参数
请求格式:
{
"authentication": {
"customer": "C2",
"digest": "ae62e11cab746436b64a26f4ed8e41a3",
"seq": "5271",
"timestamp": "1471918933001"
},
"param": {
"debug": "true",
"lang": "en_US"
},
"request": {
}
}
5.请求和命令
一个请求即一个HTTP请求,一个请求中可以携带一个或者多个命令,如果携带一个命令即HTTP消息中为request域,如果携带多个命令这时HTTP消息中为requests域,每个命令携带自己的序列号;一个请求中只能携带同类型的命令。
6.http请求头中必须携带如下信息
Accept: application/json
Content-Type: application/json
1.5、响应格式
一般情况响应都会如下格式:
{
"data": {
"seq": "",
"response": {
"seq": "",
"userData": "",
"result": {
"error": "", "msg": ""
}
}
},
"logs": "",
"result": { "error": "", "msg": "" }
}
userData说明:用户可以在userData中携带一些用户自定义的数据。如对端系统是多用户的,客户把用户的唯一标识传过来。我们回传回去,业务系统就可以知道是哪个客户的。再如与坐席相关的呼叫,用户传过来的数据就是坐席的唯一标识。
result域描述请求执行情况,logs域携带日志信息,data域携带每个命令执行情况;
二、导入客户资料数据
2.1、导入客户资料
1. 描述
根据格式导入客户资料
2. URL
3. 消息格式
{
"authentication":{
"customer":"C22",
"timestamp":"1565832904503",
"seq":"99060",
"digest":"b30d8eb97a765ab671867efaaae4f35b"
},
"param":{
"debug":"true",
"lang":"en_US"
},
"request":{
"batch":"批次A",
"returnError":true,
"returnRepeat":true,
"crmdata": [
{
"name":"张三",
"sex":"男",
"number1":"13140112011",
"number2":"15142331648",
"reserve_1": "qwe",
"reserve_2": "武汉",
"reserve_3": "ADF10021",
"reserve_4": "eqweqwe",
"reserve_5": "4000000123456781616",
....
},
{
"name":"李红",
"sex":"女",
"number1":"15140789011",
"number2":"19143143510",
"reserve_1": "qwe",
"reserve_2": "上海",
"reserve_3": "ADF10021",
"reserve_4": "",
"reserve_5": "",
....
},
{
"name":"",
"sex":"",
"number1":"16213441023",
"number2":"",
"reserve_1": "",
"reserve_2": "",
"reserve_3": "",
"reserve_4": "",
"reserve_5": "",
....
},
.....
]
}
}
4. 参数说明
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
字段名 | 必填 | 说明 | 值说明 |
---|
batch | Y | 导入批次 | string |
crmdata | Y | 需要导入的crm数据 | Array |
returnRepeat | N | 是否返回重复数据 | Bool |
returnError | N | 是否返回错误数据 | Bool |
batch字段说明:batch字段表示客户资料的导入批次,可以填写系统中已有的批次,也可以填写新的批次,系统会自动识别并添加该批次
crmdata域说明:
字段名 | 必填 | 说明 | 值说明 |
---|
name | N | 客户名称 | string |
sex | N | 性别(有 男,女,未知 三种) | string 不填默认为未知,填写非男/女之外的内容作为未知处理 |
number1 | Y | 联系号码 | string|number |
number2 | N | 其他号码 | string|number |
reserve_x | N | 自定义字段 | string (1<=x<=40) |
导入格式以及每个字段的映射关系可以通过上面 获取客户资料导入格式 的API获取
5. 响应格式
{
"result": {
"error": 0,
"msg": "成功"
},
"data": {
"seq": "99060",
"response": {
"seq": null,
"userData": null,
"result": {
"error": 0
},
"report": {
"total": 3,
"error": 0,
"repeat": 0
}
}
},
"logs": "",
}
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
6. 响应说明
logs域未日志域,如果开启了调试会携带相关调试信息
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | number|string |
msg | 请求返回的描述 | |
data域说明
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | number |
response | 响应数据 | |
report域说明:
字段名 | 说明 | 值说明 |
---|
total | 客户资料总数 | number |
error | 导入错误数 | |
repeat | 导入重复数 | |
ErrorNumList | 导入错误数据 | Array |
RepeatNumList | 导入重复数据 | Array |
repeat说明:重复的数据会被剔重,判断重复的标准是以联系号码number1为标识索引剔重
ErrorNumList说明:导入错误的数据会被返回
repeatNumList说明:导入重复的数据会被返回
2.2、获取客户资料模版
1. 描述
在导入客户资料前,获取客户资料的数据导入格式
2. URL
3. 消息格式
{
"authentication": {
"customer": "C2",
"digest": "",
"seq": "5271",
"timestamp": "1471918933001"
},
"param": {
"debug": "true",
"lang": "en_US"
},
"request": {}
}
4. 参数说明
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
5. 响应格式
{
"result": {
"error": 0,
"msg": "成功"
},
"data": {
"seq": "5271",
"response": {
"seq": null,
"userData": null,
"result": {
"error": 0
},
"template": {
"name": "客户名称",
"sex": "性别",
"number1": "联系号码",
"number2": "其他号码",
"reserve_1": "f1",
"reserve_2": "城市",
"reserve_3": "编号",
"reserve_4": "测试",
"reserve_5": "身份证",
.....
}
}
},
"logs": null
}
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
6. 响应说明
logs域未日志域,如果开启了调试会携带相关调试信息
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | number|string |
msg | 请求返回的描述 | |
data域说明
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | number |
response | 对请求中每一个命令 | |
template域说明:
Template数据表示的是系统客户资料的每个字段与后台添加数据时数据key的映射关系,其中name,sex,number1,number2为初始的固定字段; reserve_x(1<=x<=40)表示自定义字段
三、预测式外呼
3.1、坐席发起呼叫
1.描述
业务系统通过发送该API将发起呼叫,先呼叫触发该API的坐席,再呼叫指定的被叫号码。
2.URL
3.消息格式:
{
"authentication": {
"customer": "C2",
"digest": "ae62e11cab746436b64a26f4ed8e41a3",
"seq": "5271",
"timestamp": "1471918933001"
},
"param": {
"debug": "true",
"lang": "en_US"
},
"request": {
"seq": "123456",
"userData": "ASD001",
"agent": "",
"caller": "",
"callee": "",
"callType": ""
}
}
4.参数说明
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
字段名 | 必填 | 说明 | 值说明 |
---|
seq | N | 消息序列号 | number |
userData | N | 用户回传数据 | string最长40的字符,如果超过40,将截断 |
agent | Y | 坐席工号 | number |
caller | N | 主叫号码,如果填了,就用改参数传的号码作为主叫,如果不填则使用呼叫系统中已有的主叫号码 | |
callee | Y | 被叫号码,需要呼叫的号码 | number |
callType | N | 指定坐席绑定的呼叫类型, | 0 sip 账户 |
5.响应格式
{
"result": {
"error": 0,
"msg": "成功"
},
"data": {
"seq": "123",
"response": {
"seq": "123456",
"userData": "ASD001",
"result": {
"error": 0
},
"callSession": "1589304928-41362-794652464",
"msg": {
"error": 0,
"msg": {
"errno": "0x00000000",
"msg": "成功"
}
}
}
}
}
6.响应说明
logs域为日志域,如果开启了调试会携带相关调试信息
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | number|string |
msg | 请求返回的描述 | |
data域说明
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | number |
response | 对请求中每一个命令 | |
response字段:
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | 回传数据 |
userData | 用户回传数据 | string最长40的字符,如果超过40,将截断 |
callSession | 通话标识 | String 话单推送和查询可以对应使用 |
result | 结果,通常的响应接口(error字段) | object |
msg | 请求返回的具体信息,包括errno(错误码)、msg(请求提示信息) | |
3.2、坐席挂断呼叫
1.描述
业务系统通过发送该API将坐席的呼叫挂断
2.URL
3.消息格式
{
"authentication": {
"customer": "C2",
"digest": "ae62e11cab746436b64a26f4ed8e41a3",
"seq": "5271",
"timestamp": "1471918933001"
},
"param": {
"debug": "true",
"lang": "en_US"
},
"request": {
"seq": "",
"userData": "",
"agent": ""
}
}
4.参数说明
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
字段名 | 必填 | 说明 | 值说明 |
---|
seq | N | 消息序列号 | number |
userData | N | 用户回传数据 | string最长40的字符,如果超过40,将截断 |
agent | Y | 坐席工号 | number |
5. 响应格式
{
"result": { "error": "", "msg": "" },
"data": {
"seq": ""
"response": {
"seq": "",
"userData": "",
"result":{"error": ""},
"msg":"{\"errno\":\" \", \"msg\":\" \"}",
}
},
"logs": ""
}
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
6. 响应说明
logs域为日志域,如果开启了调试会携带相关调试信息
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | number|string |
msg | 请求返回的描述 | |
data域说明
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | number |
response | 对请求中每一个命令 | |
response字段:
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | 回传数据 |
userData | 用户回传数据 | string最长40的字符,如果超过40,将截断 |
result | 结果,通常的响应接口(error字段) | object |
msg | 请求返回的具体信息,包括errno(错误码)、msg(请求提示信息) | |
注:如果一个请求中携带了多个请求,则response域,将被替换为responses域,结果为response域的数组。
3.3、创建坐席外呼任务
1.描述
给指定坐席创建呼叫任务
2.URL
3.消息格式
{
"authentication": {
"customer": "C2",
"digest": "ae62e11cab746436b64a26f4ed8e41a3",
"seq": "5271",
"timestamp": "1471918933001"
},
"param": {
"debug": "true",
"lang": "en_US"
},
"request": {
"seq": "",
"userData": "",
"agent": "",
"taskName": "",
"callees": ["","","" ……],
"callers":[ "","","" …… ],
"mode": "",
"multiplier": ""
}
}
4.参数说明
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
字段名 | 必填 | 说明 | 值说明 |
---|
seq | N | 消息序列号 | number |
userData | N | 用户回传数据 | string最长40的字符,如果超过40,将截断 |
agent | Y | 坐席工号 | number |
taskName | N | 任务名称 | 给任务创建提供名称,不填或不传该字段系统会自动生成 |
callees | Y | 被叫号码列表 | array 最多1000个 |
callers | N | 主叫号码列表 | array 最多100个 |
mode | Y | 呼叫模式 | number(2|5) |
multiplier | N | 呼叫倍率 | number(0<value<5)|default:1 |
template | N | 短信模板名称 | string |
mode域说明:
填写2:呼叫任务会先呼叫客户,客户接通后再呼叫坐席;
填写5:呼叫会先呼叫坐席,再呼叫客户;
callers域说明:
如果mode域为5,callers域将不会被处理,呼叫过程中会根据呼叫设定选择主叫号码;
如果该字段,不填写,系统会根据已有的主叫设定通过坐席去匹配主叫号码或号码组;如果没有相关的主叫设定,系统将随便选择一个号码组,作为任务的主叫来源;(此时,如果系统中不存在呼叫号码组,该API会执行失败)
如果该字段填写主叫号码,系统会判断这些主叫号码是否是该客户的,或者有主叫号码处于不可用状态,该API将执行失败。
5.响应格式
{
"result": { "error": "", "msg": "" },
"data": {
"seq": ""
"response": {
"seq": "",
"userData": "",
"result":{"error": ""},
"data": {
"report": {
"total": "",
"error": "",
"repeat": ""
},
"taskID": "",
"taskName":””
}
}
},
"logs": ""
}
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
6.响应说明
logs域为日志域,如果开启了调试会携带相关调试信息
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | number|string |
msg | 请求返回的描述 | |
data域说明
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | number |
response | 对请求中每一个命令 | |
response字段:
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | 回传数据 |
userData | 用户回传数据 | 回传数据 |
result | 结果,通常的响应接口(error字段) | object |
taskID | 任务ID | 用于业务服务器记录,以后操作任务就要靠这个ID |
taskName | 任务名称 | |
report域说明: 号码导入结果汇报
字段名 | 说明 | 值说明 |
---|
total | 号码总数 | number |
error | 错误数 | number |
report | 重复数 | number |
注:如果一个请求中携带了多个请求,则response域,将被替换为responses域,结果为responses域的数组。
3.4、坐席外呼任务查询
1.描述
查询指定业务员是否有对应的外呼任务
2.URL
3.消息格式
{
"authentication": {
"customer": "C2",
"digest": "ae62e11cab746436b64a26f4ed8e41a3",
"seq": "5271",
"timestamp": "1471918933001"
},
"param": {
"debug": "true",
"lang": "en_US"
},
"request": {
"seq": "",
"userData": "",
"agent": ""
}
}
4.参数说明
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
字段名 | 必填 | 说明 | 值说明 |
---|
seq | N | 消息序列号 | number |
userData | N | 用户回传数据 | string最长40的字符,如果超过40,将截断 |
agent | Y | 坐席工号 | number |
taskName | N | 任务名称 | |
5.响应格式
{
"result": { "error": "", "msg": "" },
"data": {
"seq": ""
"response": {
"seq": "",
"userData": "",
"result":{"error": ""},
"taskID": [ ]
}
},
"logs": ""
}
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
6.响应说明
logs域为日志域,如果开启了调试会携带相关调试信息
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | number|string |
msg | 请求返回的描述 | |
data域说明
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | number |
response | 对请求中每一个命令 | |
response字段:
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | 回传数据 |
userData | 用户回传数据 | 回传数据 |
result | 结果,通常的响应接口(error字段) | object |
taskID | 任务ID | array |
注:如果一个请求中携带了多个请求,则response域,将被替换为responses域,结果为responses域的数组。
3.5、坐席外呼任务控制
1.描述
启动或停止指定呼叫任务
2.URL
3.消息格式
{
"authentication": {
"customer": "C2",
"digest": "ae62e11cab746436b64a26f4ed8e41a3",
"seq": "5271",
"timestamp": "1471918933001"
},
"param": {
"debug": "true",
"lang": "en_US"
},
"request": {
"seq": "",
"userData": "",
"taskID": "",
"action": "",
}
}
4.参数说明
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
seq | N | 消息序列号 | number |
---|
userData | N | 用户回传数据 | string最长40的字符,如果超过40,将截断 |
taskID | N | 任务ID | 任务ID 或名称必传一个 |
taskName | N | 任务名称 | 任务ID 或名称必传一个 |
action | Y | 控制选项 | start 启动任务 |
5.响应格式
{
"result": { "error": "", "msg": "" },
"data": {
"seq": ""
"response": {
"seq": "",
"userData": "",
"result": { "error": ""},
"data": "",
}
},
"logs": "",
}
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
6.响应说明
logs域为日志域,如果开启了调试会携带相关调试信息
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | number|string |
msg | 请求返回的描述 | |
data域说明
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | number |
response | 对请求中每一个命令 | |
response字段:
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | 回传数据 |
userData | 用户回传数据 | string最长40的字符,如果超过40,将截断 |
result | 结果,通常的响应接口(error字段) | object |
msg | 请求返回的具体信息,包括errno(错误码)、msg(请求提示信息) | |
注:如果一个请求中携带了多个请求,则response域,将被替换为responses域,结果为response域的数组。
3.6、创建指定班组的外呼任务
1. 描述
创建指定班组的外呼任务
2. URL
3.消息格式
{
"authentication":{
"customer":"C22",
"timestamp":"1565832904503",
"seq":"99060",
"digest":"b30d8eb97a765ab671867efaaae4f35b"
},
"param":{
"debug":"true",
"lang":"en_US"
},
"request":{
"seq":"",
"userData":"",
"taskName":"",
"mode":"",
"multiplier":"",
"agentGroup":"",
"CIDGroup":"",
"templateID":"",
"callees":""
}
}
4. 参数说明
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
字段名 | 必填 | 说明 | 值说明 |
---|
seq | N | 消息序列号 | number |
userData | N | 用户数据 | ** ** |
taskName | N | 任务名称 | 给任务创建提供名称,不填或不 |
mode | N | 任务模式 | number(2|5) 默认为2 |
multiplier | N | 呼叫倍率 | number(0<value<5)|default:1 |
agentGroup | N | 班组ID | ** ** |
CIDGroup | N | 主叫分组ID | ** ** |
templateID | N | 短信模板ID | ** ** |
callees | Y | 被叫号码列表 | array 最多 1000 个 |
5. 响应格式
{
"result": {
"error": 0,
"msg": "成功"
},
"data": {
"seq": "",
"response": {
"seq": "",
"userData": "",
"result": {
"error": ""
},
"data": {
"report": {
"total": "",
"error": "",
"repeat": ""
},
"taskID": "",
"taskName": ""
}
},
"logs": "",
}
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
6. 响应说明
logs域为日志域,如果开启了调试会携带相关调试信息
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | number|string |
msg | 请求返回的描述 | |
data域说明
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | number |
response | 对请求中每一个命令 | |
response字段:
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | 回传数据 |
userData | 用户回传数据 | 回传数据 |
result | 结果,通常的响应接口(error字段) | object |
taskID | 任务ID | 用于业务服务器记录,以后操作任务就要靠这个ID |
taskName | 任务名称 | |
report域说明: 号码导入结果汇报
字段名 | 说明 | 值说明 |
---|
total | 号码总数 | number |
error | 错误数 | number |
report | 重复数 | number |
3.7、外呼任务追加号码
1.描述
给指定的呼叫任务追加号码
2.URL
3.消息格式
{
"authentication": {
"customer": "C2",
"digest": "ae62e11cab746436b64a26f4ed8e41a3",
"seq": "5271",
"timestamp": "1471918933001"
},
"param": {
"debug": "true",
"lang": "en_US"
},
"request": {
"seq": "",
"userData": "",
"taskID": "",
"agent": "",
"callees": ["", ….]
}
}
4.参数说明
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
字段名 | 必填 | 值说明 | 字段名 |
---|
seq | N | 消息序列号 | number |
userData | N | 用户回传数据 | string最长40的字符,如果超过40,将截断 |
taskID | N | 任务ID | 任务ID 或名称必传一个 |
taskName | N | 任务名称 | 任务ID 或名称必传一个 |
agent | Y | 坐席工号 | number |
callees | Y | 被叫号码 | array 最多1000个 |
5.响应格式
{
"result": { "error": "", "msg": "" },
"data": {
"seq": ""
"response": {
"seq": "",
"userData": "",
"result":{"error": ""},
"report": {
"total": "",
"error": "",
"repeat": "",
"succ": ""
},
"taskID": ""
}
},
"logs": ""
}
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
6.响应说明
logs域为日志域,如果开启了调试会携带相关调试信息
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | number|string |
msg | 请求返回的描述 | |
data域说明
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | number |
response | 对请求中每一个命令 | |
response字段:
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | 回传数据 |
userData | 用户回传数据 | 回传数据 |
result | 结果,通常的响应接口(error字段) | object |
taskID | 任务ID | 用于任务业务记录标识 |
taskName | 任务名称 | |
report域说明: 号码导入结果汇报
字段名 | 说明 | 值说明 |
---|
total | 号码总数 | number |
error | 错误数 | number |
report | 重复数 | number |
succ | 成功数 | number |
注:如果一个请求中携带了多个请求,则response域,将被替换为responses域,结果为responses域的数组。
四、推送通话话单
4.1、呼叫结束后推送话单
1. 描述
如果客户请求发起了呼叫,在呼叫结束之后将会给对端服务器推送呼叫过程中的相关数据。
客户服务器可以通过请求中回传的userData(见【一、说明】),区分是哪个请求的通知。
2. URL
由用户提供并配置到系统中
3. 消息格式
{
"authentication": {
"customer": "C2",
"digest": "ae62e11cab746436b64a26f4ed8e41a3",
"seq": "5271",
"timestamp": "1471918933001"
},
"notify": {
"callerNum": "",
"callerNum": "",
"ringTime": "",
"answerTime": "",
"byeTime": "",
"staffNo": "",
"group1": "",
"group2": "",
"callee": "",
"caller": "",
"taskID": "",
"taskName": "",
"recordFile": "",
"durantion": "",
"service": "",
"session": "",
"seq": "",
"userData": "",
"timeLength": ""
}
}
4. 消息说明
notify域说明:
字段名 | 说明 | 值说明 |
---|
type | billing | |
startTime | 呼叫开始时间 | 2020-01-09 09:41:00 |
ringTime | 振铃开始时间 | 2020-01-09 09:41:00 |
answerTime | 呼叫接通时间 | 2020-01-09 09:41:00 |
byeTime | 呼叫结束时间 | 2020-01-09 09:41:00 |
staffNo | 坐席工号 | |
group1 | 班组1 | |
group2 | 班组2 | |
callee | 被叫号码 | |
caller | 主叫号码 | |
taskID | 任务Id | |
taskName | 任务名称 | |
recordFile | 录音文件 | 如果用户开启了号码隐藏,文件路径会用一段密文字符串推送 |
durantion | 录音文件时长 | |
service | 业务类型 | 1 手拨呼叫 |
session | 通话表示 | 回传数据 |
seq | 消息序列号 | |
userData | 用户回传数据 | |
timeLength | 通话时长 | |
5. 响应格式
{
"result": { "error": "", "msg": "" }
}
6. 响应说明
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | int |
msg | 错误描述 | |
4.2、通知呼叫接通
1.描述
如果客户的请求触发系统发起了呼叫,在呼叫接通时将会给对端服务器推送相关数据。
客户服务器可以通过请求中的回传userData,区分是哪个请求的通知。
2.URL
由用户提供并配置到系统中
3.消息格式
{
"authentication":{
"customer":"C2",
"digest":"ae62e11cab746436b64a26f4ed8e41a3",
"seq":"5271",
"timestamp":"1471918933001"
},
"notify":{
"type":"callstart",
"customer":"",
"agent":"",
"number":"",
"call_type":"",
"seq":"",
"userData":""
}
}
4.消息说明
notify域说明:
字段名 | 说明 | 值说明 |
---|
seq | 命令序列号 | 回传数据 |
userData | 用户回传数据 | 回传数据 |
customer | 对接客户 | |
agent | 坐席工号 | |
number | 号码 | |
call_type | 呼叫类型 | 1 手拨呼叫 |
type | callstart | |
5.响应格式
{
"result": { "error": "", "msg": "" }
}
6.响应说明
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | int |
msg | 错误描述 | |
4.3、通知呼叫结束
1.描述
如果客户请求发起了呼叫,在呼叫结束之后将会给对端服务器推送呼叫过程中的相关数据。
客户服务器可以通过请求中回传的回传userData,区分是哪个请求的通知。
2.URL
由用户提供并配置到系统中
3.消息格式
{
"authentication": {
"customer": "C2",
"digest": "ae62e11cab746436b64a26f4ed8e41a3",
"seq": "5271",
"timestamp": "1471918933001"
},
"notify": {
"type":"callend",
"customer": "",
"agent": "",
"number": "",
"call_type": "",
"seq": "",
"userData": ""
}
}
4.消息说明
notify域说明:
字段名 | 说明 | 值说明 |
---|
seq | 命令序列号 | 回传数据 |
userData | 用户回传数据 | 回传数据 |
customer | 对接客户 | |
agent | 坐席工号 | |
number | 号码 | |
call_type | 呼叫类型 | 1 手拨呼叫 |
type | callend | |
5.响应格式
{
"result": { "error": "", "msg": "" }
}
6.响应说明
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | int |
msg | 错误描述 | |
4.4、通知呼入
1. 描述
客户发起请求后,呼叫坐席侧时通知。
2. URL
由用户提供并配置到系统中
3. 消息格式
{
"authentication": {
"customer": "C2",
"digest": "ae62e11cab746436b64a26f4ed8e41a3",
"seq": "5271",
"timestamp": "1471918933001"
},
"notify": {
"type":"callin",
"customer": "",
"agent": "",
"number": "",
"call_type": "",
"seq": "",
"userData": ""
}
}
4. 消息说明
notify域说明:
字段名 | 说明 | 值说明 |
---|
seq | 命令序列号 | 回传数据 |
userData | 用户回传数据 | 回传数据 |
type | callin | |
customer | 对接客户 | |
agent | 坐席工号 | |
number | 号码 | |
call_type | 呼叫类型 | 1 手拨呼叫 |
5. 响应格式
{
"result": { "error": "", "msg": "" }
}
6. 响应说明
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | int |
msg | 错误描述 | |
4.5、通知呼出
1. 描述
客户发其请求后,坐席侧呼出时通知。
2. URL
由用户提供并配置到系统中
3. 消息格式
{
"authentication": {
"customer": "C2",
"digest": "ae62e11cab746436b64a26f4ed8e41a3",
"seq": "5271",
"timestamp": "1471918933001"
},
"notify": {
"type":"callout",
"customer": "",
"agent": "",
"number": "",
"call_type": "",
"seq": "",
"userData": ""
}
}
4. 消息说明
notify域说明:
字段名 | 说明 | 值说明 |
---|
seq | 命令序列号 | |
userData | 用户回传数据 | |
type | callout | |
agent | 坐席工号 | |
customer | 对接客户 | |
number | 号码 | |
call_type | 呼叫类型 | 1 手拨呼叫 |
5. 响应格式
{
"result": { "error": "", "msg": "" }
}
6. 响应说明
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | int |
msg | 错误描述 | |
4.6、推送任务状态
1. 描述
当任务状态发生变化时,系统会向用户推送状态和其他相关信息。
2. URL
由用户提供并配置到系统中
3. 消息格式
{
"authentication": {
"customer": "C2",
"digest": "ae62e11cab746436b64a26f4ed8e41a3",
"seq": "5271",
"timestamp": "1471918933001"
},
"notify": {
"type": "taskinfo",
"taskID": "",
"taskName": "",
"calleeAmount": "",
"remainAmount": "",
"status": "",
"seq": "",
"userData": ""
}
}
4. 消息说明
notify域说明:
字段名 | 说明 | 值说明 |
---|
seq | 命令序列号 | 回传数据 |
userData | 用户回传数据 | 回传数据 |
type | taskinfo | |
taskID | 任务的ID | |
taskName | 任务名称 | |
calleeAmount | 任务号码总数 | |
remainAmount | 任务剩余号数 | |
status | 任务状态 | 0进行中,1暂停,2结束 |
purpose | 对象类型 | 0表示给班组的任务 |
group | 班组 | 对应purpose为0 |
staffNo | 坐席工号 | 对应purpose为1 |
5. 响应格式
{
"result": { "error": "", "msg": "" }
}
6. 响应说明
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | int |
msg | 错误描述 | |
五、通话话单主动查询
5.1、请求获取话单
1. 描述
获取话单相关信息
2. URL
3. 消息格式
{
"authentication": {
"customer": "C2",
"digest": "ae62e11cab746436b64a26f4ed8e41a3",
"seq": "5271",
"timestamp": "1471918933001"
},
"param": {
"debug": "true",
"lang": "en_US"
},
"request": {
"seq": "",
"userData": "",
"taskID": "",
"agent": ["", .....],
"serviceType":"",
"startTime":"",
"endTime":"",
"caller":"",
"callee":"",
"timeLengthMin":"",
"timeLengthMax":"",
"startKey":""
}
}
4. 参数说明
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
字段名 | 必填 | 说明 | 值说明 |
---|
seq | N | 消息序列号 | number |
userData | N | 用户回传数据 | string最长40的字符,如果超过40,将截断 |
taskID | N | 任务ID | |
agent | N | 坐席工号 | array |
serviceType | N | 业务类型 | 1 手拨呼叫 |
startTime | N | 开始时间(这两个时间都不填默认查当天话单数据) | 如 |
endTime | N | 结束时间(这两个时间都不填默认查当天话单数据) | |
caller | N | 主叫号码 | |
callee | N | 被叫号码 | |
timeLengthMin | N | 最小通话时间 | 通话时长过滤条件 |
timeLengthMax | N | 最大通话时间 | 通话时长过滤条件 |
startKey | N | 查询起始 Id | Int |
说明:startTime和endTime过滤的是呼叫开始时间的范围
5. 响应格式
{
"result": {"error": "","msg": ""},
"data": {
"seq": "",
"response": {
"seq": "",
"userData": "",
"result": {"error": ""},
"total": "",
"cdr": [
{
"key": "",
"agent": "",
"serviceType": "",
"startTime": "",
"ringTime": "",
"answerTime": "",
"byeTime": "",
"caller": "",
"callee": "",
"timeLength": "",
"fee": "" ,
"releaseCause": "",
"session": "",
"userData": "",
"taskID": "",
"filename": "",
"result": "",
},
....................
]
}
},
"logs": ""
}
6. 响应说明
logs域为日志域,如果开启了调试会携带相关调试信息
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | number|string |
msg | 请求返回的描述 | |
data域说明
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | number |
response | 对请求中每一个命令 | |
response域说明:
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | 回传数据 |
userData | 用户回传数据 | 回传数据 |
result | 结果,通常的响应接口(error字段) | object |
total | 话单条数 | |
cdr | 话单数据 | |
cdr域说明:
字段名 | 说明 | 值说明 |
---|
key | 序列号 | 话单ID |
agent | 坐席工号 | |
serviceType | 业务类型 | 1 手拨呼叫、2 呼入呼叫、3 内部呼叫、4 自动外呼、5 点拨呼叫、7 录音业务 |
answerTime | 呼叫接通时间 | |
startTime | 呼叫开始时间 | |
ringTime | 振铃开始时间 | |
byeTime | 呼叫结束时间 | |
caller | 主叫号码 | |
callee | 被叫号码 | |
timeLength | 通话时长 | |
fee | 费用 | |
releaseCause | 挂断原因 | 标准SIP错误码 |
session | 话单唯一标识 | |
userData | 用户话单回传数据 | |
taskID | 任务ID | |
filename | 录音文件 | |
result | 呼叫结果 | 1 接通 |
5.2、下载或者试听录音。
当客户通过话单接口获取到录音文件路径,便可以下载或者试听录音。
根据用户是否开启隐藏号码,录音文件路径分为明文和密文两种模式(未开启隐藏为明文,开启隐藏为密文),url地址的结构有所不同
明文:
密文:
其中 recordFile为接口获取的录音文件地址。
六、坐席相关
6.1、查询所有坐席的状态
1. 描述
获取当前客户所有坐席的状态
2. URL
3. 消息格式
{
"authentication":{
"customer":"C22",
"timestamp":"1565832904503",
"seq":"99060",
"digest":"b30d8eb97a765ab671867efaaae4f35b"
},
"param":{
"debug":"true",
"lang":"en_US"
},
"request":{}
}
4. 参数说明
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
字段名 | 必填 | 说明 | 值说明 |
---|
seq | N | 命令序列号 | number |
userData | N | 用户数据 | |
5. 响应格式
{
"result": {
"error": 0,
"msg": "成功"
},
"data": {
"seq": "99060",
"response": {
"seq": null,
"userData": null,
"result": {
"error": 0
},
"agentStatus":[
{
"agent": "",
"name": "",
"workStatus": "",
"serverStatus": ""
},
{},
......
]
}
},
"logs": "",
}
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
6. 响应说明
logs域未日志域,如果开启了调试会携带相关调试信息
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | number|string |
msg | 请求返回的描述 | |
data域说明
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | number |
response | 响应数据 | |
agentStatus | 所有坐席的状态 | |
agentStatus域说明:
字段名 | 说明 | 值说明 |
---|
agent | 坐席工号 | string |
name | 坐席姓名 | string |
workStatus | 工作状态 | OFFLINE离线 |
serverStatus | 业务状态 | IDLE空闲 |
6.2、获取班组列表信息
1. 描述
获取班组列表信息
2. URL
3.消息格式
{
"authentication":{
"customer":"C22",
"timestamp":"1565832904503",
"seq":"99060",
"digest":"b30d8eb97a765ab671867efaaae4f35b"
},
"param":{
"debug":"true",
"lang":"en_US"
},
"request":{
"seq":"",
"userData":""
}
}
4. 参数说明
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
字段名 | 必填 | 说明 | 值说明 |
---|
seq | N | 消息序列号 | number |
userData | N | 用户数据 | ** ** |
5. 响应格式
{
"result": {
"error": 0,
"msg": "成功"
},
"data": {
"seq": "",
"response": {
"seq": "",
"userData": "",
"result": {
"error": ""
},
"data": [
{
"id": "",
"name": ""
},
{
"id": "",
"name": ""
},
......
]
},
"logs": "",
}
}
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
6. 响应说明
logs域为日志域,如果开启了调试会携带相关调试信息
result域说明:
字段名 | 说明 | 值说明 |
---|
error | 错误码 | number|string |
msg | 请求返回的描述 | |
data域说明
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | number |
response | 对请求中每一个命令 | |
response字段:
字段名 | 说明 | 值说明 |
---|
seq | 消息序列号 | 回传数据 |
userData | 用户回传数据 | 回传数据 |
result | 结果,通常的响应接口(error字段) | object |
data | 班组信息 | |
data域说明:
字段名 | 说明 | 值说明 |
---|
id | 班组id | Sting |
name | 班组名称 | Sting |
没有更多了