【Freeswitch】【媒体NAT穿越案例二】借助Opensips实现内网IP转换

什么是Opensips,这里不做介绍,不知道的请自行google了解一下

如果存在这样的场景,Freeswitch部署在内网,它没有在SDP中提供公网IP(ext_sdp_ip配置为内网)。
在防火墙策略方面,Freeswitch仅开放rtp端口和SIP端口

网络拓扑结构

如果在网络拓扑上,FS是依托于Opensips做信令层通信的话,可以借助Opensips来实现SDP的NAT翻译。


网络拓扑

NAT翻译效果

这是FS发送的INVITE中携带的SDP,IP地址都是内网。它在经过Opensips前是这样的,


NAT翻译前

经过Opensips翻译后,是这样的,


NAT翻译后

Opensips的配置

那么Opensips应该如何配置呢?
主要通过fix_nated_sdp函数来实现sdp的翻译

opensips脚本配置

fix_nated_sdp(flags [, ip_address [, sdp_fields]])函数解析:
flags必选参数,该值可以是以下值或以下值的按位或得到的值:
0x01 --在SDP中增加“a=direction:active”行;
0x02 --使用消息的源地址或者ip_address参数指定的Ip地址重写SDP中媒体IP地址(“c=”)。
0x04--在SDP中增加”a=nortpproxy:yes”行。
0x08 --使用消息的源地址或者ip_address参数指定的Ip地址重写SDP中源IP地址(“o=”)。
0x10 --强制重写空的媒体IP和空的源IP地址。如果没有此标志,空IP将保持不变。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容