用户工具

呼叫中心:callback_ipcc

回调通知

云之讯呼叫中心服务通过回调的方式,将通话过程中的关键事件通知到应用服务器。其基本的规则是:

  • 事件通过 HTTP/HTTPS POST方式推送到用户的回调地址(用户创建APP时填写)
  • 通知、应答包体以XML格式组成。其中,通知包体的XML根节点名称为request,应答包体的XML根节点名称为response。包体属性包装在根节点内。
  • 用户服务器收到请求后必须返回Response,该Response的http body格式为事件响应Body,否则会话会被挂断

事件列表

事件名称 Event 说明
呼叫事件 呼入事件 incomingcall 当接入号码有来电时,触发该事件。用户的应用服务器接收到该事件后,需要向云呼叫中心发送呼入应答请求,以告知是接通还是拒绝该呼叫;拒绝该路呼叫时,不产生费用。
Web/IP坐席外呼开始 directbeginrpt 当Web/IP坐席客服人员拨打客户电话时触发该事件通知。
双向外呼开始 callbackbeginrpt 应用服务器调用rest外呼接口呼叫pstn坐席和用户,呼叫开始时会上报双向外呼事件
应答确认 incomingcallack 应用服务器向呼叫中心发送呼入应答请求后触发该事件通知。
呼叫状态通知事件 callstatrpt 当呼叫的状态发生改变时触发该事件通知,如:接通、转接、超时等。
直接转坐席失败事件 directtoservice 应用服务器调用呼叫转坐席接口异常时,会触发该事件
预测外呼通知 predictoutcallbeginrpt 预测试外呼事件
呼叫结束事件 calldisconnectrpt 呼叫结束事件
队列事件 排队成功 callenqueuesuccrpt 用户拨打接入号码,应用服务器在响应呼入事件后,调用入队接口,该路呼叫成功进入队列后触发该事件
队列溢出 callenqueueoverflowrpt 用户拨打接入号码时,队列已满,排队失败时触发该事件
退出队列 calldequeuerpt 已在队列中排队的用户,挂断电话不再等待时触发该事件
呼转事件 呼叫保持开始 holdbegin 通话中,用户应用服务器下发呼叫保持, 通话中的各方都将被保持,并触发该保持开始事件
呼叫保持结束 holdend 呼叫保持过程,用户应用服务器下发呼叫保持恢复,被保持方会解除保持,并触发保持结束事件
呼叫转接成功 transfersuccess 坐席和用户通话中,用户应用服务器下发呼叫转接,转接成功后会触发该事件。
呼叫转接失败 transferfaile 坐席和用户通话中,用户应用服务器下发呼叫转接,转接失败后会触发该事件,并携带具体的错误原因
呼叫咨询开始 consultbegin 坐席和用户通话中,用户应用服务器下发呼叫咨询,咨询成功后会触发该事件。
呼叫咨询失败 consultfaile 坐席和用户通话中,应用服务器调用呼叫咨询,咨询失败后会触发该事件,并携带具体的错误原因
呼叫咨询结束 consultend 咨询过程中,应用服务器调用呼叫咨询恢复,会触发咨询结束时间。
IVR事件 上报DTMF按键 ivrreportdtmf 用户应用服务器下发REST获取DTMF接口,用户侧的按键信息会通过DTMF按键事件上报。
放音结束通知 ivrplayoverrpt 用户应用服务器下发REST播放TTS或者播放语音结束后,会触发该事件
坐席DTMF上报 callservicedtmf 通话中,坐席按键信息会通过坐席DTMF上报事件上报。
话单和计费事件 话单上报 callbillrpt 呼叫中坐席和用户都已经挂机,会话结束,触发话单上报事件,上报话单详情
计费状态通知 caccstaterpt 呼叫过程,余额不足,通话超过最长时间,计费服务器响应异常时等都会上报计费状态。
其它事件 监听状态通知 eavesdroprpt 通话中,用户应用服务器调用REST监听接口,会触发监听状态上报
留言通知 callleaveendrpt 用户呼入,用户应用服务器调用REST开启留言,按指定键退出留言或者挂机后,会触发留言结束通知事件
语音文件审核通知 ipccRingAudit 开发者上传放音文件后,通知文件审核人员,审核通过后会触发该事件通知开发者

