FreeSWITCH折腾笔记5——G729转码支持

FreeSWITCH默认是不支持G729转码的,但可至此G729媒体透传,因此如果两个话机有一个只支持G729时是无法进行呼叫的,同时在使用G729编码时FreeSWITCH是不能进行录音的。

当然如果商业应用的话可以购买G729的许可,10刀一通道,或者使用硬件的转码卡,价格貌似就更高了。

网络上有很多使用8000hz的源码包编译FreeSWITCH可用的G729模块,但是效果一般,我这里使用的是bcg729的源码来进行编译,转码效果比8000hz的稍好。BCG729当前最新的版本是1.0.3

准备工作:与当前运行的FreeSWITCH版本一致的源码一份

开始编译:

1、进入源码../src/mod/endpoints目录

cd /usr/src/freeswitch-1.6.19/src/mod/endpoints

2、检出FreeSWITCH适用的G729模块(这部分源码是对BCG729进行FreeSWITCH的适配)

git clone 
https://github.com/xadhoom/mod_bcg729.git

3、将mod_bcg729改名为mod_g729

  mv mod_g729 mod_g729_bak
  mv mod_bcg729 mod_g729

4、返回FreeSWITCH源码主目录,执行配置

./configure

5、进入../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/目录,然后再重新编译

6、编译完成后,将mod_bcg729.so复制到FreeSWITCH的库目录,也可以直接替换FreeSWITCH的库目录下的G729库文件

   cp mod_bcg729.so /usr/lib/freeswitch/mod/

7、修改FreeSWITCH配置文件vars.xml,在global_codec_prefs和outbound_codec_prefs中添加G729

  <X-PRE-PROCESS cmd="set" data="global_codec_prefs=PCMU,PCMA,GSM,G729,[email protected],[email protected],G722,OPUS,VP8" />
  <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA,GSM,G729" />

8、在fs_cli中加载BCG729模块

  unload mod_g729
  load mod_bcg729
时间: 2024-10-09 14:30:58

FreeSWITCH折腾笔记5——G729转码支持的相关文章

FreeSWITCH折腾笔记4——自己做一个TTS服务器

freeswitch原生支持的tts功能中文一般是使用的ekho,但是那合成的效果简直惨不忍睹,于是我想自己做一个TTS服务器. 首先是找到比较满意的TTS引擎,科大讯飞的效果当然是没话说,但是价格不菲,其他商业的引擎中文合成也不是很流畅,偶然发现windows7自带的合成引擎还算过得去,windows10带的合成引擎就更好了(有兴趣的可以先测试一下,直接在windows控制面板中的语音设置里面有测试,但是测试的中英文混读很蛋疼). 那么问题来了,怎么把这个引擎用到我的FS上边呢? 思路,deb

freeswitch折腾笔记1--SIP中继对接

freeswitch与各种设备对接的成功配置,需要的请参考,有错误的地方请指导. 1.对接华为softco 中继配置 \sip_profiles\external\ <include> <gateway name="softco5816">   <param name="proxy" value="172.16.100.248:5060"/>  <param name="realm" 

FreeSWITCH折腾笔记3——数据库修改为postgresql

需要修改的配置文件: switch.conf.xml //核心表 cdr_pg_csv.conf.xml //通话记录 db.conf.xml //核心表 voicemail.conf.xml //留言相关的表 internal.xml // external.xml // fifo.conf.xml //fifo相关的表 callcenter.conf.xml //callcenter程序相关的表. 1.switch.conf.xml <param name="core-db-dsn&q

FreeSWITCH之配置G729转码

在互联网大数据时代的背景下,作为服务器程序,高并发尤为重要,线路带宽资源就显得更加弥足珍贵了.目前比较流行语音编码有2种G711.G729.由于语音需要采用上下行对等的宽带,G711每线需要大约90kbit/s/S的带宽,而G729每线仅需要30kbit/s/S的带宽.所以采用G729编码就节约了大量带宽. FreeSWITCH默认是不支持G729转码的,商业版本的G729效率是最高的,不过要10刀1个并发,相信很少公司会舍得采用这么高的成本去做业务.这里介绍一下freeswitch配置开源的b

FS G729转码测试记录

默认情况下Freeswitch自带的G729模块是pass-through-并不支持转码.我们决定添加一个支持G729转码的模块到Freeswitch.参考自 8000HZ. 一.安装支持转码的G729模块 1. 下载mod_g729.zip (改自Deepwalker-fs_itu_g729-0bcddb5.tar) 2. 解压 #unzip mod_g729.zip 3. 删除原来的模块, 将新模块添加到codec目录中 rm -rf src/mod/codecs/mod_g729 mv m

kali linux 折腾笔记

http://xiao106347.blog.163.com/blog/static/215992078201342410347137/ 这里告诉你刚刚装好kali后要做,有些也是不正确的,可能开始你就没有办法进行这一步,因为没有添加足够的正确的源 源添加参考我上一篇博文kali linux soucrse... 分享牛人的经验,也是为了备忘! kali linux 折腾笔记,码迷,mamicode.com

memcached学习笔记——存储命令源码分析下篇

上一篇回顾:<memcached学习笔记——存储命令源码分析上篇>通过分析memcached的存储命令源码的过程,了解了memcached如何解析文本命令和mencached的内存管理机制. 本文是延续上一篇,继续分析存储命令的源码.接上一篇内存分配成功后,本文主要讲解:1.memcached存储方式:2.add和set命令的区别. memcached存储方式 哈希表(HashTable) 哈希表在实践中使用的非常广泛,例如编译器通常会维护的一个符号表来保存标记,很多高级语言中也显式的支持哈希

《HTTP权威指南》笔记之 网络状态码

状态码分为五大类, (1)100 ~ 199 信息性状态码 状态码 含义 原因短语 100 说明服务器收到了请求的初始部分,请客户端继续发送 Continue 101 说明服务器正在根据客户端的指定,将协议转换成为 Update首部所列的协议 Switching Protocol (2)200 ~ 299 成功状态码 状态码 原因短语 含义 200 OK 请求没问题 201 Ctreated 用于创建服务器对象的请求(如PUT) 202 Accepted 请求已被接受,但服务器还未对其执行任何动

【Python笔记】如何源码编译依赖LAPACK和ATLAS库的NumPy包

上篇笔记介绍了不依赖lapack和atlas库的NumPy包源码编译/安装方法,但"纯净版"的NumPy会损失性能,故本篇笔记说明如何源码编译安装依赖lapack和atlas库的NumPy包. 1. GCC版本要求 使用较新版本的GCC工具集(尽量不低于v4.7)且集成有gfortran编译器. 备注1:这里大写的"GCC"是指GNU Compiler Collection,它除包含C语言编译器gcc外,还包含很多其它语言的编译器(如g++/gfortran等) 备