3.3 多级IVR

多级IVR是呼叫中心的常见应用。

OM API实现多级IVR要用到语音菜单(menu)这个对象。

配置要求

开启外线的来电应答后控制开关和状态监控开关;

说明:来电应答后控制,即来电呼入OM并接通后,来电转IVR还是人工完全由应用服务器托管控制实现。

相关API列举

事件:

  • INCOMING事件:中继(也称为外线)的来电应答后控制开启的情况下,当来电通过该中继呼入时,OM首先会应答该来电,并向应用服务器推送INCOMING事件,然后等待应用服务器通过API进行呼叫控制;
  • DTMF事件:呼叫转接到menu后,当用户按键满足menu的按键信息汇报条件时,OM向应用服务器推送该事件;
  • EndOfAnn事件:呼叫转接到menu后,menu的语音文件按照指定规则播放完毕后,OM向应用服务器推送该事件。

请求:

  • Assign请求:配置语音菜单(menu),用于之后的使用。配置项包括:播放的语音文件、播放次数、按键检测长度、判断输入结束字符;
  • Connect请求:用于各个语音菜单之间的跳转和转接到人工,如来电转menu、来电转分机。

简易的IVR实现流程图:

异常处理

如果用户没有按照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>

如此,即完成一次异常处理。

results matching ""

    No results matching ""