freeswitch-落地閘道器對接ping導致的危險問題

語言: CN / TW / HK

背景

昨天,在私有云環境下,出現大量撥打不通情況;於是按照以下思路去解決這個問題

排查思路

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異常掛起導致自動掛機。