由于freeswitch本身的mod_g729模块只支持媒体透传,而mod_com_g729是要收费的,所以我们在网上找了一下替代库,来实现freeswitch的G729转码功能
环境:
Centos:CentOS release 6.7 (Final)
Freeswitch:v1.6.5
获取模块源代码:(改自Deepwalker-fs_itu_g729-0bcddb5.tar)
当前目录为freeswitch源码目录
cd src/mod/codecs
wget http://www.8000hz.com/usr/uploads/2013/03/1712150417.zip
备份freeswitch源代码中的mod_g729模块:
mv mod_g729 mod_g729bak
解压G729模块源代码:
unzip 1712150417.zip
编译G729模块:
cd mod_g729
make
安装:
cd ../../../../
make install
配置:
vi /usr/local/freeswitch/conf/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"/>
重新加载sofia配置和G729模块:
/usr/local/freeswitch/bin/fs_cli -H 127.0.0.1-P 8021
sofia status profile internal //查看sofia internal配置
sofia profile internal restart //重新加载sofia internal配置
show codec //查看编码支持
reload mod_g729 //重新加载mod_g729模块
测试:
注册俩个SIP终端1008和1009,并修改1008终端只支持G729,修改1009终端只支持G711
originate user/1008 &echo()
originate user/1009 &echo()
uuid_bridge 81168622-d553-11e5-84c6-25c3ba1521d0 8b5f0a64-d553-11e5-84cd-25c3ba1521d0
参考文章:
http://www.wuweixian.com/ipphone/freeswitch/1083/