Freeswitch如何支持G729转码开源版本

10 篇文章 0 订阅
1 篇文章 0 订阅

 在目前freeswitch各种业务都开始需要支持高并发的背景下,线路带宽的占用成为很多客户的考虑范围,目前比较流行语音编码有2种G711、G729。由于语音需要采用上下行对等的宽带,G711每线需要大约90kbit/s/S的带宽,而G729每线仅需要30kbit/s/S的带宽。所以目前对接客户侧,都希望对接采用G729编码。

   freeswitch默认是不支持进行G729转码的,商业版本的G729效率是最高的,不过要10刀1个并发,相信很少公司会舍得采用这么高的成本去做业务,因为赚不钱,这里介绍一下freeswitch配置开源的bcg729进行转码的方法:

 1.首先进入freeswitch的源码目录,cd /XXX/freeswitch/src/mod/endpoints 

 2.下载bcg729的源码 git clone  https://github.com/xadhoom/mod_bcg729.git

 3.mv mod_bcg729 mod_g729

 4.编译mod_g729  cd mod_g729  make 

 5.编译完成后,将mod_bcg729.so拷贝到/usr/local/freeswitch/mod 目录下。

 6.在vars.xml配置文件中设置G729编码:

  <X-PRE-PROCESS cmd="set" data="global_codec_prefs=PCMU,PCMA,G729,OPUS,G722"/>

  <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA,VP8,G729,OPUS,G722"/>

 7.在vars.xml配置文件中加入

 <X-PRE-PROCESScmd="set"data="media_mix_inbound_outbound_codecs=true"/>

 这句话的含义是设置B-LEG上使用什么编码器列表。默认情况下B-LEG的codecs跟A-LEG一样。这样操作可以提高系统效率,b-leg将会尽量

 使用a-leg提供的语音编码,尽量不转码,可以很大程度上增大系统效率,

 ps:注意过长的codecs列表可能会超出UDP的MTU(最大传输单元),那将引起呼叫建立失败

8.在sip_profile中

 <param name="disable-transcoding" value="false"/>注释或者写成false,这行直接代表freeswitch是否开启转码功能


<param name=”inbound-late-negotiation” value=”false”/>

<param name=”inbound-zrtp-passthru” value=”false”/>


9,启动freeswitch,重新加载729模块unload mod_g729     load  mod_bcg729 

完成到这一步就完成了整个freeswitch G729转码支持的配置,可以使用2部eyebeam,注册上freeswitch,1台设置只允许G729语音编码,一台设置只允许G711语音编码,互打进行测试。
 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值