IVR 基础通知消息

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位数字、字符组成的唯一呼叫标识符