校內網路電話一直有通話1分半鐘就被切斷的問題,起初也以為是中華電信的ITA(voip gateway)或學校電話總機造成,但學校總機維護廠商說不是總機造成、局端駐點工程師也協助更新了三處班級副控DGS1510韌體,顯赫也打電話來了解狀況與協助測試,但始終無法排除問題。於是昨天去借了兩台班級電話來測,然後突發奇想地把Firewall by pass再測試看看,結果就這麼發現神奇且尷尬的結果是狀況竟然消失了耶!!!那個一直以來造成這問題的罪魁禍首就是我啦~結局怎麼可以是這樣~不能這樣對我…
抓出問題癥結點了,但是問題要怎麼解決呢?爬了一些國內外文章提到SIP ALG在多數的路由器與防火牆中預設會是啟用的狀態,且在NAT環境的架構下常會遇到斷話或是聽不到聲音等狀況,打電話與alex討論了一下也說他們公司與服務過的許多公司行號會把sip獨立出來並綁定IP與內網溝通而不會直接把sip server放到內網的FW或L3底下。所以只好測試關閉FortiGate預設啟用的SIP ALG,看看斷話問題能否解決,作法是先在Global確認session-helper內容是否有包含sip,結果config果然有個edit 13 name 的設定內容叫做sip…
FG(global)# config system session-helper
FG( session-helper
)# show
接著將SIP ALG刪除…FG(
session-helper
)# delete 13FG(
session-helper
)# end
然後切換vdom到root,再輸入指令FG(
root
)# config system settingsFG(
settings
)# set default-voip-alg-mode kernel-helper-basedFG(
se
ttings )# endFG(
root
)# config voip profileFG(
profile
)# edit defaultFG(
default
)# config sipFG(
sip
)# set status disableFG(
sip
)# endFG(
default
)# endFG(
root
)# end
然後重新啟動設備,再次檢視session-helper config的edit 13 sip設定,結果已不存在。
最後測試通話時間超過15分鐘也沒再被斷線了(收工)。