前幾天朋友找我幫忙,說碰到很大困難了,實際上,不過如此
現象是這樣的:
FreeSWITCH mod_unimrcp 工作不正常
FS 和 mrcp-server 兩邊同時抓包,看到的是:
sip 流程正常
FS TCP 連接到 mccp-server 失敗,后者連 TCP 同步請求都沒有收到
更奇怪的是
如果 FS 不發 SIP 消息,從 FS 一側 telnet?mccp-server-ip 1544 (mrcp 偵聽端口) 是正常的
而 FS 發了 SIP 消息之后,再 telnet 就失敗,卡了大約 1 分鐘之后,telnet 才能恢復正常
根據過往經驗,這個明顯是 ALG 在搞震
等問題復現時,在 FS 一側做 路由測試,發現卡在某一跳,當然是查這里的 ALG
經過反復溝通之后,給我一幅圖,SIP 呀,H.323 呀,TFTP 呀,問我哪些需要 disable;當然是 SIP
關閉 ALG 的 SIP 之后就解決了
感覺內網環境好復雜,阿里云騰訊云規則非常透明,不用猜
貼部分對話
在看了 mrcp server 的包之后
wireshark 打開包
菜單,電話,voip call
找到第一個呼叫
再定位到 200 ok
body 如下:
v=0?
o=UniMRCPServer 6088670686292482763 126554817145373442 IN IP4 1.1.1.1?
s=-?
c=IN IP4 1.1.1.1?
t=0 0?
m=application 1544 TCP/MRCPv2 1?
a=setup:passive?
a=connection:new?
a=channel:1f6b8de88cf04399@speechrecog?
a=cmid:1?
m=audio 5000 RTP/AVP 8?
a=rtpmap:8 PCMA/8000?
a=recvonly?
a=mid:1?
??
可以看到 mrcp 地址 1.1.1.1 ,端口為 1544wireshark 設置 filter ? ? tcp.port == 1544
一個包都沒有
沒收到 FS 的 tcp 同步請求