IVR与ODFS交互出现死循环的检查方法

问题描述

通过IVR拨测流程,当出现放音失败,比如TTS对接问题或者放文件音时文件不存在等异常情况时,流程异常终止,检查IVR和ODFS日志,发现出现疑似死循环的日志出现,主要现象是TTS一直播报the system error。

问题分析

当IVR执行系统返回的放音时,如果放音失败,则向IVR向OIAP系统发起sys_err的请求,此时系统无法再处理sys_err的时候触发了异常,而系统的对话流程并未找到异常子流程进行处理,则直接返回IVR默认的异常TTS内容返回信息。

IVR在接收到默认TTS内容播报时也播放失败,继续发送sys_err的请求给OIAP,而OIAP继续触发异常返回异常TTS,即使用户挂机,IVR业务无法捕获挂机事件,只能发送sys_err请求,因此出现死循环。

根据上述分析,造成错误的原因可能如下:

  • 未配置sys_err意图或未识别意图
  • 对话流程中未配置异常的条件分支

解决方法

可以对您的意图模板和对话流程做如下检查:

  • 检查分支判断是否考虑全面:
  1. 在进行各个图元的条件分支定义时,尽量保证所有条件的合集能包含所有正常异常的场景,避免出现实际产生的结果无法匹配所配置的各个分支。图元后续的连线,没有选择条件时,就是默认分支,这个分支的连线务必要处理。

  2. 对话流程中要创建一个异常子流程,子流程里可简单播放一个系统异常的语音,只支持放音不支持按键和识别,然后直接结束。

  • 检查意图模板中是否配置了未知意图。

    在8.9.0版本和8.10.0中,新建的领域下已经预置了几个常用的意图模板,请确保这些意图模板未被删除,如果不存在未知意图,请自行配置, 确保未知意图的“响应”页签,意图回复的“命令”配置为“UNKNOWN_INTENT”,如图1所示。

    图1 未知意图配置页面

相关文档