在互联网大数据时代的背景下,作为服务器程序,高并发尤为重要,线路带宽资源就显得更加弥足珍贵了。目前比较流行语音编码有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.10.06.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"/>
          
2.9 配置/etc/freeswitch/sip_profile/internal.xml
            <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"/>
3.重启FreeSWITCH
     service freeswitch restart
     或者也可以进入FreeSWITCH控制界面,命令加载mod_bcg729模块
     fs_cli
     unload mod_g729
     load mod_bcg729

至此就配置完成了

FreeSWITCH之配置G729转码相关推荐

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

    在目前freeswitch各种业务都开始需要支持高并发的背景下,线路带宽的占用成为很多客户的考虑范围,目前比较流行语音编码有2种G711.G729.由于语音需要采用上下行对等的宽带,G711每线需要大 ...

  2. Maven 的相关配置【源码下载、镜像源修改】

    PS:网上相关配置很多,这里仅做自己的一个配置在线备份,所以比较简略. 1. Maven 配置下载源码 和 JavaDoc 开发中,经常需要查看某个不太熟悉的类的源码,甚至是该类的 DOC 文档,在 ...

  3. 如何在后台配置中找到某个具体配置的事务码

    经常有人问到,在定制后台配置(事务码 SPRO)中,如何根据某个配置项目找到其对应的事务码. 实事上,并非所有后台配置项目都对应的有事务码.但是,我们可以根据 SAP 的命名规范找到其中的一些. 操作 ...

  4. 《一步一步看源码:Nacos》框架源码系列之一(其1,配置服务源码)

    Nacos源码 ​ 因为最近项目在做容器化处理,容器化后涉及到不同进程对同一个文件的读写,考虑到可能会存在同一文件的配置文件,可能会把彼此覆盖掉,所以这里学习一下Nacos源码. 整体结构图 ​ 这边 ...

  5. 【SpringBoot】最新版2019Spring Boot配置解析,源码解析(速成SpringBoot)——学习笔记版【2】

    SpringBoot配置文件 文章目录 SpringBoot配置文件 四.配置文件 1.简介 2.YAML用法 2.1 简介 2.2语法 3.为属性注入值 3.1使用.yml配置文件 3.1编写.ym ...

  6. 知其所以然之Nacos配置中心源码浅析

    文章目录 引例 NacosConfigService的初始化 ServerHttpAgent的构造函数解析 ServerListManager的构造函数解析 ConfigFilterChainMana ...

  7. Apollo 配置中心源码分析

    Apollo 配置中心源码分析 ​ Apollo是携程开源的一款分布式配置管理中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用 ...

  8. FreeSwitch配置开启转码功能及安装G729语音编码

    一键安装安装G729 测试环境 CentOS 6.9 64bit FreeSwitch 1.6.x 安装G729模块前请安装好FreeSwitch 下载脚本并执行安装 wget file.qzlink ...

  9. Jenkins 流水线 获取git 分支列表_jenkins的安装和配置 自动化部署 码云 gitee

    目前项目使用的jenkins 自动化部署的还是比较多的 ,所以趁着脑瓜子还清醒,来写一下如何使用 jenkins 使用码云更新代码后,重新构建就是最新的代码,费话不多少了 直接上货, 首先要做一下准备 ...

最新文章

  1. JavaScript 方法传参
  2. MAC 升级到10.10(OS X Yosemite)下apache+php的配置问题
  3. 神策学堂“训练营+特训营”,种子学员招募中,来一起出圈呀!
  4. u-boot移植重要问题说明
  5. 【转】C#实现SM3国密加密
  6. SpringBoot2.1.5(18)--- 国际化配置,SpringBoot Locale 国际化使用方法
  7. Asp.Net MVC 自定义登录过滤器
  8. 从零开始,CentOS6安装ghost博客
  9. 兰花草c语言编码蜂鸣器,蜂鸣器奏乐-多种音乐分享
  10. 了解STM32的内部FLASH空间
  11. Unity-WebGL遇到的各种坑(一)
  12. 看卡辛斯基的警告 让我想起 人类简史
  13. 怎么把webm转换成mp4?步骤教程
  14. 【autojs】Auto.js Pro安卓QQ语音红包秒抢挂免费脚本源码
  15. python黑科技:Python大佬用20行代码带你打造一个微信聊天机器人,真神了~
  16. 我的世界java版服务器hpy,我的世界Java版21w05a
  17. 解读 | 赛迪“区块链赋能实体经济推进计划”
  18. linux安装中文字体 yum,给CentOS安装中文字体(转)
  19. python 多元线性回归的系数检验 t p值_多元线性回归检验t检验(P值),F检验,R方等参数的含义...
  20. 使用 Tesseract.js 在浏览器中进行 OCR

热门文章

  1. oracle sql子串替换,【总结】Oracle sql 中的字符(串)替换与转换
  2. .net core 发布到IIS后提示错误
  3. FFmpeg —— 查看NVIDIA显卡对硬件加速的支持
  4. ssm基于JavaEE的电脑销售管理系统设计与实现毕业设计源码021143
  5. 计划经济和市场经济·《厚黑学全书》
  6. ABB ACS510变频器恒压供水昆仑通态直接通讯一拖二
  7. 轻舟程序创建的centos7.x磁盘合并到根的操作方法
  8. Hadoop KMS环境安装
  9. Vue PDF文件预览打印vue-pdf
  10. max30102替代方案