前言
用户在实时质检时,开启了主叫或被叫静音检测功能,但是听录音时,主叫或被叫明明没有任何声音,但是通话没有被挂断。
说明主叫或被叫的静音阈值太低,导致系统没有把很小的声音认定为静音;或者检测非静音的持续时间太短,导致系统没有认定为静音。
功能介绍
静音检测
功能:可以对主叫或被叫在接通后的规定时间内开启静音检测。例:设置为10,如果主叫或者被叫在接通后的10秒内没有声音,质检系统会强制挂断通话。
动作与参数
execute_on_answer_detect_silence=cti_detect_silence_session:<timeout_ms> <silence_hits> <silence_thresh>
execute_on_answer_detect_silence
:应答后开启静音检测。timeout_ms
:检测时间,单位:毫秒(ms)。silence_hits
:在检测时间内,如果非静音的持续时间如果超过了设定的时间,就不会挂断通话silence_thresh
:静音阈值,通道的音量超过这个值,认定不是静音。
测试流程
分离声道录音
找到不符合预期的双声道录音,使用声音编辑软件(如:Cool Edit Pro 2.0
)分离出静音那一声道的录音,另存为wav格式的录音文件,例:把分离出来的录音文件命名为1.wav
上传至服务器
将分离出来的1.wav
录音文件至服务器路径中,例:上传至服务器路径/ddt/fs/sounds/cti。
创建并启用拨号方案
- CCAdmin中创建拨号方案用来测试静音挂断的有效阈值和持续时间。
silence_hits
和silence_thresh
这两个参数默认都设置为10。
2. external呼叫路由启用该拨号方案:
测试方法
- 安装sipPhone客户端
- Windows 7以上版本 http://down.ddrj.com/phone.zip
- MacOS 版本: http://down.ddrj.com/phone.dmg
- 注册本地账号
- ssh终端执行命令:
fs_cli -x "sofia status"
,获取到external的sip-ip和sip-prot。
sipPhone客户端呼叫sip:10011001@sip-ip:sip-prot
,模拟呼入测试。
- 利用控制变量法,控制一个参数不变,修改另一个参数。重新呼叫,找到参数的理想值。
例:控制参数silence_hits
不变,修改参数silence_thresh
为50。如果值为10时,通话没有挂断;值为50时,通话挂断了。那就不断压缩取值范围,找到静音挂断的参数理想值。
测试完成
经过多次测试后,得到自己预期的值后,例:参数silence_hits
的预期值为15,参数silence_thresh
的预期值为30。
可将这两个值写入到freeswitch的vars配置文件中,保存并重启freeswitch。实时质检在开启静音检测时,会自动调用配置好的值。
变量参数格式:
<X-PRE-PROCESS cmd="set" data="cti_detect_silence_threshold=15 30"/>