FreeSWITCH之配置G729转码

在互联网大数据时代的背景下,作为服务器程序,高并发尤为重要,线路带宽资源就显得更加弥足珍贵了。目前比较流行语音编码有2种G711、G729。由于语音需要采用上下行对等的宽带,G711每线需要大约90kbit/s/S的带宽,而G729每线仅需要30kbit/s/S的带宽。所以采用G729编码就节约了大量带宽。
FreeSWITCH默认是不支持G729转码的,商业版本的G729效率是最高的,不过要10刀1个并发,相信很少公司会舍得采用这么高的成本去做业务。这里介绍一下freeswitch配置开源的bcg729进行转码的方法:

1.准备工作:与当前运行的FreeSWITCH版本一致的源码一份,Linux 虚拟机
2.编译bcg729:
2.1 在FreeSWITCH官网下下载源码 [freeswitch-1.10.06.tar.gz请添加链接描述](http://files.freeswitch.org/releases/freeswitch/freeswitch-1.6.19.tar.gz) 
            解压源码到/usr/src/freeswitch-1.6.19
2.2 进入源码../src/mod/endpoints目录
            cd /usr/src/freeswitch-1.6.19/src/mod/endpoints
2.3 Git检出FreeSWITCH适用的G729模块(这部分源码是对BCG729进行FreeSWITCH的适配)
            git clone https://github.com/xadhoom/mod_bcg729.git
2.4 将mod_bcg729改名为mod_g729
            mv mod_bcg729 mod_g729
2.5 返回FreeSWITCH源码主目录,执行配置
            ./configure
2.6 进入../src/mod/endpoints/mod_g729目录,并执行编译
            cd /usr/src/freeswitch-1.6.19/src/mod/endpoints/mod_g729
            make
            编译时如果提示找不到头文件,可以将FreeSWITCH源码include目录下的对应头文件复制到
            ../mod_g729/bcg729/include/目录,还有其他找不到的头文件可以使用find命令
            在FreeSWITCH源码目录下搜索,然后复制到../mod_g729/bcg729/include/目录,然后再重新编译
2.7 编译完成后,将mod_bcg729.so复制到FreeSWITCH的库目录,也可以直接替换FreeSWITCH的库目录下的G729库文件
            cp mod_bcg729.so /usr/lib/freeswitch/mod/
2.8 修改/etc/freeswitch/vars.xml
            <X-PRE-PROCESS cmd="set" data="global_codec_prefs=G729,OPUS,G722,PCMU,PCMA,VP8"/>
            <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=G729,OPUS,G722,PCMU,PCMA,VP8"/>
            <X-PRE-PROCESS cmd="set" data="media_mix_inbound_outbound_codecs=true"/>
          
2.9 配置/etc/freeswitch/sip_profile/internal.xml
            <param name="disable-transcoding" value="false"/>注释或者写成false,这行直接代表freeswitch是否开启转码功能
            <param name=”inbound-late-negotiation” value=”false”/>
            <param name=”inbound-zrtp-passthru” value=”false”/>
2.10 配置/etc/freeswitch/autoload_configs/modules.conf.xml启动自动加载mod_bcg729
            <load module="mod_bcg729"/>
3.重启FreeSWITCH
     service freeswitch restart
     或者也可以进入FreeSWITCH控制界面,命令加载mod_bcg729模块
     fs_cli
     unload mod_g729
     load mod_bcg729

    至此就配置完成了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FreeSWITCH配置 DID(Direct Inward Dialing,即直接呼入分机号码)需要进行以下步骤: 1. 在 FreeSWITCH配置 SIP Profile,以允许接收来自 VoIP 运营商的呼叫。可以参考以下示例,在 `sip_profiles/external.xml` 文件中添加如下代码: ``` <include> <gateway name="myprovider"> <param name="username" value="myusername"/> <param name="password" value="mypassword"/> <param name="proxy" value="myprovider.com"/> <param name="register" value="true"/> </gateway> </include> ``` 其中 `myprovider` 为 SIP Profile 的名称,`myusername` 和 `mypassword` 分别为 VoIP 运营商提供的用户名和密码,`myprovider.com` 为运营商的 SIP 代理服务器地址。根据实际情况修改这些参数。 2. 在 FreeSWITCH配置呼入路由,以将来自 VoIP 运营商的呼叫路由到正确的分机号码。可以参考以下示例,在 `dialplan/public.xml` 文件中添加如下代码: ``` <extension name="mydid"> <condition field="destination_number" expression="^123456$"> <action application="answer"/> <action application="bridge" data="user/1000"/> </condition> </extension> ``` 其中 `mydid` 为呼入路由的名称,`123456` 为 DID 号码,`1000` 为分机号码。当来自 VoIP 运营商的呼叫匹配到该路由时,FreeSWITCH 将自动接听呼叫,并将其转接到分机号码 1000。 3. 配置 VoIP 运营商的 DID 转接功能,以将呼叫转接到 FreeSWITCH。具体的操作方式取决于运营商的要求,可以参考其提供的文档或联系其技术支持进行配置。 以上是在 FreeSWITCH配置 DID 的基本步骤,具体的操作方式可能会因为环境和需求的不同而有所差异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值