事件响应Body

属性 类型 约束 说明
retcode String 必选 返回结果,0表示成功,1表示失败
reason String 可选 失败原因

响应示例

响应示例

<response>
    <retcode>0</retcode>
    <reason>0</reason>
</response>

事件属性说明

呼入事件

属性 类型 约束 说明
event String 必选 事件名称 incomingcall
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
caller String 必选 主叫号码
called String 必选 被叫号码

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
    <event>incomingcall</event>
    <callId>2015100908543501530CTI</callId>
    <appId>247e35ff320a4142a105024055c367cf </appId>
    <caller>075586682088</caller>
    <called>53806409</called>
    <timeStamp>20160131170852107</timeStamp>
</request>

Web/IP坐席外呼开始

属性 类型 约束 说明
event String 必选 事件名称 directbeginrpt
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
caller String 必选 主叫号码
called String 必选 被叫号码

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
  <event>directbeginrpt</event>
  <callId>20151203143610006462532060006057FLOW</callId>
  <appId>11a3f2ba83ef496f994ba8a6979cc4c7</appId>
  <caller>62532060006057</caller>
  <called>18898739887</called>
  <timeStamp>20160131170852107</timeStamp>
</request>

双向外呼开始

属性 类型 约束 说明
event String 必选 事件名称 callbackbeginrpt
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
caller String 必选 主叫号码
called String 必选 被叫号码

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
  <event> callbackbeginrpt</event>
  <callId> 2015100908543501530CTI</callId>
  <appId>11a3f2ba83ef496f994ba8a6979cc4c7</appId>
  <caller>62532060006057</caller>
  <called> 15019409157</called>
  <timeStamp>20160131170852107</timeStamp>
</request>

应答确认

属性 类型 约束 说明
event String 必选 事件名称 incomingcallack
appId String 必选 应用唯一标识
callId String 必选 呼叫ID

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
    <appId>247e35ff320a4142a105024055c367cf </appId>
    <callId>2015100817062901467CTI</callId>
    <event>incomingcallack</event>
    <timeStamp>20160131170852107</timeStamp>
</request>

呼叫状态通知

属性 类型 约束 说明
event String 必选 事件名称 callstatrpt
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
serviceId String 必选 如果是主席侧状态通知字段显示坐席ID,用户侧该字段为空
dir Int 必选 呼叫状态坐席侧或者用户侧
  • 0, 坐席侧
  • 1, 用户侧
ansCode Int 必选 呼叫状态值
  • 0: 外呼超时
  • 1: 拒绝
  • 2: 无应答
  • 3: 不存在
  • 4: 呼叫失败
  • 5: 振铃
  • 6: 接听
  • 7: 挂机
  • 99: 未知

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
<appId>247e35ff320a4142a105024055c367cf </appId>
<callId>2015100817062901467CTI</callId>
<serviceId>62532060006057</serviceId>
<dir>0</dir>
<ansCode>6</ansCode>
<event>callstatrpt</event>
<timeStamp>20160131170852107</timeStamp>
</request>

直接转坐席事件

属性 类型 约束 说明
event String 必选 事件名称 directtoservice
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
reason Int 必选 错误码
  • 0: 正常
  • 1:没有找到坐席
  • 2:呼叫失败
  • 其他:未定义

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
  <event> directtoservice </event>
  <callId> 7dbc2536-c01d-11e5-a5b4-5d5dac84681f </callId>
  <appId> bb8e39dee6a24cedbb23970fa83b4114 </appId>
  <reason >1</ reason >
  <timeStamp>20160131170852107</timeStamp>
</request>

预测外呼通知

属性 类型 约束 说明
event String 必选 事件名称 predictoutcallbeginrpt
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
caller Int 必选 主叫号码
data String 可选 用户透传数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
  <event> predictoutcallbeginrpt</event>
  <callId> 7dbc2536-c01d-11e5-a5b4-5d5dac84681f </callId>
  <appId> bb8e39dee6a24cedbb23970fa83b4114 </appId>
  <caller >15019409157</caller>
  <data>123</data>
  <timeStamp>20160131170852107</timeStamp>
</request>

呼叫结束事件

属性 类型 约束 说明
event String 必选 事件名称 calldisconnectrpt
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
dir Int 必选 错误码
  • 0: 坐席
  • 1:用户侧
  • 其他:未定义
