本文仅讨论FreeSWITCH部署在NAT之后(里面)这种场景,假设私网地址与公网地址有一个确定的映射关系,并不是要讨论NAT穿越技术。
这里只涉及mod_sofia(SIP信令及媒体)相关配置,其他模块不在本文讨论之列。
配置
mod_sofia默认提供两个profile,可以理解成是两套配置,最主要的区别是监听端口不一样,其他的区别包括是否启用TLS加密,使用哪个拨号计划等等。这里以internal profile为例。
配置预处理变量
FreeSWITCH的惯例把预处理变量定义在vars.xml文件中,然后再由其他配置文件去引用。这里我们主要关注公网地址以及SIP监听端口。
etc/freeswitch/vars.xml
<include>
<!-- 注意,X-PRE-PROCESS开头的配置都是预处理配置,有点像是定义全局变量,但是变量的值可以在程序启动时动态获取到 -->
<!-- 这两个变量必须要设置成公网IP,有3种方法配置公网IP: -->
<!-- 1、配一个固定的公网IP -->
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=172.21.221.137"/>
<X-PRE-PROCESS cmd="set" data="external_sip_ip=172.21.