更新时间:2025-04-25 16:53:15
URL推送:需要配置接收URL地址
不推送:不接收推送的消息
请求消息体中必须携带authentication字段,该字段包括如下内容:
| 名称 | 必填 | 说明 | 值说明 |
|---|---|---|---|
| customer | Y | 客户名称,客户在申请API时,会生产。 | 大写C加数字,如C2 |
| timestamp | Y | 时间戳 | 毫秒级别时间戳 |
| seq | Y | 请求序列号,保证一段时间内序列号不重复即可 | number(随机字符串) |
| digest | Y | 认证域 | 对接账户、对接密码、消息序列号、时间戳,md5 加密后的数据 |
客户在申请开通API时,运营创建客户API相关数据,包括对接账户,对接密码
对接账户、对接密码、消息序列号、时间戳(前两个数据由运营商提供)
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: { …… } }
客户需要创建好接收推送消息的url 地址
1.[http://ccapi.innopaas.com/openapi/V2.0.6/ApiName]
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
一般情况响应都会如下格式:
复制成功{ "data": { "seq": "", "response": { "seq": "", "userData": "", "result": { "error": "", "msg": "" } } }, "logs": "", "result": { "error": "", "msg": "" } }
userData说明:用户可以在userData中携带一些用户自定义的数据。如对端系统是多用户的,客户把用户的唯一标识传过来。我们回传回去,业务系统就可以知道是哪个客户的。再如与坐席相关的呼叫,用户传过来的数据就是坐席的唯一标识。
result域描述请求执行情况,logs域携带日志信息,data域携带每个命令执行情况;
根据格式导入客户资料
http://ccapi.innopaas.com/openapi/V2.0.6/CRMimport
复制成功{ "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": "", .... }, ..... ] } }
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获取
复制成功{ "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标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
logs域未日志域,如果开启了调试会携带相关调试信息
result域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| error | 错误码 | number|string |
| msg | 请求返回的描述 |
data域说明
| 字段名 | 说明 | 值说明 |
|---|---|---|
| seq | 消息序列号 | number |
| response | 响应数据 |
report域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| total | 客户资料总数 | number |
| error | 导入错误数 | |
| repeat | 导入重复数 | |
| ErrorNumList | 导入错误数据 | Array |
| RepeatNumList | 导入重复数据 | Array |
repeat说明:重复的数据会被剔重,判断重复的标准是以联系号码number1为标识索引剔重
ErrorNumList说明:导入错误的数据会被返回
repeatNumList说明:导入重复的数据会被返回
在导入客户资料前,获取客户资料的数据导入格式
http://ccapi.innopaas.com/openapi/V2.0.6/getCRMTemplate
复制成功{ "authentication": { "customer": "C2", "digest": "", "seq": "5271", "timestamp": "1471918933001" }, "param": { "debug": "true", "lang": "en_US" }, "request": {} }
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
复制成功{ "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标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
logs域未日志域,如果开启了调试会携带相关调试信息
result域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| error | 错误码 | number|string |
| msg | 请求返回的描述 |
data域说明
| 字段名 | 说明 | 值说明 |
|---|---|---|
| seq | 消息序列号 | number |
| response | 对请求中每一个命令 |
template域说明:
Template数据表示的是系统客户资料的每个字段与后台添加数据时数据key的映射关系,其中name,sex,number1,number2为初始的固定字段; reserve_x(1<=x<=40)表示自定义字段
业务系统通过发送该API将发起呼叫,先呼叫触发该API的坐席,再呼叫指定的被叫号码。
http://ccapi.innopaas.com/openapi/V2.0.6/CallNumber
复制成功{ "authentication": { "customer": "C2", "digest": "ae62e11cab746436b64a26f4ed8e41a3", "seq": "5271", "timestamp": "1471918933001" }, "param": { "debug": "true", "lang": "en_US" }, "request": { "seq": "123456", "userData": "ASD001", "agent": "", "caller": "", "callee": "", "callType": "" } }
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
| 字段名 | 必填 | 说明 | 值说明 |
|---|---|---|---|
| seq | N | 消息序列号 | number |
| userData | N | 用户回传数据 | string最长40的字符,如果超过40,将截断 |
| agent | Y | 坐席工号 | number |
| caller | N | 主叫号码,如果填了,就用改参数传的号码作为主叫,如果不填则使用呼叫系统中已有的主叫号码 | |
| callee | Y | 被叫号码,需要呼叫的号码 | number |
| callType | N | 指定坐席绑定的呼叫类型, | 0 sip 账户 |
复制成功{ "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": "成功" } } } } }
logs域为日志域,如果开启了调试会携带相关调试信息
result域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| error | 错误码 | number|string |
| msg | 请求返回的描述 |
data域说明
| 字段名 | 说明 | 值说明 |
|---|---|---|
| seq | 消息序列号 | number |
| response | 对请求中每一个命令 |
response字段:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| seq | 消息序列号 | 回传数据 |
| userData | 用户回传数据 | string最长40的字符,如果超过40,将截断 |
| callSession | 通话标识 | String 话单推送和查询可以对应使用 |
| result | 结果,通常的响应接口(error字段) | object |
| msg | 请求返回的具体信息,包括errno(错误码)、msg(请求提示信息) |
业务系统通过发送该API将坐席的呼叫挂断
http://ccapi.innopaas.com/openapi/V2.0.6/HangupCall
复制成功{ "authentication": { "customer": "C2", "digest": "ae62e11cab746436b64a26f4ed8e41a3", "seq": "5271", "timestamp": "1471918933001" }, "param": { "debug": "true", "lang": "en_US" }, "request": { "seq": "", "userData": "", "agent": "" } }
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
| 字段名 | 必填 | 说明 | 值说明 |
|---|---|---|---|
| seq | N | 消息序列号 | number |
| userData | N | 用户回传数据 | string最长40的字符,如果超过40,将截断 |
| agent | Y | 坐席工号 | number |
复制成功{ "result": { "error": "", "msg": "" }, "data": { "seq": "" "response": { "seq": "", "userData": "", "result":{"error": ""}, "msg":"{\"errno\":\" \", \"msg\":\" \"}", } }, "logs": "" }
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
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域的数组。
给指定坐席创建呼叫任务
http://ccapi.innopaas.com/openapi/V2.0.6/CallTaskCreate
复制成功{ "authentication": { "customer": "C2", "digest": "ae62e11cab746436b64a26f4ed8e41a3", "seq": "5271", "timestamp": "1471918933001" }, "param": { "debug": "true", "lang": "en_US" }, "request": { "seq": "", "userData": "", "agent": "", "taskName": "", "callees": ["","","" ……], "callers":[ "","","" …… ], "mode": "", "multiplier": "" } }
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将执行失败。
复制成功{ "result": { "error": "", "msg": "" }, "data": { "seq": "" "response": { "seq": "", "userData": "", "result":{"error": ""}, "data": { "report": { "total": "", "error": "", "repeat": "" }, "taskID": "", "taskName":”” } } }, "logs": "" }
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
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域的数组。
查询指定业务员是否有对应的外呼任务
http://ccapi.innopaas.com/openapi/V2.0.6/CallTaskQuery
复制成功{ "authentication": { "customer": "C2", "digest": "ae62e11cab746436b64a26f4ed8e41a3", "seq": "5271", "timestamp": "1471918933001" }, "param": { "debug": "true", "lang": "en_US" }, "request": { "seq": "", "userData": "", "agent": "" } }
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
| 字段名 | 必填 | 说明 | 值说明 |
|---|---|---|---|
| seq | N | 消息序列号 | number |
| userData | N | 用户回传数据 | string最长40的字符,如果超过40,将截断 |
| agent | Y | 坐席工号 | number |
| taskName | N | 任务名称 |
复制成功{ "result": { "error": "", "msg": "" }, "data": { "seq": "" "response": { "seq": "", "userData": "", "result":{"error": ""}, "taskID": [ ] } }, "logs": "" }
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
logs域为日志域,如果开启了调试会携带相关调试信息
result域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| error | 错误码 | number|string |
| msg | 请求返回的描述 |
data域说明
| 字段名 | 说明 | 值说明 |
|---|---|---|
| seq | 消息序列号 | number |
| response | 对请求中每一个命令 |
response字段:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| seq | 消息序列号 | 回传数据 |
| userData | 用户回传数据 | 回传数据 |
| result | 结果,通常的响应接口(error字段) | object |
| taskID | 任务ID | array |
注:如果一个请求中携带了多个请求,则response域,将被替换为responses域,结果为responses域的数组。
启动或停止指定呼叫任务
http://ccapi.innopaas.com/openapi/V2.0.6/CallTaskControl
复制成功{ "authentication": { "customer": "C2", "digest": "ae62e11cab746436b64a26f4ed8e41a3", "seq": "5271", "timestamp": "1471918933001" }, "param": { "debug": "true", "lang": "en_US" }, "request": { "seq": "", "userData": "", "taskID": "", "action": "", } }
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
| seq | N | 消息序列号 | number |
|---|---|---|---|
| userData | N | 用户回传数据 | string最长40的字符,如果超过40,将截断 |
| taskID | N | 任务ID | 任务ID 或名称必传一个 |
| taskName | N | 任务名称 | 任务ID 或名称必传一个 |
| action | Y | 控制选项 | start 启动任务 |
复制成功{ "result": { "error": "", "msg": "" }, "data": { "seq": "" "response": { "seq": "", "userData": "", "result": { "error": ""}, "data": "", } }, "logs": "", }
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
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域的数组。
创建指定班组的外呼任务
http://ccapi.innopaas.com/openapi/V2.0.6/CallTaskCreate/callTaskCreateByGroup
复制成功{ "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":"" } }
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 个 |
复制成功{ "result": { "error": 0, "msg": "成功" }, "data": { "seq": "", "response": { "seq": "", "userData": "", "result": { "error": "" }, "data": { "report": { "total": "", "error": "", "repeat": "" }, "taskID": "", "taskName": "" } }, "logs": "", }
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
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 |
给指定的呼叫任务追加号码
http://ccapi.innopaas.com/openapi/V2.0.6/CallTaskAddNumbers
复制成功{ "authentication": { "customer": "C2", "digest": "ae62e11cab746436b64a26f4ed8e41a3", "seq": "5271", "timestamp": "1471918933001" }, "param": { "debug": "true", "lang": "en_US" }, "request": { "seq": "", "userData": "", "taskID": "", "agent": "", "callees": ["", ….] } }
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个 |
复制成功{ "result": { "error": "", "msg": "" }, "data": { "seq": "" "response": { "seq": "", "userData": "", "result":{"error": ""}, "report": { "total": "", "error": "", "repeat": "", "succ": "" }, "taskID": "" } }, "logs": "" }
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
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域的数组。
如果客户请求发起了呼叫,在呼叫结束之后将会给对端服务器推送呼叫过程中的相关数据。
客户服务器可以通过请求中回传的userData(见【一、说明】),区分是哪个请求的通知。
由用户提供并配置到系统中
复制成功{ "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": "" } }
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 | 通话时长 |
复制成功{ "result": { "error": "", "msg": "" } }
result域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| error | 错误码 | int |
| msg | 错误描述 |
如果客户的请求触发系统发起了呼叫,在呼叫接通时将会给对端服务器推送相关数据。
客户服务器可以通过请求中的回传userData,区分是哪个请求的通知。
由用户提供并配置到系统中
复制成功{ "authentication":{ "customer":"C2", "digest":"ae62e11cab746436b64a26f4ed8e41a3", "seq":"5271", "timestamp":"1471918933001" }, "notify":{ "type":"callstart", "customer":"", "agent":"", "number":"", "call_type":"", "seq":"", "userData":"" } }
notify域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| seq | 命令序列号 | 回传数据 |
| userData | 用户回传数据 | 回传数据 |
| customer | 对接客户 | |
| agent | 坐席工号 | |
| number | 号码 | |
| call_type | 呼叫类型 | 1 手拨呼叫 |
| type | callstart |
复制成功{ "result": { "error": "", "msg": "" } }
result域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| error | 错误码 | int |
| msg | 错误描述 |
如果客户请求发起了呼叫,在呼叫结束之后将会给对端服务器推送呼叫过程中的相关数据。
客户服务器可以通过请求中回传的回传userData,区分是哪个请求的通知。
由用户提供并配置到系统中
复制成功{ "authentication": { "customer": "C2", "digest": "ae62e11cab746436b64a26f4ed8e41a3", "seq": "5271", "timestamp": "1471918933001" }, "notify": { "type":"callend", "customer": "", "agent": "", "number": "", "call_type": "", "seq": "", "userData": "" } }
notify域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| seq | 命令序列号 | 回传数据 |
| userData | 用户回传数据 | 回传数据 |
| customer | 对接客户 | |
| agent | 坐席工号 | |
| number | 号码 | |
| call_type | 呼叫类型 | 1 手拨呼叫 |
| type | callend |
复制成功{ "result": { "error": "", "msg": "" } }
result域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| error | 错误码 | int |
| msg | 错误描述 |
客户发起请求后,呼叫坐席侧时通知。
由用户提供并配置到系统中
复制成功{ "authentication": { "customer": "C2", "digest": "ae62e11cab746436b64a26f4ed8e41a3", "seq": "5271", "timestamp": "1471918933001" }, "notify": { "type":"callin", "customer": "", "agent": "", "number": "", "call_type": "", "seq": "", "userData": "" } }
notify域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| seq | 命令序列号 | 回传数据 |
| userData | 用户回传数据 | 回传数据 |
| type | callin | |
| customer | 对接客户 | |
| agent | 坐席工号 | |
| number | 号码 | |
| call_type | 呼叫类型 | 1 手拨呼叫 |
复制成功{ "result": { "error": "", "msg": "" } }
result域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| error | 错误码 | int |
| msg | 错误描述 |
客户发其请求后,坐席侧呼出时通知。
由用户提供并配置到系统中
复制成功{ "authentication": { "customer": "C2", "digest": "ae62e11cab746436b64a26f4ed8e41a3", "seq": "5271", "timestamp": "1471918933001" }, "notify": { "type":"callout", "customer": "", "agent": "", "number": "", "call_type": "", "seq": "", "userData": "" } }
notify域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| seq | 命令序列号 | |
| userData | 用户回传数据 | |
| type | callout | |
| agent | 坐席工号 | |
| customer | 对接客户 | |
| number | 号码 | |
| call_type | 呼叫类型 | 1 手拨呼叫 |
复制成功{ "result": { "error": "", "msg": "" } }
result域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| error | 错误码 | int |
| msg | 错误描述 |
当任务状态发生变化时,系统会向用户推送状态和其他相关信息。
由用户提供并配置到系统中
复制成功{ "authentication": { "customer": "C2", "digest": "ae62e11cab746436b64a26f4ed8e41a3", "seq": "5271", "timestamp": "1471918933001" }, "notify": { "type": "taskinfo", "taskID": "", "taskName": "", "calleeAmount": "", "remainAmount": "", "status": "", "seq": "", "userData": "" } }
notify域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| seq | 命令序列号 | 回传数据 |
| userData | 用户回传数据 | 回传数据 |
| type | taskinfo | |
| taskID | 任务的ID | |
| taskName | 任务名称 | |
| calleeAmount | 任务号码总数 | |
| remainAmount | 任务剩余号数 | |
| status | 任务状态 | 0进行中,1暂停,2结束 |
| purpose | 对象类型 | 0表示给班组的任务 |
| group | 班组 | 对应purpose为0 |
| staffNo | 坐席工号 | 对应purpose为1 |
复制成功{ "result": { "error": "", "msg": "" } }
result域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| error | 错误码 | int |
| msg | 错误描述 |
获取话单相关信息
http://ccapi.innopaas.com/openapi/V2.0.6/getCdrList
复制成功{ "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":"" } }
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过滤的是呼叫开始时间的范围
复制成功{ "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": "" }
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 接通 |
当客户通过话单接口获取到录音文件路径,便可以下载或者试听录音。
根据用户是否开启隐藏号码,录音文件路径分为明文和密文两种模式(未开启隐藏为明文,开启隐藏为密文),url地址的结构有所不同
明文:
密文:
其中 recordFile为接口获取的录音文件地址。
获取当前客户所有坐席的状态
http://ccapi.innopaas.com/openapi/V2.0.6/getAllAgentStatus
复制成功{ "authentication":{ "customer":"C22", "timestamp":"1565832904503", "seq":"99060", "digest":"b30d8eb97a765ab671867efaaae4f35b" }, "param":{ "debug":"true", "lang":"en_US" }, "request":{} }
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
| 字段名 | 必填 | 说明 | 值说明 |
|---|---|---|---|
| seq | N | 命令序列号 | number |
| userData | N | 用户数据 |
复制成功{ "result": { "error": 0, "msg": "成功" }, "data": { "seq": "99060", "response": { "seq": null, "userData": null, "result": { "error": 0 }, "agentStatus":[ { "agent": "", "name": "", "workStatus": "", "serverStatus": "" }, {}, ...... ] } }, "logs": "", }
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
logs域未日志域,如果开启了调试会携带相关调试信息
result域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| error | 错误码 | number|string |
| msg | 请求返回的描述 |
data域说明
| 字段名 | 说明 | 值说明 |
|---|---|---|
| seq | 消息序列号 | number |
| response | 响应数据 | |
| agentStatus | 所有坐席的状态 |
agentStatus域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| agent | 坐席工号 | string |
| name | 坐席姓名 | string |
| workStatus | 工作状态 | OFFLINE离线 |
| serverStatus | 业务状态 | IDLE空闲 |
获取班组列表信息
http://ccapi.innopaas.com/openapi/V2.0.6/CallTaskCreate/getAgentGroupList
复制成功{ "authentication":{ "customer":"C22", "timestamp":"1565832904503", "seq":"99060", "digest":"b30d8eb97a765ab671867efaaae4f35b" }, "param":{ "debug":"true", "lang":"en_US" }, "request":{ "seq":"", "userData":"" } }
authentication域说明:见【一、说明】
param域说明:见【一、说明】
request域说明:
| 字段名 | 必填 | 说明 | 值说明 |
|---|---|---|---|
| seq | N | 消息序列号 | number |
| userData | N | 用户数据 | ** ** |
复制成功{ "result": { "error": 0, "msg": "成功" }, "data": { "seq": "", "response": { "seq": "", "userData": "", "result": { "error": "" }, "data": [ { "id": "", "name": "" }, { "id": "", "name": "" }, ...... ] }, "logs": "", } }
注:Error为0标识成功,但只能标识系统已经收到该请求,并且已经准备开始发起呼叫了。
logs域为日志域,如果开启了调试会携带相关调试信息
result域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| error | 错误码 | number|string |
| msg | 请求返回的描述 |
data域说明
| 字段名 | 说明 | 值说明 |
|---|---|---|
| seq | 消息序列号 | number |
| response | 对请求中每一个命令 |
response字段:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| seq | 消息序列号 | 回传数据 |
| userData | 用户回传数据 | 回传数据 |
| result | 结果,通常的响应接口(error字段) | object |
| data | 班组信息 |
data域说明:
| 字段名 | 说明 | 值说明 |
|---|---|---|
| id | 班组id | Sting |
| name | 班组名称 | Sting |