关于NAT的问题,网上有很多文章。但是自己经历的过程有所不同,所以还是mark一下。
1.首先需要配置
/usr/local/freeswitch/conf/sip_profiles/internal.xml
<param name="ext-rtp-ip" value="116.62.xx.xx"/>
<param name="ext-sip-ip" value="116.62.xx.xx"/>
2.这时出现的问题就是
在4G网络能打通,
但是没有rtp传过来,
不过在公司内网可以打通,可以正常通话。
最后证明这个是防火墙的问题
请参阅如下的博客,上面讲的很清楚。
Free Switch处于防火墙内,因此需要在防火墙上开启相关端口映射,否则无法接收到数据包.
尤其是其中的端口16384-32768适用于rtp流传输的,必须开放后才能收到数据包。
https://blog.csdn.net/zjclugger/article/details/74002497
3,过程中间的尝试
中间做过很多尝试,最后都证明没有关系
a, STUN 方法
在网上找到了一些stun的服务器,去协助穿越
<param name="ext-rtp-ip" value="stun:sip1.lakedestiny.cordiaip.com"/>
<param name="ext-sip-ip" value="stun:sip1.lakedestiny.cordiaip.com"/>
b,在FREESWITCH 权威指南这本书里面也有相关的章节介绍。
比如用拨9616 看看是否是Alice端双通。如果不是,可以用9664 加 originate的方式看看是否单通