多级IVR的实现方式说明
[TOC]
1. 简述
多级IVR是呼叫中心的常见应用。
OM API实现多级IVR要用到语音菜单(menu)
这个对象。
关于menu的介绍
2. 配置要求
说明:来电应答后控制
,即来电呼入OM并接通后,来电转IVR还是人工完全由应用服务器托管控制实现。
3. 相关的API
列举
- 事件:
INCOMING
(来电呼入事件)、DTMF
(按键信息事件)、EndOfAnn
(语音文件播放完毕事件)
- 请求:
Connect
(来电转接语音菜单、来电转分机)、Assign
(配置语音菜单)
解释
关于API的具体详情,请查阅《OM API接口大全》。
事件
- INCOMING事件:中继(也称为外线)的
来电应答后控制
开启的情况下,当来电通过该中继呼入时,OM首先会应答该来电,并向应用服务器推送INCOMING事件
,然后等待应用服务器通过API进行呼叫控制。
- DTMF事件:呼叫转接到menu后,当用户按键满足menu的按键信息汇报条件时,OM向应用服务器推送该事件。
- EndOfAnn事件:呼叫转接到menu后,menu的语音文件按照指定规则播放完毕后,OM向应用服务器推送该事件。
请求
- Assign请求:配置menu,用于之后的使用。配置项包括:播放的语音文件、播放次数、按键检测长度、判断输入结束字符;
- Connect请求:用于各个菜单之间的跳转,和转接到人工;
4. 简易的IVR实现理流程
5. 异常处理
如果用户没有按照IVR要求输入,应用服务器需要对这些异常情况进行处理。
异常现象
- 输入超时
- 输入错误
判断异常的条件
- 判断输入超时:当应用服务器收到的DTMF事件中
info
值以字母T
结束,说明用户在该菜单下输入超时。
- 判断输入错误:当应用服务器收到的DTMF事件中
info
值不在该菜单定义的有效值范围内,说明用户输入错误。
举例:
1.首位输入超时的DTMF事件:
<?xml version="1.0" encoding="utf-8" ?>
<Event attribute="DTMF">
<visitor id="4" from="13012345678" to="02161208234" callid="36868">
<info>T</info>
<menu id="1" />
</visitor>
</Event>
2.输入一半超时的DTMF事件:
<?xml version="1.0" encoding="utf-8" ?>
<Event attribute="DTMF">
<visitor id="4" from="13012345678" to="02161208234" callid="36868">
<info>1234T</info>
<menu id="1" />
</visitor>
</Event>
异常处理方法
当遇到这些情况时,一般需要给用户播放纠错提示音,播放完后继续转接回原来的menu。
不过,现在有种更简便的方法,直接转回原来的menu,同时临时播放纠错提示音。
这里重点介绍转接的一个扩展功能—— 临时替换语音文件
格式如:
<?xml version="1.0" encoding="utf-8" ?>
<Transfer attribute="Connect">
<visitor id="41" />
<menu id="10"/>
<voicefile>input_wrong+input_id_card_no</voicefile>
</Transfer>
临时替换语音文件说明:
- 如果呼叫转接menu时临时指定新的voicefile,则OM不再向通话方播放menu原配置的voicefile,而播放该临时指定的voicefile,且仅播放一遍,播放完毕汇报EndOfAnn事件;
- DTMF的汇报规则依然遵循menu的配置;(即,infolength和exit两个参数依然按menu的配置生效)
- 临时指定的voicefile仅在本次转接生效。
举例:
比如,menu 10的配置为
<?xml version="1.0" encoding="utf-8" ?>
<Control attribute="Assign">
<menu id="10">
<voicefile>input_id_card_no</voicefile>
<repeat>1</repeat>
<infolength>20</infolength>
<exit>#</exit>
</menu>
</Control>
其中,语音文件input_id_card_no的内容为:“请输入您的身份证号,按井号键结束”。
1.当来电转接到该menu后,用户听到提示音“请输入您的身份证号,按井号键结束”,然后用户输入了“123#”,应用服务器收到DTMF事件:
<?xml version="1.0" encoding="utf-8" ?>
<Event attribute="DTMF">
<visitor id="41" from="13012345678" to="02161208234" callid="36868">
<info>123#</info>
<menu id="1" />
</visitor>
</Event>
2.当应用服务器判断出用户输入的数据有误,
依然将来电转接到menu 10,并 同时指定voicefile为input_wrong
+input_id_card_no
两个文件。(其中,语音文件input_wrong
的内容为“您的输入有误“,+号用来连接多个文件) 。
这样,来电还是在menu 10,但听到提示音变为“您的输入有误,请输入您的身份证号,按井号键结束“。
<?xml version="1.0" encoding="utf-8" ?>
<Transfer attribute="Connect">
<visitor id="41" />
<menu id="10"/>
<voicefile>input_wrong+input_id_card_no</voicefile>
</Transfer>
3.然后,用户输入了正确的身份证号”410410199001010101#“,应用服务器收到
<?xml version="1.0" encoding="utf-8" ?>
<Event attribute="DTMF">
<visitor id="41" from="13012345678" to="02161208234" callid="36868">
<info>410410199001010101#</info>
<menu id="1" />
</visitor>
</Event>
如此,即完成一次异常处理。