IVR 基础通知消息
云通讯平台向应用服务器侧发起的请求消息,包括启动业务、结束业务、按键信息上报、录音完成通知、被咨询侧应答通知、咨询通话设置时间结束咨询侧通知、被咨询侧挂机通知、咨询侧主动结束咨询呼叫、呼转请求、指定呼转、通话结束后发给被咨询侧的通知、默认通知接口、DTMF发送结果通知、咨询通话设置时间结束被咨询侧通知、被咨询侧未接听挂机通知等。
1. 启动业务
- 用户呼叫到达云通讯平台后,云平台向应用服务器发送此请求消息。消息关键字为startservice(URL中的消息关键字“startservice”内容为固定内容,不可变)。
请求地址
- POST /startservice?appid={appid}&callid={callid}&from={from}&to={to}&direction={direction}&userdata={userdata} HTTP/1.1
请求参数
参数名 | 约束 | 说明 |
callid | 必须 | 一个由32位数字、字符组成的唯一呼叫标识符 |
from | 可选 | 主叫电话号码,IVR呼入的主叫号码。通过外呼方式则会为空。 |
to | 必须 | 被叫电话号码 |
direction | 必须 | 呼叫方向,取值有0(呼入),1(呼出) |
appid | 必须 | 应用id |
userdata | 可选 | 用户参数,Dial命令中使用,来源IVR外呼请求中的userdata参数 |
2. 结束业务
- 用户业务session结束后,由云平台向应用侧发起的请求,url中录音信息为咨询呼叫的录音内容。消息关键字为stopservice。
请求地址
- POST /stopservice?appid={appid}&callid={callid}&starttime={starttime}&endtime={endtime}&callduration={callduration}&sstime={sstime}&setime={setime}&seccallduration={seccallduration}&recordurl={recordurl}&recordid={recordid}&errorcode={errorcode} HTTP/1.1
请求参数
参数名 | 约束 | 说明 |
callid | 必须 | 一个由32位数字、字符组成的唯一呼叫标识符 |
callduration | 可选 | 主叫的通话时长,单位:秒 |
recordurl | 有录音必须 | 录音存放地址 |
recordid | 有录音必须 | 录音文件Id |
errorcode | 必须 | 一个6位的数字串 |
appid | 必须 | 应用id |
seccallduration | 必须 | 主叫与被叫的通话时长。只记录最后一次的通话时长,单位是秒,注:此参数对于坐席通话不生效 |
starttime | 可选 | 主叫开始时间,格式yyyyMMddHHmmss,当callduration=0时不带此参数 |
endtime | 可选 | 主叫结束时间,格式yyyyMMddHHmmss,当callduration=0时不带此参数 |
sstime | 可选 | 被叫开始时间,格式yyyyMMddHHmmss,当seccallduration=0时不带此参数 |
setime | 可选 | 被叫结束时间,格式yyyyMMddHHmmss,当seccallduration=0时不带此参数 |
3. 按键信息上报
- 当使用获取按键命令用户有按键时,云平台会向应用侧发起此请求上报按键内容,URL中的“dtmfreport”内容可由<Get>命令的action属性自定义。消息关键字为dtmfreport。
请求地址
- POST /dtmfreport?appid={appid}&callid={callid}&digits={digits} HTTP/1.1
请求参数
参数名 | 约束 | 说明 |
callid | 必须 | 一个由32位数字、字符组成的唯一呼叫标识符 |
digits | 必须 | 用户的按键内容,为0123456789#*值 |
appid | 必须 | 应用id |
4. 录音完成通知
- 录音时完成录音(打断录音、录音时间到、录音中挂机)后,由云平台向应用侧发起的请求消息,URL中“recordover”可通过<Record>命令中的action属性和<Record>命令中的recordurl属性自定义。消息关键字为recordover。
请求地址
- POST /recordover?appid={appid}&callid={callid}&recordduration={recordduration}&recordurl={recordurl} HTTP/1.1
请求参数
参数名 | 约束 | 说明 |
callid | 必须 | 一个由32位数字、字符组成的唯一呼叫标识符 |
recordduration | 可选 | 通话时长,单位:秒 |
recordurl | 有录音必须 | 录音存放地址 |
appid | 必须 | 应用id |
5. 被咨询侧应答通知
- 当咨询呼叫命令中订阅此通知(<ConsultationCall>命令中有action属性)时,被咨询侧应答时云平台会向应用侧发起此请求,URL中<answerurl>内容可通过<ConsultationCall>命令中的action属性自定义,若为空则不发送此请求。消息关键字为answerurl。
请求地址
- POST /answerurl?appid={appid}&callid={callid}&mcallid={mcallid}&answertime={answertime} HTTP/1.1
请求参数
参数名 | 约束 | 说明 |
callid | 必须 | 一个由32位数字、字符组成的唯一呼叫标识符 |
mcallid | 必须 | 主叫用户的callid |
answertime | 必须 | 咨询侧应答时间 |
appid | 必须 | 应用id |
6. 咨询通话设置时间结束咨询侧通知
- 当咨询呼叫设置通话时间到后,云平台会向应用侧发起此请求,以通知应用侧咨询侧通话时间到处理咨询侧后续逻辑。URL中<calltimeover>内容可通过<ConsultationCall>命令中的calltimeoverurl属性自定义,若为空则不发送此请求。消息关键字为calltimeover。
请求地址
- POST /calltimeover?appid={appid}&callid={callid} HTTP/1.1
请求参数
参数名 | 约束 | 说明 |
callid | 必须 | 一个由32位数字、字符组成的唯一呼叫标识符 |
appid | 必须 | 应用id |
7. 被咨询侧挂机通知
- 咨询呼叫或呼叫转接在通话中咨询侧挂机时云平台会向应用侧发起此请求,URL中的<hangup>内容可通过<ConsultationCall>或<TransferCall>命令中的hangupurl属性自定义相对url,若为空则不发送此请求。消息关键字为hangup。
请求地址
- POST /hangup?appid={appid}&callid={callid}&reason={reason}&callduration={callduration} HTTP/1.1
请求参数
参数名 | 约束 | 说明 |
callid | 必须 | 一个由32位数字、字符组成的唯一呼叫标识符 |
reason | 必须 | 0 咨询侧主动挂机 |
callduration | 可选 | 咨询通话时长,单位:秒 |
appid | 必须 | 应用id |
8. 咨询侧主动结束咨询呼叫
- 在咨询呼叫中被咨询侧未接通前咨询侧可主动结束咨询呼叫。在<ConsultationCall>命令中“finishkey”参数设置结束键,“cancelurl”参数设置自定义回调URL。
请求地址
- POST /<custom>?appid={appid}&callid={callid} HTTP 1.1
请求参数
参数名 | 约束 | 说明 |
callid | 必须 | 一个由32位数字、字符组成的唯一呼叫标识符 |
appid | 必须 | 应用id |
9. 呼转请求
- 由应用侧控制由云平台向应用侧发起的业务跳转请求。消息关键字为redirect。
请求地址
- POST /redirect?appid={appid}&callid={callid}&tag={tag} HTTP/1.1
请求参数
参数名 | 约束 | 说明 |
callid | 必须 | 一个由32位数字、字符组成的唯一呼叫标识符 |
tag | 可选 | 在<Redirect>命令指定的标识值,正整数。默认为0 |
appid | 必须 | 应用id |
10. 指定呼转
- 咨询呼叫或呼叫转接接通后,被咨询者按“*号键+分机号+#号键”后,云平台会向AS侧发送此通知。AS侧可根据此分机号查询新号码后为主叫再次发起咨询呼叫。URL中的<custom>内容可通过<ConsultationCall>和<TransferCall>命令中的transferurl属性自定义相对url,若为空则不发送此请求。消息关键字为transferurl。
请求地址
- POST /<custom>?appid={appid}&callid={callid}&extension={extension} HTTP 1.1
请求参数
参数名 | 约束 | 说明 |
callid | 必须 | 一个由32位数字、字符组成的唯一呼叫标识符 |
extension | 必须 | 电话分机号 |
appid | 必须 | 应用id |
11. 通话结束后发给被咨询侧的通知
- 咨询呼叫或呼叫转接时咨询侧与被咨询侧通话结束或咨询侧挂断电话后,若命令中“consulurlafterhangup”参数不为空,则向AS侧发送此通知。AS侧回复其它IVR命令可对被咨询侧通话进行业务逻辑控制。URL中的<custom>内容可通过<ConsultationCall>命令中的consulurlafterhangup属性自定义相对url,若为空则不发送此请求。消息关键字为consulurlafterhangup。
请求地址
- POST /<custom>?appid={appid}&callid={callid} HTTP 1.1
请求参数
参数名 | 约束 | 说明 |
callid | 必须 | 一个由32位数字、字符组成的唯一呼叫标识符 |
appid | 必须 | 应用id |
12. 默认通知接口
- 云平台向AS侧发送的通知请求无其它参数的,都使用此接口进行通知。
请求地址
- POST /<custom>?appid={appid}&callid={callid} HTTP 1.1
请求参数
参数名 | 约束 | 说明 |
callid | 必须 | 一个由32位数字、字符组成的唯一呼叫标识符 |
appid | 必须 | 应用id |
13. DTMF发送结果通知
- 发送dtmf完成后,由云平台向应用侧发起的请求消息,URL中“<custom>”可通过<SendDTMF>命令中的action属性自定义。
请求地址
- POST /<custom>?appid={appid}&callid={callid}&result={result}&dtmf={dtmf} HTTP/1.1
请求参数
参数名 | 约束 | 说明 |
callid | 必须 | 一个由32位数字、字符组成的唯一呼叫标识符 |
result | 必须 | 0为成功,其他值为失败 |
dtmf | 必须 | 发送dtmf的内容 |
appid | 必须 | 应用id |
14. 咨询通话设置时间结束被咨询侧通知
- 在咨询呼叫设置通话时间到后,云平台会向应用侧发起此请求,以通知应用侧被咨询侧通话时间到处理被咨询侧后续逻辑。URL中<custom>内容可通过<ConsultationCall>命令中的calltimeoverconsulurl属性自定义,若为空则不发送此请求。消息关键字为calltimeoverconsul。
请求地址
- POST /<custom>?appid={appid}&callid={callid} HTTP 1.1
请求参数
参数名 | 约束 | 说明 |
appid | 必须 | 应用id |
callid | 必须 | 一个由32位数字、字符组成的唯一呼叫标识符 |
15. 被咨询侧未接听挂机通知
- 在咨询呼叫中被咨询侧未接通超时、拒接或者关机等造成的被咨询侧挂机的通知请求。URL中<custom>内容可通过<ConsultationCall>命令中的noanswerurl属性自定义,若为空则不发送此请求。
请求地址
- POST /<custom>?appid={appid}&callid={callid} HTTP 1.1
请求参数
参数名 | 约束 | 说明 |
appid | 必须 | 应用id |
callid | 必须 | 一个由32位数字、字符组成的唯一呼叫标识符 |