云之讯呼叫中心服务通过回调的方式,将通话过程中的关键事件通知到应用服务器。其基本的规则是:
事件名称 | 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 | 开发者上传放音文件后,通知文件审核人员,审核通过后会触发该事件通知开发者 |
属性 | 类型 | 约束 | 说明 |
---|---|---|---|
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>
属性 | 类型 | 约束 | 说明 |
---|---|---|---|
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 | 必选 | 呼叫状态坐席侧或者用户侧
|
ansCode | Int | 必选 | 呼叫状态值
|
请求示例
请求示例
<?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 | 必选 | 错误码
|
请求示例
请求示例
<?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 | 必选 | 错误码
|
fileName | String | 必选 | 录音文件名称 |
reason | Int | 必选 | 挂机原因
|
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 | 必选 | 退出排队原因
|
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>
属性 | 类型 | 约束 | 说明 |
---|---|---|---|
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>
属性 | 类型 | 约束 | 说明 |
---|---|---|---|
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 | 必选 | 监听状态
|
state | String | 必选 | 响应码
|
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 | 必选 | 审核结果
|
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 | 可选 | 错误码
|
请求示例
请求示例
<?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>