IVR咨询呼叫指南

1. 示例说明

  • (1) 使用IVR外呼或者呼入方式后放音提示用户按键:按1语音提示,按2转接人工;
  • (2) 用户超时没按键后继续放音提示用户按键,再超时放音提示用户后挂机;
  • (3) 用户按1键后放一段语音提示:我们会为您提供更好的服务,感谢您的来电收听,再见!放音完成后挂机;用户按2键后呼叫被叫,在呼叫被叫的同时放音提示:正在为您转接中,本次通话可能会被录音;用户按其他键则重新播报主菜单让用户进行按键操作;
  • (4) 被叫超时没有接听或者拒接后通过呼转的回调放音提示用户:转接的客服人员忙,欢迎您的来电,再见!;
  • (5) 当被叫接听后被叫挂机或通话时间到,通过相关的回调放音提示用户:请对我们的客服人员做评价,满意请按1,不满意请按2;
  • (6) 当用户超时没按键评价放音提示用户后挂机;当用户按键后提示用户:感谢您的来电,再见!放音完成后挂机。

2. 业务流程图

3. 开发指南

(1) 通过外呼或者呼入的方式发起呼叫:
  • a 调用IVR外呼接口发起rest请求(接口如下)
  • b 呼入接入号(测试阶段可以直接拨打01083035690进行调试,如果正式使用需要联系售前同事绑定接入号)

(2) 呼叫成功云通讯平台会向客户创建应用时填写的ivr通知地址发送通知消息
(3) 第三方服务器获取到通知消息响应按键放音,响应包体:
  • <?xml version='1.0' encoding='UTF-8'?>
  • <Response>
  • <Get action='firstget' numdigits='1' timeout='30'>
  • <Play>main.wav</Play>
  • </Get>
  • <Play>timeout.wav</Play
  • ><Redirect>gettimeout</Redirect>
  • </Response>
  • 说明:主命令为按键命令并且嵌套main.wav的放音提示,在用户按键1就回调通知到'firstget'的地址,如果用户没有按键就会30秒超时后执行副命令,跳转通知gettimeout。
(4) 若用户按键超时播放timeout.wav语音,语音播放完或按键打断后业务流程重定向到Redirect指向的URL,重新执行按键放音的操作。
(5)获取到通知消息,继续1的流程提示用户按键,响应包体:
  • <?xml version='1.0' encoding='UTF-8'?>
  • <Response>
  • <Get action='firstget' numdigits='1' timeout='30'>
  • <Play>main.wav</Play>
  • </Get>
  • <Play>timeoutbye.wav</Play>
  • <Hangup />
  • </Response> 
  • 说明:主命令为按键命令并且嵌套confmenu.wav的放音提示,在用户按键1就回调通知到'firstget'的地址,如果用户没有按键就会20秒超时后执行副命令,直接挂机。
(6)用户按键完成向第三方服务器发送按键上报的通知

  • a)如果用户按1的响应包体

  • <?xml version='1.0' encoding='UTF-8'?>
  • <Response>
  • <Play>muzic.wav</Play>
  • <Hangup />
  • </Response>
  • 给用户放音后直接挂机

  • b)如果用户按2的响应包体

  • <?xml version='1.0' encoding='UTF-8'?>
  • <Response>
  • <ConsultationCall number=’13800138000’  record='true' timeout='30' calltime='60' calltimeoverurl='calltimeoverurl' hangupurl='hangupurl'>
  •     <Play loop='-1'>wait.wav</Play>
  • </ConsultationCall>
  • <Redirect>connectfail</Redirect>
  • </Response> 
  • 咨询呼叫被叫,设置超时时间30秒、通话时长60秒和通话时长到的回调url calltimeoverurl以及被叫挂机后回调的url 'hangupurl'

  • c)按其他键的响应

  • <?xml version='1.0' encoding='UTF-8'?>
  • <Response>
  • <Get action='firstget' numdigits='1' timeout='30'>
  •     <Play>main.wav</Play>
  • </Get>
  • <Play>timeout.wav</Play>
  • <Redirect>gettimeout</Redirect>
  • </Response>
(7)如果咨询呼叫转接失败,则重定向到Redirect指向的URL connectfail,并响应放音挂机的命令,响应包体:
  • <?xml version='1.0' encoding='UTF-8'?>
  •         <Response>
  •                 <Play>buzy.wav</Play>
  •                 <Hangup />
  •         </Response>
  • 说明:提示用户转接失败并挂机
(8)转接成功客服挂机向第三方服务器发送被咨询侧挂机通知
(9)获取到通知,响应按键评价,响应包体:
  • <?xml version='1.0' encoding='UTF-8'?>
  • <Response>
  • <Get action='pingjia' numdigits='1' timeout='20'>
  •     <Play loop='-1'>pingjia.wav</Play>
  • </Get>
  • <Play>timeoutbye.wav</Play>
  • <Hangup/>
  • </Response>
  • 说明:获取按键,提示用户进行评价

(10)如果通话时间到,则向第三方服务器发送设置时间结束咨询侧通知
(11)获取到通知,响应按键评价,响应包体:
  • <?xml version='1.0' encoding='UTF-8'?>
  • <Response>
  • <Get action='pingjia' numdigits='1' timeout='20'>
  •     <Play loop='-1'>pingjia.wav</Play>
  • </Get>
  • <Play>timeoutbye.wav</Play>
  • <Hangup/>
  • </Response>
  • 说明:获取按键,提示用户进行评价
(12)用户按键完成向第三方服务器发送按键上报的通知
(13)获取到按键,响应放音:感谢您的来电,再见!响应包体:
  • <?xml version='1.0' encoding='UTF-8'?>
  • <Response>
  • <Play>thank.wav</Play>
  • <Hangup/>
  • </Response> 
  • 说明:放音提示用户评价成功
(14)挂机向第三方服务器发送挂机通知
(15)挂机后响应空命令即可,响应包体:
  • <Response>
  •         <CmdNone/></Response>
  • 说明:主命令为空命令,因为结束业务了不需要返回其他的IVR命令。

4. 参考文档