freeswitch在多网卡服务器下如何指定IP地址

FreeSWITCH多网卡服务器指定IP地址配置教程
本文详细介绍了如何在FreeSWITCH多网卡服务器环境下,指定使用特定IP地址的方法,包括修改配置文件和重启服务的步骤。

freeswitch在多网卡服务器下如何指定IP地址  

2013-03-19 16:33:50|  分类:            FreeSwitch            |  标签:                   |举报          |字号 订阅       

关于如何指定 FreeSWITCH使用多网卡服务器上的某一个 IP地址,FS官网给了新的方法,如下:

设置方法:

1、修改文件internal.xml和external.xml

位置:/usr/local/ freeswitch/conf/sip_profiles/internal.xml

修改内容:

<param name="rtp- ip" value="192.168.1.3"/>
 <param name="sip- ip" value="192.168.1.3"/>

注:192.168.1.3为指定的 IP地址

2、修改文件sofia.conf.xml

位置:/usr/local/ freeswitch/conf/autoload_configs/sofia.conf.xml

修改内容:

<param name="auto-restart" value="false"/>

该属性设置的目的是防止FS在检测到 IP地址发生改变后,自动重启sofia模块。

3、重启 FreeSWITCH,开始测试。

over.


下面是旧的设置方法,不担保是否有问题----------------------------------------------------------

本篇教程基于Centos 5.5下面的 FreeSWITCH1.0.6,使用的是 FreeSWITCH自带的样例配置文件。
服务器网络配置如下:
        eth0:连接公网,拥有动态 IP(使用DHCP获取)
        eth1:连接内网,拥有静态 IP
该教程假设已经有一个号码为1000的sip话机连接到系统上,用于呼入呼出。系统默认配置文件
 位于/usr/local/ freeswitch/conf.

下面为具体的设置步骤:
1、打开conf目录下的vars.xml文件,并做如下修改:
    1)查找变量domain,并修改为公网 IP地址或DNS地址
            <X-PRE-PROCESS cmd="set" data="domain=(公网 IP)"/>
             
     2)移动到文件末尾,增加如下变量
        其中,$${local_ ip_v4}代表系统所在的公网地址,192.168.100.1是用于连接内网的私有 IP地址
            <X-PRE-PROCESS cmd="set" data="external_sip_ ip=$${local_ ip_v4}"/>
             <X-PRE-PROCESS cmd="set" data="external_rtp_ ip=$${local_ ip_v4}"/>

             <X-PRE-PROCESS cmd="set" data="internal_sip_ ip=192.168.100.1"/>
             <X-PRE-PROCESS cmd="set" data="internal_rtp_ ip=192.168.100.1"/>

 2、修改sip的external与internal配置文件
    打开sip_profile/external.xml文件,反注释下面的行:
        <param name="force-register-domain" value="$${domain}"/>
         <param name="force-register-db-domain" value="$${domain}"/>
         <param name="dbname" value="share_presence"/>
         <param name="presence-hosts" value="$${domain}"/>
             
     打开sip_profile/internal.xml文件,反注释相同的行:
        <param name="force-register-domain" value="$${domain}"/>
         <param name="force-register-db-domain" value="$${domain}"/>
         <param name="dbname" value="share_presence"/>
         <param name="presence-hosts" value="$${domain}"/>

 3、向sip profile中添加网关配置            
打开文件sip_profile/external/example.xml,进行必要的修改,以便连接到sip服务提供商那。具体的配置教程很多,不再详述。需要注意的是要将网关名称改为“multi-example”,后面会用到。
    <gateway name="multi-example">

 4、添加由上一步添加的网关呼入的路由
 为了让系统可以正确的路由DID,需要修改拨号方案文件:dialplan/public/00_inbound_did.xml。根据sip provider传递过来的目标号码,修改destination_number表达式的值,如下:
 修改前:  <condition field="destination_number" expression="^(phonenumber)$">
修改后:  <condition field="destination_number" expression="^(4075551234)$">

 5、修改呼出路由,应用上面添加的网关配置
 为了能让系统跑起来并运行正常,最后要修改的配置是在呼叫路由中添加第三步中配置的sip provider。修改文件dialplan/default/01_example.com.xml,并做如下修改:
 找到<extension name="domestic.example.com"> 所在的块,
    修改前: <action application="bridge" data="sofia/gateway/${default_gateway}/$1"/>
     修改后: <action application="bridge" data="sofia/gateway/multi-example /$1"/>

 6、最后一步,重新加载配置文件和sip模块
    >reloadxml
     >reload mod_sofia
    或者,直接重启 FreeSWITCH
   所有的操作完成后,就可以拨打你所配置的DID号码,紧接着你的sip话机就会开始振铃。同样,也可以通过sip话机拨打外线电话。
