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

发布时间:2020-06-30 04:08:08 作者:ligen119
来源:网络 阅读:8327

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,G7221@32000h,G7221@16000h,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


推荐阅读:
  1. html5学习笔记(5)
  2. FreeSWITCH折腾笔记3——数据库修改为postgresql

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

freeswitch g729 freeswitc tc

上一篇:网站构架理论

下一篇:Linux下安装Oracle 12c数据库

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》