2、IVR 咨询呼叫指南

2.1 示例说明

(1) 使用IVR外呼或者呼入方式后放音提示用户按键:按1语音提示,按2转接人工;

(2) 用户超时没按键后继续放音提示用户按键,再超时放音提示用户后挂机;

(3) 用户按1键后放一段语音提示:我们会为您提供更好的服务,感谢您的来电收听,再见!放音完成后挂机;用户按2键后呼叫被叫,在呼叫被叫的同时放音提示:正在为您转接中,本次通话可能会被录音;用户按其他键则重新播报主菜单让用户进行按键操作;

(4) 被叫超时没有接听或者拒接后通过呼转的回调放音提示用户:转接的客服人员忙,欢迎您的来电,再见!;

(5) 当被叫接听后被叫挂机或通话时间到,通过相关的回调放音提示用户:请对我们的客服人员做评价,满意请按1,不满意请按2;

(6) 当用户超时没按键评价放音提示用户后挂机;当用户按键后提示用户:感谢您的来电,再见!放音完成后挂机。

2.2 业务流程图

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命令。

2.4 参考文档

(1) rest IVR外呼接口文档

(2) IVR基础命令接口文档

(3) IVR基础通知消息接口文档

文档更新时间:2016年9月26日