FreeSWITCH部署在华为防火墙后,公网对端能收到INVITE但ACK总丢,BYE之后通话还不释放。抓包一看,NAT已经改了Contact头,但Via和Record-Route里的IP却和实际出口对不上——防火墙的SIP ALG在改写时序和改写范围上各有一套自己逻辑,禁用它又怕影响对端NAT穿越。最后靠抓包定位ALG的改写盲区,手动在SIP配置里对齐NAT行为,解决问题。
FreeSWITCH对接传统PBX时,一方在NAT后出现单向通话或无声音。排查过程从STUN绑定响应入手,发现对端是对称型NAT导致的非对称路径拒绝。这篇文章复盘完整的排查链:SDP解析→ICE候选交换→STUN Binding→对称型NAT判定→TURN中继回退,重点剖析为什么最终选了TURN而不是其他方案。