有时候由于运营商送到ISR上的挂断音信号衰减甚至送过来的就是不标准的挂断音,这样会导致ISR不能正常识别挂断音而导致线路无法正常挂断一直被占用。解决方法,我们可以自己在ISR上做一个与运营商向匹配的挂断音,使其能正常识别挂断音并正常释放线路。
1. 首先我们要发起一通call然后将其挂断,并在ISR上来抓取运营商送过来的挂断音的频率:
①在IOS 15.2以前的版本用如下命令:
voice hpi capture buffer 50000000
voice hpi capture destinationflash:pcm.dat -----指定存放路径,15.2之后本是不需要指定文件名的。
test voice port x/x/x pcm-dumpcaplog 7 duration 255 ------开启抓取,抓取完成后no掉这条命令,否则会一直在抓。
②在IOS 15.2之后的版本用如下命令:
voice pcm capture buffer 2000000 -------能抓多长时间的包
voice pcm capture destination -----指定存放路径,15.2之前是需要指定文件名的,并且15.2之前是没有dial-peer的抓取方法的。
dial-peer voice x voip/pots --------当一通call命中这个dial-peer时就开始抓取PCM信息。如果是pots口,因为有多个Bchannel,同时会有很多call,这时候会自动在每一通call上都抓一个信息出来。
pcm-dump caplog 7 duration xxx
也可以不用dial-peer来抓,直接用test开始抓PCM音频信息:
testvoice port x/x/x pcm-dump caplog 7 duration 255
2. 在抓取PCM信息中,我们可以用命令show voice pcm capture来查看相关抓取信息。
3. 抓取完成后记得把之前的命令都no掉,然后在flash里将生成的.bat文件copy到PC上,并上传到http://pcet.cisco.com/进行decodec。
4. decodec成功后会生成几个.wav的音频文件,将其下载下来,找到Sin这个文件,用cool edit这类音频编辑软件打开。
5. 分别选取有声音和无声音的部分,查看它的时间长短,记住时间,这就是后面配置的cadence参数,一般两部分的声音是一样的。选取的时候,鼠标向左向右分别稍稍移动一下,分别记录下数字,和刚才的数字分别的差值应该也是一样的,这样就是声音长短的波动值,本次中cadence值是356,波动是8。如图1。
6. 用鼠标选中有声部分的音频,然后使用分析工具中的频谱分析,获取音频的频率。如图2。
7. 在频谱分析器界面,用鼠标放在分析数据的最高的那个点,下面所显示的值就是你录到的声音的频率。本次中frequency是465Hz,鼠标左右移动的数值分别减去 465,就应该是频率的波动值。如图3。
8.这时获取的信息已经够了,可以开始配置路由器了
在全局配置下
voice class custom-cptone test ----首先自定义 cptone的名字
dualtone disconnect ----配置挂断音参数
frequency 465 ----挂断音频率是4655Hz,刚才捕获的
cadence 356 356 ----挂断音的声音长短,包括有声和无声部分
voice class dualtone-detect-params 1
freq-max-deviation 25 ----这里定义的是刚才获得的465频率偏离的参数,最大偏离25,也就是说,频率在440---490之间
cadence-variation 15 ----定义挂断音时间的偏离浮动参数。
Voice-port 0/2/0
Supervisory disconnect dualtonemid-call ----启用挂断音探测
Supervisory custom-cptone test ----启用自定义的cptone
Supervisory dualtone-detect-params1 ----启用定义的波动范围
Cptone CN ----作为呼叫时使用的Cptone
Timeouts wait-release 5