案例分享:電話講一講就斷話,原來是SIP ALG搞的鬼

這裡跟大家分享使用EVOX的客戶,因為辦公室網路的設定有開啟SIP ALG,而造成問題的主要原因。由於會從很技術的方面解釋,所以先說結論,SIP ALG 可能會造成的問題現象(甚麼事是SIP ALG,請參考 什麼是SIP ALG):

  1. 通話到一半,電話會莫名其妙的被掛斷,通常是30秒。
  2. 電話撥通時,只有一邊聽的到聲音,另一邊則是完全沒聲音。

如果對技術細節沒興趣的,看到這裡可以右轉離開了。

A公司是一間國際知名的醫藥相關企業,辦公室網路使用非常高規格的防火牆設備來維護資訊安全。A公司導入EVOX之後,發現IP話機不知為何通話開始30秒之後,就會自動被掛斷,造成使用上很大的困擾。

EVOX團隊與A公司IT討論以及測試之後,發現一個問題,這裡由下面圖片來解釋

  • 圖一:EVOX送給A公司防火牆的訊息內容

這是封包是EVOX主機送給IP話機的通話訊息,在IP話機收到之前,會先經過A公司的防火牆設備。這個訊息裡面會記錄封包的網路路徑為 EVOX aSBC -> EVOX proxy -> EVOX AWS entry這個順序,以方便IP話機回傳訊息時可以傳送到正確的位置。

  • 圖二:A公司防火牆轉送給IP話機的訊息內容

但是當IP話機收到EVOX主機傳送過來的訊息時,裡面紀錄的路徑被修改成 Company A IP -> EVOX proxy -> EVOX AWS entry。

  • 圖三:IP話機回覆此訊息的訊息內容

所以當IP話機回覆此消息時,規劃的傳送路徑變成錯誤的 EVOX AWS entry -> EVOX proxy -> Company A IP (正確傳送路徑應該為EVOX AWS entry -> EVOX proxy -> EVOX aSBC),也因此這個回覆沒辦法正確的回送到EVOX主機,造成EVOX主機誤認為此通通話異常,因而在30秒過後將電話取消。

在確認問題點之後,請A公司將SIP ALG設定關掉之後,通話30秒後被掛斷的問題就解決了。