fileName String 必选 录音文件名称
reason Int 必选 挂机原因
  • 0 : 正常挂机
  • 1 :TTS超时挂机,
  • 2 :TTS转换失败
  • 3 :入队失败
  • 4 :排队获取按键超时
  • 5 :OTPS找不到APPID
  • 6 :计费余额不足
  • 7 : 会话超过最长允许通话时长
  • 8 : 计费异常错误
  • 9 : 计费连接OTPS服务器超时
  • 10:用户主动挂机
  • 11:技能组被删除
  • 12 :用户服务器响应异常
data String 可选 用户透传数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
    <appId>247e35ff320a4142a105024055c367cf </appId>
    <callId>2015100908563101533CTI</callId>  
    <flieName>1446560181239909</flieName>
    <date>20151103</date>
    <dir>0</dir>
    <reason>0</reason>
    <event>calldisconnectrpt</event>
    <timeStamp>20160131170852107</timeStamp>
</request>
 

排队成功

属性 类型 约束 说明
event String 必选 事件名称 callenqueuesuccrpt
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
queueId String 必选 队列ID
data Int 可选 用户透传数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
    <appId>247e35ff320a4142a105024055c367cf </appId>
    <callId>2015100817062901467CTI</callId>
    <queueId>123456</queueId>
    <data></data>
    <event>callenqueueoverflowrpt</event>
    <timeStamp>20160131170852107</timeStamp>
</request>

队列溢出

属性 类型 约束 说明
event String 必选 事件名称 callenqueueoverflowrpt
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
queueId String 必选 队列ID
data Int 可选 用户透传数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
    <appId>247e35ff320a4142a105024055c367cf </appId>
    <callId>2015100817062901467CTI</callId>
    <queueId>123456</queueId>
    <data></data>
    <event>callenqueueoverflowrpt</event>
    <timeStamp>20160131170852107</timeStamp>
</request>

退出队列

属性 类型 约束 说明
event String 必选 事件名称 calldequeuerpt
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
queueId String 必选 队列ID
reason String 必选 退出排队原因
  • 0: 用户按键退出
  • 1: 超时间退出
  • 2: 达到最大排队次数
  • 3: 按键超时
  • 4: 技能组被删除
data Int 可选 用户透传数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
    <appId>247e35ff320a4142a105024055c367cf </appId>
    <callId>2015100817062901467CTI</callId>
    <queueId>123456</queueId>
    <reason>1</reason>
    <data></data>
    <event>calldequeuerpt</event>
    <timeStamp>20160131170852107</timeStamp>
</request>

呼叫保持开始事件

属性 类型 约束 说明
event String 必选 事件名称 holdbegin
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
data String 可选 用户透传的数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
    <event> holdbegin </event>
    <callId> 7dbc2536-c01d-11e5-a5b4-5d5dac84681f </callId>
    <appId> bb8e39dee6a24cedbb23970fa83b4114 </appId>
    <data>123456</data>
    <timeStamp>20160131170852107</timeStamp>
</request>

呼叫保持结束事件

属性 类型 约束 说明
event String 必选 事件名称 holdend
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
data String 可选 用户透传的数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
   <event> holdend</event>
   <callId> 7dbc2536-c01d-11e5-a5b4-5d5dac84681f </callId>
   <appId> bb8e39dee6a24cedbb23970fa83b4114 </appId>
   <data>123456</data>
   <timeStamp>20160131170852107</timeStamp>
</request>

呼叫转接成功事件

属性 类型 约束 说明
event String 必选 事件名称 transfersuccess
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
transferId String 必选 转接ID
transferNum String 必选 转接号码
data String 可选 用户透传的数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
    <event>transfersuccess</event>
    <callId>7dbc2536-c01d-11e5-a5b4-5d5dac84681f </callId>
    <appId> bb8e39dee6a24cedbb23970fa83b4114 </appId>
    <transferId>f99f8816-c016-11e5-84d2-9b19c4379b11</transferId>
    <transferNum>62585060010256</transferNum>
    <data>123456</data>
    <timeStamp>20160131170852107</timeStamp>
</request>

呼叫转接失败事件

