FreeSWITCH添加iLBC编码及转码
2023/4/16 14:22:15
本文主要是介绍FreeSWITCH添加iLBC编码及转码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
操作系统 :CentOS 7.6_x64
FreeSWITCH版本 :1.10.9
一、安装ilbc库
从第三方库里下载指定版本:
git clone https://freeswitch.org/stash/scm/sd/libilbc.git
如果下载过慢,可从如下途径获取:
./bootstrap.sh ./configure make make install
安装成功:
如果遇到如下错误:
libtool: Version mismatch error. This is libtool 2.4.6, but the libtool: definition of this LT_INIT comes from libtool 2.4.2. libtool: You should recreate aclocal.m4 with macros from libtool 2.4.6
libilbc目录下会自动生成libtool文件,将系统目录的libtool复制过来即可:
此外,通过 yum install ilbc-devel.x86_64 安装的方式会报错:
二、编译mod_ilbc模块
1、更新ilbc库
可通过如下方式配置libilbc库:
ln -sf /usr/local/lib/libilbc.so.0.0.2 /lib64/libilbc.so ln -sf /usr/local/lib/libilbc.so.0.0.2 /lib64/libilbc.so.0
2、打开FreeSWITCH编译配置项
编辑源码目录的modules.conf文件,去掉ilbc的注释:
#codecs/mod_ilbc //去掉这个注释的#号
3、重新配置编译FreeSWITCH
源码目录执行如下命令:
./devel-bootstrap.sh && ./configure && make && make install
如果编译FreeSWITCH遇到问题,可参考这篇文章:
CentOS7环境源码安装freeswitch1.10
4、加载mod_ilbc模块
编辑 conf/autoload_configs/modules.conf.xml 文件,添加如下内容:
<load module="mod_ilbc"/>
重启FreeSWITCH或执行重新load操作:
如果加载不报错,则添加iLBC编码成功。
三、编码测试
1、开启iLBC编码支持及转码
文件: vars.xml
1)开启iLBC编码支持
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,G722,PCMU,PCMA,H264,VP8,iLBC"/> <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,G722,PCMU,PCMA,H264,VP8,iLBC"/>
2)开启转码
添加如下内容:
<X-PRE-PROCESS cmd="set" data="media_mix_inbound_outbound_codecs=true"/>
2、iLBC编码测试
1)配置话机
软电话A的语音编码只配置iLBC:
软电话B的语音编码只配置PCMU:
通话效果:
A拨打B,呼叫成功。
看日志,发现Fs和A协商了iLBC编码,然后和B协商了PCMU编码。
抓包结果如下:
四、资源获取
本文涉及资源可从如下途径获取:
这篇关于FreeSWITCH添加iLBC编码及转码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25安卓NDK 是什么?-icode9专业技术文章分享
- 2024-12-25caddy 可以定义日志到 文件吗?-icode9专业技术文章分享
- 2024-12-25wordfence如何设置密码规则?-icode9专业技术文章分享
- 2024-12-25有哪些方法可以实现 DLL 文件路径的管理?-icode9专业技术文章分享
- 2024-12-25错误信息 "At least one element in the source array could not be cast down to the destination array-icode9专业技术文章分享
- 2024-12-25'flutter' 不是内部或外部命令,也不是可运行的程序 或批处理文件。错误信息提示什么意思?-icode9专业技术文章分享
- 2024-12-25flutter项目 as提示Cannot resolve symbol 'embedding'提示什么意思?-icode9专业技术文章分享
- 2024-12-24怎么切换 Git 项目的远程仓库地址?-icode9专业技术文章分享
- 2024-12-24怎么更改 Git 远程仓库的名称?-icode9专业技术文章分享
- 2024-12-24更改 Git 本地分支关联的远程分支是什么命令?-icode9专业技术文章分享