Freeswitch NAT问题

拓扑图:

sip_A 注册在服务器FS_A 上,处在广域网中

sip_B 注册在服务器FS_B上,处在局域网中

一. 对于可以更改FS_B的配置的情况

可以配置FS_B的出网关的sip_profile文件 <param name="ext-rtp-ip" value="<公网IP>"/>  来解决NET问题。

二. 实际中右侧配置不能被更改的情况

2.1 . sip_A 呼叫 sip_B

1. 在路由器上增加映射,假设映射为:7080 --> 192.168.1.2:6080。实现 sip_a到sip_b 的过程

2. FS_A 发起sip_B 的呼叫的拨号计划中增加  <action application="set" data="sip_sticky_contact=true"/>,实现freeswitch对sip消息的正常响应

增加的这个通道变量的原因是由于 FS_B发出的sip消息源地址是11.22.33.44:7080 ,contact地址为<192.168.1.2:6080>; FS_A 对响应消息会直接回到 IP: 192.168.1.2:6080,而这个地址是不可达的。增加sip_sticky_contact通道变量,使FS_A 发送响应会忽略contact地址,使用源地址

2.2 . sip_B 呼叫 sip_A

1. 配置 FS_A 的 网关文件,增加 <param name="aggressive-nat-detection" value="true"/>

扫描二维码关注公众号,回复: 11134947 查看本文章

同样也是为了在回FS_A的响应是使用源地址作为发送地址,而不是contact地址。fs_a会知道fs_b 处在NET后面

发布了10 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/a01021111230/article/details/84943481
今日推荐