背景
昨天,在私有云环境下,出现大量拨打不通情况;于是按照以下思路去解决这个问题
排查思路
1、去外呼平台相关的结果表里面去查看挂机原因,发现了很多410、480的挂机信令返回;
2、410、480异常信令返回通常认为是对接网关返回的错误信令,于是通过抓包方式去查询是否是对接网关问题。通过查找系统相关路由(外呼根据主叫路由查找到对应网关,这些网关路由都正确,外呼已经发送到相关网关了,但是抓不到包)
3、外呼已经发送到相关网关了,但是抓不到包,于是猜想可能是freeswitch的问题,导致错误,于是去查询freeswitch的相关后台日志。
发现Ping有失败的情况;所以去查看对应对接网关
<gateway name="gw108">
<param name="realm" value="112.3.18.9:5060"/>
<param name="username" value="not-used"/>
<param name="password" value="not-used"/>
<param name="ping" value="3000"/>
</gateway>
ping操作是每隔几秒去ping配置的网关,如果对端网关在这个ping的时候,返回了异常,那么此时freeswitch将会把这个异常挂起,直到下次ping的时候返回成功,才会把这个挂起销毁。在异常挂起的期间,freeswitch认为这个网关不可用,所以发起的呼叫,freeswitch会自动将其挂断,返回异常错误信令。
4、添加ping的原因是:之前对接其他硬件网关时候,sip互相通信时候是连接的网路会自动断开,所以加了ping操作。
总结
1、freeswitch的ping操作慎用,他会影响ping时间端内呼叫异常;ping的设置需要网关对端配合,如果对端在ping的时候,只要对端网关在服务可用情况下返回成功。并且在freeswitch下查看对应的ping日志都返回正常,此配置是可用的。
2、话务平台对接网关发起呼叫的过程中,返回的410、408并不全是对方网关或者中继返回的错误信令牌。有可能是freeswitch异常挂起导致自动挂机。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。