<think>嗯,用户的问题是关于如何在FreeSWITCH上配置双IP,让内外网同时可以注册。首先,我需要回想一下FreeSWITCH的网络配置相关知识。记得FreeSWITCH默认监听的是内网地址,比如192.168.x.x或者10.x.x.x这类私有IP。如果用户有双网卡,或者一个网卡有多个IP,可能需要配置不同的IP地址来分别处理内外网的流量。 首先,用户提到内外网双IP环境,可能需要修改SIP配置文件,让FreeSWITCH同时绑定到内网和外网的IP地址。这通常涉及到修改vars.xml中的相关变量,比如设置internal和external的IP地址。比如,internal可能指向内网IP,而external指向公网IP。然后,可能需要调整sip_profiles,确保internal和external的配置文件都启用,并分别绑定到对应的IP上。 然后,用户可能需要配置防火墙,确保外网的端口(比如5060、5080)是开放的,同时内网的端口也被允许。根据引用[2],关闭防火墙可能是一个步骤,但实际生产环境中可能需要更细致的配置,比如开放特定端口而不是完全关闭防火墙。 另外,用户可能需要处理NAT的问题,特别是外网注册时,可能需要设置ext-sip-ip和ext-rtp-ip为公网IP,以确保SIP信令和媒体流正确穿越NAT。这部分在引用[1]中可能没有提到,但根据常见的FreeSWITCH配置,这是必要的步骤。 还有,用户可能需要配置不同的域(domains)来区分内外网用户,比如内网用户使用一个域,外网用户使用另一个域。这样可以在权限和路由上进行区分,确保安全性。引用[3]提到添加多个域和配置文件,这可能涉及到修改目录中的用户配置,设置不同的网关或者ACL(访问控制列表)。 然后,我需要考虑用户可能遇到的问题,比如端口冲突,如果两个sip profile都绑定到同一个端口,可能需要调整端口号,或者确保使用不同的IP地址。另外,路由设置是否正确,确保内外网的流量能够正确路由到FreeSWITCH。 还有,测试部分,用户可能需要使用SIP客户端分别从内网和外网进行注册测试,检查是否都能成功。如果外网无法注册,可能需要检查防火墙规则、NAT设置以及FreeSWITCH的日志,查看是否有错误信息。 总结一下,配置步骤可能包括:修改vars.xml中的IP设置,配置internal和external的sip profile,设置NAT相关参数,调整防火墙,配置多域和用户权限,最后进行测试。同时,用户需要根据实际网络环境调整这些配置,比如IP地址和端口号。</think>### FreeSWITCHIP注册配置指南 要实现内外网双IP同时注册,需通过以下步骤配置网络接口和SIP参数: --- #### **1. 修改核心配置文件** 编辑`conf/vars.xml`,分别定义内网和外网IP地址: ```xml <X-PRE-PROCESS cmd="set" data="internal_ip=192.168.1.100"/> <X-PRE-PROCESS cmd="set" data="external_ip=203.0.113.50"/> ``` --- #### **2. 配置SIP Profiles** **内网配置** (`conf/sip_profiles/internal.xml`): ```xml <profile name="internal"> <param name="listen-ip" value="$${internal_ip}"/> <param name="sip-port" value="5060"/> <!-- NAT穿透设置 --> <param name="ext-sip-ip" value="$${external_ip}"/> <param name="ext-rtp-ip" value="$${external_ip}"/> </profile> ``` **外网配置** (`conf/sip_profiles/external.xml`): ```xml <profile name="external"> <param name="listen-ip" value="$${external_ip}"/> <param name="sip-port" value="5080"/> <!-- 启用外网TLS加密 --> <param name="tls" value="true"/> </profile> ``` --- #### **3. 防火墙策略调整** 开放外网端口(以CentOS为例): ```bash firewall-cmd --permanent --add-port=5060-5080/udp firewall-cmd --reload ``` *注:若需简化操作可临时关闭防火墙[^2],但生产环境建议保留规则。* --- #### **4. 多网卡路由配置** 若服务器有多个物理网卡,需确保内核路由表正确指向: ```bash ip route add 192.168.1.0/24 dev eth0 # 内网网卡 ip route add 0.0.0.0/0 via 203.0.113.1 dev eth1 # 外网默认路由 ``` --- #### **5. 分场景注册验证** - **内网测试命令**: ```bash sofia status profile internal | grep "192.168.1.100" ``` - **外网测试命令**: ```bash sipcmd -P udp -s sip:1001@203.0.113.50:5080 ``` --- #### **关键问题排查点** 1. **端口冲突**:检查5060/5080端口是否被其他进程占用 2. **NAT环路**:外网IP需正确设置`ext-sip-ip`,避免媒体流路径错误[^3] 3. **ACL白名单**:在`conf/autoload_configs/acl.conf.xml`中添加内外网段 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值