最近在使用freeswitch的过程中遇到这样一个问题:
首先做一下环境介绍吧,本人的FS环境是部署在天翼云上(做端口印射),FS内网网段为192.168.1.XXX;
情景描述:
A(001软电话或IP话机)、B(002,话机为IP话机)分机注册在本地内网;
B拨打A时可以拨通,但是A先挂断时,B无法挂断(收不到bye);
A拨打B时无法拨通,3秒挂断;
这个情景,一开始认为是穿越问题,将STUN开启后,发现问题还是没有得到解决,于是抓包分析发现,这是FS的问题,如图:
在这里我们可以很清楚的看到FS将消息送到了192.168.1.197这个地址,也就是说FS将此IP认成了跟自己的内网IP,经过试验验证,将注册的内网IP网段改成192.168.2.xxx,此时就不会出现上述的情况,通话一切正常,可见有时候FS有点聪明过头了。
想要彻底解决这个问题,可以关掉强制NAT检测,internal中将<param name="aggressive-nat-detection" value="true"/>的注释去掉,重启freeswitch即可。