前几天朋友找我帮忙,说碰到很大困难了,实际上,不过如此
现象是这样的:
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 同步请求