码迷,mamicode.com
首页 > 其他好文 > 详细

FreeSWITCH之配置G729转码

时间:2018-05-24 00:07:18      阅读:408      评论:0      收藏:0      [点我收藏+]

标签:FreeSWITCH   G.729   c   linux   

在互联网大数据时代的背景下,作为服务器程序,高并发尤为重要,线路带宽资源就显得更加弥足珍贵了。目前比较流行语音编码有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.6.19.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"/> ![](http://i2.51cto.com/images/blog/201805/23/dc837eccd7fc5093fa6fa3637694bf7c.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 2.9 配置sip_profile <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"/> ![](http://i2.51cto.com/images/blog/201805/23/080dc06c1923813d45b19332e21cde30.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 3.重启FreeSWITCH service freeswitch restart 或者也可以进入FreeSWITCH控制界面,命令加载mod_bcg729模块 fs_cli unload mod_g729 load mod_bcg729 至此就配置完成了

FreeSWITCH之配置G729转码

标签:FreeSWITCH   G.729   c   linux   

原文地址:http://blog.51cto.com/hushengyong/2119661

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!