出于一些具体工作上的问题,语音首选编码需要改成g729,但是官方自带的g729编码,不支持录音和转码,不得以,需要自己编译安装
git clone https://github.com/xadhoom/mod_bcg729.git
mv mod_bcg729 mod_g729
cd mod_g729
make
将mod_bcg729.so 复制到 freeswitch mod文件夹(yum 安装的话,目录位置为/usr/lib64/freeswitch/mod/)
修改freeswitch modules.conf.xml
##注释原有的g729模块
<!--<load module="mod_g729"/>-->
<load module="mod_bcg729" />
修改 vars.xml
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=G729,OPUS,G722,PCMU,PCMA"/>
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=G729,OPUS,G722,PCMU,PCMA"/>
### 这句话的含义是设置B-LEG上使用什么编码器列表。默认情况下B-LEG的codecs跟A-LEG一样。这样操作可以提高系统效率,b-leg将会尽量
使用a-leg提供的语音编码,尽量不转码,可以很大程度上增大系统效率
<X-PRE-PROCESS cmd="set" data="media_mix_inbound_outbound_codecs=true"/>
修改 internel.xml 和external.xml
###inbound-late-negotiation 编码晚协商 关闭
###inbound-zrtp-passthru 关闭,是否passthru 穿透模式
###disable-transcoding 是否禁止转码 false是开启转码
<param name="inbound-late-negotiation" value="false"/>
<param name="inbound-zrtp-passthru" value="false"/>
<param name="disable-transcoding" value="false"/>
重启freeswitch fs_cli执行
show codec
观察是否有g729模块