属性 类型 约束 说明
event String 必选 事件名称 transferfaile
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
transferNum String 必选 转接号码
reason String 必选 失败原因 详情请参考呼转错误码
data String 可选 用户透传的数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
  <event>transferfaile</event>
  <callId>7dbc2536-c01d-11e5-a5b4-5d5dac84681f </callId>
  <appId> bb8e39dee6a24cedbb23970fa83b4114 </appId>
  <transferNum>62585060010256</transferNum>
  <reason>2</reason>
  <data>123456</data>
  <timeStamp>20160131170852107</timeStamp>
</request>

呼叫咨询开始事件

属性 类型 约束 说明
event String 必选 事件名称 consultbegin
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
consultId String 必选 咨询ID
consultNum String 必选 咨询号码
data String 可选 用户透传的数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
  <event> consultbegin</event>
  <callId> 7dbc2536-c01d-11e5-a5b4-5d5dac84681f </callId>
  <appId> bb8e39dee6a24cedbb23970fa83b4114 </appId>
  <consultId>f99f8816-c016-11e5-84d2-9b19c4379b11</consultId>
  <consultNum>62585060010256</consultNum>
  <data>123456</data>
  <timeStamp>20160131170852107</timeStamp>
</request>

呼叫咨询失败事件

属性 类型 约束 说明
event String 必选 事件名称 consultfaile
appId String 必选 应用唯一标识
callId String 必选 呼叫ID`
consultNum String 必选 咨询号码
reason String 可选 失败原因 详情参考呼转错误码
data String 可选 用户透传的数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
  <event>consultfaile</event>
  <callId>7dbc2536-c01d-11e5-a5b4-5d5dac84681f </callId>
  <appId> bb8e39dee6a24cedbb23970fa83b4114 </appId>
  <consultNum>62585060010256</consultNum>
  <reason>2</reason>
  <data>123456</data>
  <timeStamp>20160131170852107</timeStamp>
</request>

呼叫咨询结束事件

属性 类型 约束 说明
event String 必选 事件名称 consultend
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
consultId String 必选 咨询ID
consultNum String 必选 咨询号码
data String 可选 咨询ID

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
  <event> consultend</event>
  <callId> 7dbc2536-c01d-11e5-a5b4-5d5dac84681f </callId>
  <appId> bb8e39dee6a24cedbb23970fa83b4114 </appId>
  <consultId>f99f8816-c016-11e5-84d2-9b19c4379b11</consultId>
  <consultNum>62585060010256</consultNum>
  <data>123456</data>
  <timeStamp>20160131170852107</timeStamp>
</request>

上报DTMF按键

属性 类型 约束 说明
event String 必选 事件名称 ivrreportdtmf
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
dtmfCode String 必选 上报的DTMF码, 若是因为收到结束符,则此字符串中携带该结束符
data String 可选 用户透传的数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
    <appId>247e35ff320a4142a105024055c367cf</appId>
    <callId>2015100817062901467CTI</callId>
    <dtmfCode>0</dtmfCode>
    <data></data>
    <event>ivrreportdtmf</event>
    <timeStamp>20160131170852107</timeStamp>
</request>

放音结束通知

属性 类型 约束 说明
event String 必选 事件名称 ivrplayoverrpt
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
data String 可选 用户透传的数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
    <appId>247e35ff320a4142a105024055c367cf </appId>
    <callId>2015100817062901467CTI</callId>
    <data></data>
    <event>ivrplayoverrpt</event>
    <timeStamp>20160131170852107</timeStamp>
</request>

坐席DTMF上报

属性 类型 约束 说明
event String 必选 事件名称 callservicedtmf
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
dtmfCode String 必选 收到 结束符'#',或者收码个数超过最大32个,上报按键,5s内按键超时,清除已收码
data String 可选 用户透传的数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
    <appId>247e35ff320a4142a105024055c367cf</appId>
    <callId>2015100817062901467CTI</callId>
    <dtmfCode>1234#</dtmfCode>
    <data></data>
    <event>callservicedtmf</event>
    <timeStamp>20160131170852107</timeStamp>
</request>

留言通知

属性 类型 约束 说明
event String 必选 事件名称 callleaveendrpt
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
fileName String 必选 留言文件名称
date String 必选 留言日期
data String 可选 用户透传的数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
    <appId>247e35ff320a4142a105024055c367cf </appId>
    <callId>2015100817062901467CTI</callId>
    <filename>1446560181239909</filename>
    <date>20151103</date>
    <data></data>
    <event>callleaveendrpt</event>
    <timeStamp>20160131170852107</timeStamp>
</request>

监听状态通知

属性 类型 约束 说明
event String 必选 事件名称 eavesdroprpt
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
type Int 必选 监听状态
  • 0, 监听/恢复监听
  • 1, 跟用户交谈
  • 2, 跟坐席交谈
  • 3, 强插
  • 4, 坐席替换
  • 5, 强拆
  • 6, 结束监听
state String 必选 响应码
  • 0, 成功
  • 1, 系统错误(2~8里未包括的都是此错误)
  • 2, 会话不存在
  • 3, 已经被监听
  • 4, 应用不存在
  • 5, 外呼失败
  • 6, 没有监听者
  • 7, 需要SIP账号或PSTN号码
  • 8, 重复操作
data String 可选 用户透传数据

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
     <event>eavesdroprpt</event>
     <appid>9be05b5099df4ec99cbcdca71aac4a9b</appid>
     <callId>7dbc2536-c01d-11e5-a5b4-5d5dac84681f </callId>
     <type>0</type>
     <state>0</state>
     <data>123</data>
      <timeStamp>20160131170852107</timeStamp>
</request>

语音文件审核通知

属性 类型 约束 说明
event String 必选 事件名称 ipccRingAudit
accountid String 必选 账号ID
appId String 必选 应用唯一标识
id String 必选 文件ID
result Int 必选 审核结果
  • 0, 不通过
  • 1, 通过
reason String 可选 错误原因(以文本说明)

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
     <event>ipccRingAudit</event>
     <accountid>6f959b38f6f5e291e309d497afe659cb</accountid>
     <appid>9be05b5099df4ec99cbcdca71aac4a9b</appid>
     <id>326</id>
     <result>0</result>
     <reason>应用冒用</reason>
     <time>2016-05-05 10:49:50</time>
</request>

详单对象

属性 类型 约束 说明
serviceId String 可选 坐席ID号
callMethod String 可选 坐席通话方式
serviceTime String 可选 坐席通话时间
startTime String 必选 坐席开始通话时间

话单上报

属性 类型 约束 说明
event String 必选 事件名称 callbillrpt
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
caller String 必选 主叫号码
called String 必选 被叫号码
totalTime String 必选 通话总时长
ivrTime String 必选 ivr时长
ServiceTime String 必选 坐席时长
tts String 必选 tts次数
charge String 必选 通话费用
detailList Object 必选 坐席账单详情 参考详单对象

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
   <appId>247e35ff320a4142a105024055c367cf </appId>
   <callId>2015100908563101533CTI</serviceId>
   <callerCode>075586682088</callerCode>
   <calledCode>075586682088</calledCode>
   <totalTime>20</totalTime>
   <ivrTime>5</ivrTime>
   <ServiceTime>15</ServiceTime>
   <tts>0</tts>
   <charge>0</charge>
   <event>callbillrpt</event>
   <timeStamp>20160131170852107</timeStamp>
   <detailList>
       <Detail>
            <callMethod>PHONE</callMethod>
            <serviceId>69864060011630</serviceId>
            <serviceTime>6</serviceTime>
            <startTime>20160305103430</startTime>
        </Detail>
        <Detail>
            <callMethod>PHONE</callMethod>
            <serviceId>69864060011630</serviceId>
            <serviceTime>4</serviceTime>
            <startTime>20160305103452</startTime>
        </Detail>
   </detailList>
</request>

计费状态通知

属性 类型 约束 说明
event String 必选 事件名称 caccstaterpt
appId String 必选 应用唯一标识
callId String 必选 呼叫ID
errorCode Int 可选 错误码
  • -0: 正常
  • -1:余额不足
  • -2:超过最大通话时长(2H)
  • 其他:系统内部错误

请求示例

请求示例

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request>
    <event> caccstaterpt </event>
    <callId> 7dbc2536-c01d-11e5-a5b4-5d5dac84681f </callId>
    <appId> bb8e39dee6a24cedbb23970fa83b4114 </appId>
    <errorCode>1</errorCode>
    <timeStamp>20160131170852107</timeStamp>
</request>

页面工具