外呼结果回调接口
场景描述
该接口会将外呼结果推送至指定URL。
使用说明
- 前提条件
- 已经申请了开发者账号。
- 外呼活动已经创建,并已添加外呼数据。
- 注意事项
- 接收请求后,需服务端返回200的响应,其他响应均认为推送失败。
- 接收到非200响应后,会立即再次推送。如果仍为非200响应,则认为本次推送失败。
- 使用限制
- HTTPS采用TLS1.2及以上版本,确保web应用的敏感数据在传输过程中不被非法截获。
- 每条呼叫数据最大推送次数由租户级参数“外呼结果回调最大调用次数”限制,默认值为2,最大值为6。
- 调用回调接口等待时间可通过isales配置文件中的参数api.result.callback.connectionRequestTimeout和api.result.callback.responseTimeout修改。
- 回调地址callBackUrl有三处配置:任务级回调地址、租户级回调地址(租户级参数“外呼结果推送目标地址”,外呼结果推送目标地址缓存失效时长为1小时)、系统级回调地址(系统配置项“isales.obresult.callback.url”)。其中,任务级回调地址、租户级回调地址仅支持配置单个URL;系统级回调地址支持配置多个URL,URL之间使用英文分号“;”分隔。它们的优先级如下:
- 如果外呼任务上配置了任务级回调地址,则推送外呼结果到该地址;
- 如果外呼任务上没有配置任务级回调地址,在OP独立环境、且配置了系统级回调地址时:
- 若配置了租户级回调地址,则推送外呼结果到租户级地址;
- 若未配置租户级回调地址,则推送外呼结果到系统级回调地址;
- 非OP独立环境下,只支持任务级回调地址。
接口方法
该接口仅支持POST方法。
接口URL
创建外呼活动时,通过callBackUrl指定。
请求说明
无请求头消息。
| 序号 | 参数名 | 参数类型 | 说明 |
|---|---|---|---|
| 1 | callResultList | List | 外呼结果列表,此处仅做说明,实际无此实体对象,response直接返回List。具体参考表2。 |
| 序号 | 参数名 | 参数类型 | 说明 |
|---|---|---|---|
| 1 | campaignId | String | 外呼活动的id |
| 2 | sessionId | String | 标识用户的ID。 |
| 3 | callerNo | String | 主叫号码 |
| 4 | called | String | 被叫号码。 |
| 5 | callTimeStr | String | 呼叫时间,格式为:yyyy-mm-dd hh:mm:ss,使用租户对应时区的时间。 |
| 6 | callStatus | int | 呼叫结果(5: 呼叫失败,6: 呼叫成功)。 |
| 7 | failCode | String | 失败的原因码,请参见表4。 |
| 8 | vdnId | int | 外呼号码所属VDN ID。 |
| 9 | callId | String | 通话记录ID,用于与CTI平台的话单等通话数据关联。 |
| 10 | customField | String | 用户自定义字段。 |
| 11 | recordPath | String | 通话录音文件的存储路径。 说明: 该字段仅在使用接续时(SAAS组网),才返回值,其他情况返回为空。 |
响应说明
| 序号 | 名称 | 参数类型 | 是否必选 | 说明 |
|---|---|---|---|---|
| 1 | retCode | string | True | 0,成功,其他为失败。 |
| 2 | retMsg | string | True | 失败原因的描述。 |
触发事件
无
结果码
| 分类 | 错误原因码 | 错误原因描述 |
|---|---|---|
| 外呼成功 | 00000 | 外呼成功。 |
| 用户侧拆线 | 00531 | 外呼用户挂机。 |
| 00537 | 外呼号码被叫忙。 | |
| 00538 | 外呼号码为空号或错号。 | |
| 00548 | 外呼手机号码关机。 | |
| 00549 | 外呼手机号码不在服务区。 | |
| 00551 | 用户挂机。 | |
| 00601 | 应答前用户挂机。 | |
| 00603 | 外呼号码无应答后拆线。 | |
| 00604 | 呼叫拒绝。 | |
| 00701 | 外呼用户转队列,排队中用户主动挂机。 | |
| 平台正常拆线 | 00702 | 外呼用户转队列,排队超时,平台释放呼叫(若配置为排队超时释放)。 |
| 01040 | 振铃超时,平台释放呼叫。(即在设置的振铃时间内,用户一直没有摘机) | |
| 01043 | 平台内部等待外呼结果超时。 | |
| 01046 | 占用座席失败(转IVR外呼不涉及)。 | |
| 01049 | 外呼检测超时。 | |
| 34601 | 外呼任务不存在。 | |
| 34605 | 电话号码为空,即外呼获取的被叫号码为空字符串。 | |
| 34606 | 试呼失败,即调用呼出接口失败(比较常见的一种情况:当前的并发外呼数达到了最大外呼数;),没有呼出到用户。 | |
| 34608 | 呼出后,没有得到呼出结果信息,超时后将该呼叫数据回写。 | |
| 外呼号码校验失败 | 90002 | 不符合外呼数据属性筛选规则 |
| 90003 | 黑名单拦截 | |
| 90005 | 过期数据 | |
| 90008 | 日呼叫数拦截 | |
90011 | 号码呼叫间隔限制 | |
| 系统资源不足,平台侧拆线 | 00602 | 系统资源不足,请联系管理员检查资源配置。 |
| 00605 | ||
| 01048 | ||
| 34606 | ||
| 系统异常 | 00606 | 请联系管理员排查。 |
| 34611 | ||
| 其他 |
报文样例
- 该接口的请求消息体举例如下:
[ { "campaignId": "3", "sessionId": "1202_test013", "called": "60584", "callTimeStr": "2020-08-30 20:00:00", "callStatus": 6, "failCode": "0", "vdnId": 11, "callId": "0023-134864174", "recordPath": "Y:/1/11/20200830/3408/0949218.V3" } ] - 该接口的响应消息体举例如下:
{ "retCode": "0", "retMsg": "success" }