FreeSWITCH添加iLBC编码及转码

操作系统 :CentOS 7.6_x64

FreeSWITCH版本 :1.10.9

一、安装ilbc库

从第三方库里下载指定版本:

git clone https://freeswitch.org/stash/scm/sd/libilbc.git

如果下载过慢,可从如下途径获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 20230416 获取。
编译及安装步骤如下:
./bootstrap.sh
./configure
make
make install

安装成功:

FreeSWITCH添加iLBC编码及转码

 如果遇到如下错误:

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复制过来即可:

FreeSWITCH添加iLBC编码及转码

 此外,通过 yum install ilbc-devel.x86_64 安装的方式会报错:

FreeSWITCH添加iLBC编码及转码

二、编译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 //去掉这个注释的#号

FreeSWITCH添加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操作:

FreeSWITCH添加iLBC编码及转码

 如果加载不报错,则添加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:

FreeSWITCH添加iLBC编码及转码

 软电话B的语音编码只配置PCMU:

FreeSWITCH添加iLBC编码及转码

 通话效果:

FreeSWITCH添加iLBC编码及转码

 A拨打B,呼叫成功。

看日志,发现Fs和A协商了iLBC编码,然后和B协商了PCMU编码。

抓包结果如下:

FreeSWITCH添加iLBC编码及转码

 四、资源获取

本文涉及资源可从如下途径获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 20230416 获取。

FreeSWITCH添加iLBC编码及转码

 

原文链接:https://www.cnblogs.com/MikeZhang/p/ilbc20230416.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:FreeSWITCH添加iLBC编码及转码 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • C语言深入探究斐波那契数列

    C语言深入探究斐波那契数列 什么是斐波那契数列? 斐波那契数列,也称黄金分割数列,通俗地说就是以下数列: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 在数学上,斐波那契数列的递推公式为:f(n)=f(n-1)+f(n-2),其中f(0)=0,f(1)=1。可以使用递归或循环方式来实现它。 用C语言实现斐…

    C 2023年5月22日
    00
  • python集合类型用法分析

    Python集合类型用法分析 Python中的集合类型可用于存储一组无序且不重复的元素。本篇攻略将详细讲解Python中常用的集合类型及其用法。 集合类型 Python中常用的集合类型有三种: set frozenset dict 其中,set和frozenset是用来存储一组无序且不重复的元素的,而dict则是用来存储键值对的。 set类型 set类型使用…

    C 2023年5月22日
    00
  • C语言队列和应用详情

    C 语言队列和应用详情 什么是队列 队列是一种数据结构,可以用来存储一组按顺序排列的元素。队列的特点就是先进先出,即First In First Out,缩写为 FIFO。也就是说,最先插入队列的元素会最先被取出,最后插入队列的元素则会最后被取出。常见的生活中队列应用包括的排队取号,排队坐火车,排队打饭等等。 C 语言实现队列 在 C 语言中,我们可以通过数…

    C 2023年5月23日
    00
  • C语言程序设计谭浩强第五版课后答案(第三章习题答案)

    首先,需要明确的是,C语言程序设计谭浩强第五版是一本经典的C语言教材,而里面的习题更是能够帮助我们更加深入地理解C语言的编程思想和应用方法。 在第三章中,谭浩强提出了诸多习题,这些习题包含了C语言程序设计的基本语法、运算符、流程控制等方面的知识点。为了更好地解决这些习题,作者在书的附录中提供了对应的课后答案,帮助我们更好地掌握所学内容。 下面,我将为大家详细…

    C 2023年5月23日
    00
  • C++实现十进制数转为其它进制数

    关于C++实现十进制数转为其他进制数的攻略,我将分为以下几个步骤进行介绍: 确定需要转换的十进制数以及目标进制数 使用循环和取模运算将十进制数转为目标进制数的各位数字 反转转换后的数字(可选) 输出转换后的数字(可选) 接下来我将详细讲解每一步的实现过程,并提供两个示例说明。 步骤1:确定需要转换的十进制数以及目标进制数 在进行进制转换之前,需要明确需要转换…

    C 2023年5月23日
    00
  • C++的静态类型检查详解

    C++的静态类型检查详解 C++是一门静态类型的编程语言,其中的静态类型检查是C++编译器能够在编译期间确定程序中变量类型的能力。这种特性提供了许多优点,例如类型安全和代码可读性,同时也有一些限制。 静态类型检查是什么 静态类型检查是指编译器在编译程序时,通过对程序的语法分析和类型推导,能够确定每个变量的类型和类型之间的关系。根据类型检查结果,编译器可以在编…

    C 2023年5月22日
    00
  • Visual Studio Code 配置C、C++ 文件debug调试环境的详细过程

    下面是Visual Studio Code配置C/C++文件debug调试环境的详细过程: 安装必要的软件 在开始配置之前,需要先安装以下软件: Visual Studio Code:用于代码编辑和调试 MinGW:用于编译C/C++代码 C/C++插件:用于在Visual Studio Code中编写C/C++代码 配置调试环境 打开Visual Stud…

    C 2023年5月23日
    00
  • C++14新特性的所有知识点全在这

    C++14新特性的所有知识点全在这 1. 简介 C++14是C++11的后继版本,引入了许多新的特性和性能改进。这些新特性使得C++14更容易使用和更加安全。本文将会介绍C++14的所有知识点。 2. C++14的新特性 2.1 通用表达式 通用表达式是C++14的一个重要特性,它提供了一种新的语法来实现编译时计算。通用表达式使得编程人员可以在编译时期计算变…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部