吐槽向复盘:对接新运营商SIP中继时,认证机制、头域格式、号码转换轮流坑了我一遍。记录一下当时的排查思路和最终方案,给后来人避坑。
FreeSWITCH部署在华为防火墙后,公网对端能收到INVITE但ACK总丢,BYE之后通话还不释放。抓包一看,NAT已经改了Contact头,但Via和Record-Route里的IP却和实际出口对不上——防火墙的SIP ALG在改写时序和改写范围上各有一套自己逻辑,禁用它又怕影响对端NAT穿越。最后靠抓包定位ALG的改写盲区,手动在SIP配置里对齐NAT行为,解决问题。
freeswitch SIP中继注册头导致的验证,返回403不代表密码错了,问题往往不在认证环节——运营商校验的是 SIP 头域里的域名格式,而不是你的密码。From/To 头域里的 `@your_domain.com` 和 Contact 头域里的 `172.16.1.100` 不匹配运营商的要求,注册请求在认证之前就被拒绝了。