freeswitch g729编码支持

2020-10-27 14:30:45   工作备份

 

出于一些具体工作上的问题,语音首选编码需要改成g729,但是官方自带的g729编码,不支持录音和转码,不得以,需要自己编译安装

  1. git clone https://github.com/xadhoom/mod_bcg729.git
  2. mv mod_bcg729 mod_g729
  3. cd mod_g729
  4. make

将mod_bcg729.so 复制到 freeswitch mod文件夹(yum 安装的话,目录位置为/usr/lib64/freeswitch/mod/)

修改freeswitch modules.conf.xml

  1. ##注释原有的g729模块
  2. <!--<load module="mod_g729"/>-->
  3. <load module="mod_bcg729" />

修改 vars.xml

  1. <X-PRE-PROCESS cmd="set" data="global_codec_prefs=G729,OPUS,G722,PCMU,PCMA"/>
  2. <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=G729,OPUS,G722,PCMU,PCMA"/>
  3. ### 这句话的含义是设置B-LEG上使用什么编码器列表。默认情况下B-LEG的codecs跟A-LEG一样。这样操作可以提高系统效率,b-leg将会尽量
  4. 使用a-leg提供的语音编码,尽量不转码,可以很大程度上增大系统效率
  5. <X-PRE-PROCESS cmd="set" data="media_mix_inbound_outbound_codecs=true"/>

修改 internel.xml 和external.xml

  1. ###inbound-late-negotiation 编码晚协商 关闭
  2. ###inbound-zrtp-passthru 关闭,是否passthru 穿透模式
  3. ###disable-transcoding 是否禁止转码 false是开启转码
  4. <param name="inbound-late-negotiation" value="false"/>
  5. <param name="inbound-zrtp-passthru" value="false"/>
  6. <param name="disable-transcoding" value="false"/>

重启freeswitch fs_cli执行

  1. show codec

观察是否有g729模块