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. 参考文档
(1) rest IVR外呼接口文档
(2) IVR基础命令接口文档
(3) IVR基础通知消息接口文档