空号识别,本质是语音识别,所有识别结果,都是通过分析声音获取的,和信令无关。
比如识别结果是空号,那么这个号码是不是真的是空号呢,这个不能保证的,只能保证,系统呼叫这个号码听到的声音和空号样本匹配上了。
比如系统检测到是空号,用自己手机呼叫这个号码是正常的,因为外呼的线路呼叫接续出了问题也可能提示空号的。
有以下几个可能
1 线路问题,就是 系统使用的线路有问题,把正常的号码播放了空号的提示音。 (大部分是这样的问题)
2 运营商问题, 就是运营商有时候会把正常的号码播放空号的声音,重新呼叫一次又正常了,这样的也属于线路问题(外呼发起的运营商和被叫号码归属地运营商接续出问题)。 (小概率可能出现)
3 样本库问题,就是系统把一个其他样本标志成空号。 (非常小概率,默认样本库基本上没这样的问题)
怎么排查问题,录音, 1 fs系统去录音未接通之前的声音,2 da2.conf.xml 配置去打开录音 3 通过命令动态开录音 da2 record /tmp (第三个参数录音目录,可以自己设置),
听一下录音,就可以知道是 线路问题,还是样本库问题。
fs_cli 里面执行
显示状态,可以判断和daserver连接是否正常。看输出的 ready是否1,limit是否正确。
da2 show
打开录音
da2 record /tmp
关闭录音
da2 record
界面展示问题
如果信令结果是呼叫应答的,分类到应答
如果呼叫结果是没应答的
先根据 da2_finish_cause 来判断,如果 da2_finish_cause的结果是 stoptone,那么界面显示 da2_tone,如果da2_tone等于sample,那么显示da2_sample_name。
2.13版本开始添加了变量da2_result,就是这样规则来设置的。
da2_finish_cause的其他检测原因为了更友好的显示,建议如下显示
bus_close 如果呼叫持续时间小于30秒,分类到呼叫失败,如果大于30秒,分类到未识别
detecttime_timeout 如果da2_last_tone有数据,就根据 da2_last_tone 来显示,如果没有,就分类到未识别。
answer 分类到应答
其他值,不应该出现,直接归类到其他。