



关于VOIP呼叫的一个案例
前些日子,客户反应VOIP电话经常作处于第一次呼不通,重拨一次马上又好了的状态.呼进呼入都一样,开始以为是网络不稳引起的(那时处于网络改造,时不时会有些丢包之类的情况发生)可是慢慢的投诉越来越大多,搞得客户意见非常大.感觉不太正常了,就开始了检测.
首先看网络状态是不是有问题,结果观察后,基本上一切正常.恰巧正在观察时,有一个客户直接打电话到我手机上来(私人关系比较好的那种,呵呵),说了在几点几分拨打某路电话,第一次不能呼叫,按重拨又好了,在几点几分等又发生同样的情况.
根据他的反应,反应应该不是出网络问题了,先是看软交换的相关模块呼叫日志,得到了403的代码,证明呼叫鉴权失败,可是一检查帐号配置,根本没有错,这时我就纳闷了,那问题应该出在哪里呢?
于是决定做个测试,做完测试后,记录表示,在30分钟的拨测中,一直不停拨下去,这种情况不会发生,可是间隔不等的时间,就可能发生第一次不能呼通,重拨也不一定能呼通,有时要拨好几次才能通.
这种情况从来没有发生过,我接触VOIP也不久(小弟从法律专业转行过来的,不到三个月哦,呵呵~~),一时搞得没有主意了.只好老老实实把所有的测试包抓下来,平台的包抓下来,一行一行的找,我的天,上万行类,眼睛都找花了都没找到.
边找边想,突然想到出问的电话都出现在我们的光纤网络下,而ADSL用户却没投诉过,于是又模拟了二种网络环境下的测拨,结果果然ADSL一点问题都没有,那么问题不是软交换了,而是在网络上了.
考虑到白天的呼叫比较多,要在一个日志里找一路通话的记录相当的困难,于是等到凌晨2点了,没什么电话时,开始抓包了,这次平台的日志里包的记录数基本就只有我那些测拨了.终于,我发现一个情况了,经过NAT出去后的端口有变!!!
以下为简单的一个说明(包太多,不发了)
02:54:39 2103---->CISCO PIX515 NAT-port:59864
02:55:03 2103---->sip server reg port:59864
02:55:09 2103---->CISCO PIX515 NAT-port: 59973
02:55:55 2103(主叫)---->5621138(被叫) PORT:59864(呼叫端口)
02:55:55 sip----->2103 code 403
上面只是四行简单的说明,当2103通过第一次NAT后,其端口为59864,同时在软交换服务器的端口与其一致的,但是到了55分09秒时NAT端口又变了,而接下来的进行的呼叫还是采用老的端口,这就导致了接下来一路403代码回应了.
原因终于找到了,原来我们的软交换系统是60秒的保活机制,而NAT算了一下只有30秒,导致软交换数据库没有更新,系统呼叫是根据IP和PORT来进行路由接通呼叫的.当呼叫上来时,系统在数据库里找不到59973的端口,就认为它是非法呼叫而拒绝掉了.
问题差不多就是这样了,于是在凌晨快4点时给电信打电话问一下是不是我们NAT设备上的保活机制是不是只有30秒,得到了肯定的答复后,将状况说给技术人员听后,将保活参数改成了90秒,结果问题解决.
后面了解到,因为我们的光纤改造,给的NAT设备是从别处拿来的,配置上技术人员没好好看过,结果就造成了这种状况.而用户反应的重拨又好了,可能是刚好等几秒钟设备端口同步了就能打了,而我在实际中测试的有时重拨几次仍不通,是因为仍旧没同步造成的.
通过这次事故,感到要学的东西太多了,VOIP是个系统的工程,它涉及的方方面面太多了,呵呵,够我学的了,谁教偶从法律专业转过来的呢?的确有蛮吃力的.有时VOIP发生故障,也不一定全是系统问题,跟网络的联系也挺大的.
由于第一次写这样的心得,没有一点专业水准,谅解!!