前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >mod_unimrcp从FreeSWITCH代码树中删除

mod_unimrcp从FreeSWITCH代码树中删除

作者头像
杜金房
发布于 2022-12-12 07:24:14
发布于 2022-12-12 07:24:14
3K00
代码可运行
举报
运行总次数:0
代码可运行

FreeSWITCH从代码树中删除了mod_unimrcp(https://github.com/signalwire/freeswitch/commit/3c7e8ff989355bf518eabaeea83036585e4782b7)。

这其实是一个“蓄谋”已久的操作,不要着急,听我慢慢讲。

MRCP的全称是Media Resource Control Protocol,即媒体控制协议。现在广泛用在语音合成语音识别等领域,大多数做人工智能(语音)的厂商现在也都支持该协议。UniMRCP(https://www.unimrcp.org/)是一个开源的实现。FreeSWITCH中有一个mod_unimrcp模块就是使用了这个库和开源的协议。

为什么移除呢?简单回答,就是为了更好。

那为什么说“蓄谋”已久呢?因为被一些事情耽搁了。

UniMRCP底层使用了APR(Apache Portabl Runtime)(https://apr.apache.org/)库,而FreeSWITCH底层也使用了APR库,所以,在FreeSWITCH中,他们共用同一个版本的APR。这很好。但是,随着时代的发展,当人们想升级UniMRCP时,发现问题了,那就是,FreeSWITCH用的APR库比较旧,而新版UniMRCP需要的库又比较新,升级不了了……

为什么FreeSWITCH不更新APR库吗?这就说来话长了。简单来说,那就是——升不了。

FreeSWITCH对APR库有一些改动。而这些改动并没有合并到上游的APR里。

为什么不能合并呢?说好的开源软件呢?不是说程序员一言不合就提交补丁吗?FreeSWITCH难道不能把自己修改的部分提交到上游的APR仓库里吗?

提交补丁很简单,但合并补丁还真不是那么简单。FreeSWITCH确实向APR提过补丁,但都是石沉大海。感兴趣的可以自行搜索一下,也可以参考以下这些链接。

  • https://bz.apache.org/bugzilla/show_bug.cgi?id=56948
  • https://bz.apache.org/bugzilla/show_bug.cgi?id=56947

所以,后来,FreeSWITCH就一直用旧版本的APR。因而导致UniMRCP也无法升级。

不过,时隔多年,FreeSWITCH团队终于解决了这个问题。解决方式也简单粗暴。把FreeSWITCH自己用的APR改成fspr。这样,就可以把mod_unimrcp移出FreeSWITCH代码树,放到独立的仓库中(https://github.com/freeswitch/mod_unimrcp/pull/1)。新的模块也转由社区维护,想咋升咋升。

什么?那mod_unimrcp是不是转为二等公民了?是,也不是。

首先,你可以自行编译,单独编译一个模块比放在FreeSWITCH里简单多了,比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git clone https://github.com/freeswitch/mod_unimrcp.git$ cd mod_unimrcp$ export PKG_CONFIG_PATH=/usr/local/freeswitch/libs/pkgconfig:/usr/local/unimrcp/libs/pkgconfig$ ./bootstrap.sh$ ./configure

详情可参见该模块的README(https://github.com/freeswitch/mod_unimrcp)。

其实,FreeSWITCH早就发明了一套机制,在FreeSWITCH主代码树的modules.conf中引用一个外部模块,编译还是像以前那样make install,没有任何不和谐。比如:

之前:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
asr_tts/mod_unimrcp

现在:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mod_unimrcp|https://github.com/freeswitch/mod_unimrcp -b master

你甚至可以把你自己写的模块也放一条记录到modules.conf中去,只要你写得足够好,大家都愿意用,甚至也可以变成FreeSWITCH缺省的安装模块。

这是今年FreeSWITCH最大的改变,希望未来会越来越好。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeSWITCH中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
FreeSWITCH如何集成AMR/AMR-WB编解码
FreeSWITCH对AMR和AMR-WB两种编码格式默认为passthough状态,若想对AMR和AMR-WB进行编解码,需对mod_amr和mod_amrwb两个模块重新编译。
杜金房
2024/04/11
4520
FreeSWITCH如何集成AMR/AMR-WB编解码
Apache CVE-2017-7659漏洞重现及利用分析
近日,apache在其网站发布了最新的安全公告,其中涉及多个漏洞。针对CVE-2017-7659漏洞的介绍是这样的: A maliciously constructed HTTP/2 request could cause mod_http2 to dereference a NULL pointer and crashthe server process. 可以看到这是apache WEB服务器(httpd)中的一个HTTP 2.0协议处理的漏洞。未然实验室安全研究人员针对此漏洞的技术细节和利用方法进行了
FB客服
2018/02/28
2.5K0
Apache CVE-2017-7659漏洞重现及利用分析
Docker_002
Dockerfile_redis_5.0 FROM debian:buster-slim # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added RUN groupadd -r -g 999 redis && useradd -r -g redis -u 999 redis # grab gosu for e
Cyylog
2020/08/19
5280
FreeSWITCH如何开启Event Socket Language支持
FreeSWITCH是一个开源的电话交换平台,它提供了丰富的功能和灵活的配置,可以用于实现各种通信场景和需求。
杜金房
2025/02/19
1190
FreeSWITCH如何开启Event Socket Language支持
编译安装httpd-2.4.9及新特性详解
前言 前面我们讲解了httpd在CentOS6上(httpd-2.2)的相关功能配置,而 CentOS7上采用了httpd-2.4的版本,那么httpd-2.4增加了哪些特性呢?接下来让我们在CentOS6.6上手动编译安装一下 httpd-2.4.9,看一下和httpd-2.2有什么不同,顺便补充说一下httpd的其它功能。 环境及新特性介绍 环境介绍 系统环境:CentOS6.6 所需软件包:apr-1.5.0.tar.bz2、apr-util-1.5.3.tar.bz2、httpd-2.4.9
小小科
2018/05/02
8630
编译安装httpd-2.4.9及新特性详解
【Rust 日报】2020-06-10 RustCrypto 发布了多种密码学库
新发布的密码学库包括:aead, block-cipher, crypto-mac, digest, signature, stream-cipher 等,其中几乎所有的 crates 都是用纯 Rust 开发的。
MikeLoveRust
2020/06/19
9180
AI时代,FreeSWITCH能做什么?
那么,智能时代跟FreeSWITCH什么关系呢?严格来说,其实没什么关系。你看,我今天又标题党了。
杜金房
2020/12/21
1.7K0
我们为FreeSWITCH做了一个免费的 Docker
很多初学FreeSWITCH的同学经常会问一个问题,我该使用哪个操作系统?FreeSWITCH支持Linux、Mac、Windows平台,Wiki页面上也有相关的说明。但随着时间的流逝,总会有一些文档来不及更新,因此,在安装时就总会遇到这样那样的问题。 FreeSWITCH的核心开发人员都使用Debian,但国内好像用CentOS的比较多,再加上各种版本差异,因此,这个问题其实没有一个最好的答案。我们一般会推荐Debian 10,但大多数人其实不听我们的推荐。 不过,Docker的出现在一定情况下解决了这个问题。因此,我们做了一个xswitch-free Docker解决方案,献给大家。希望大家能快速上手。
杜金房
2020/12/21
4.1K9
超级好用的FreeSWITCH资源列表
A curated list of awesome FreeSWITCH resources, modules, frameworks, libraries and software. Inspired by awesome-go.
杜金房
2022/12/12
1.4K0
FreeSWITCH新手指南
欢迎使用FreeSWITCH。本文最早写于2009年,最后更新时间是2022年6月4日。
杜金房
2022/12/12
2.2K0
FreeSWITCH新手指南
FreeSwitch Linux(CentOS 6.5) 安装教程
这是资源站点,自行选择版本:http://files.freeswitch.org/freeswitch-releases/
Jensen_97
2023/07/19
8390
Jmeter(三十九) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 上篇(详解教程)
为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是模模糊糊的。更有甚者觉得那是禁地神圣不可轻犯不敢触碰不敢修改,害怕修改错了Jmeter运行不了了。听宏哥的大胆修改大不了再重新安装一个新的Jmeter,或者你有做备份的好习惯,在修改前备份好以后大胆修改,修改错了直接使用备份文件恢复过来就可以。
北京-宏哥
2021/03/30
1.4K0
Jmeter(三十九) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 上篇(详解教程)
tomcat类加载-源码解析
继上文,那么你可能跟我开始一样,tomcat的类加载与我们的java有什么区别?是一样的还是有哪些区别?其次tomcat项目怎么隔离?其三tomat如何打破双亲委派机制?
逍遥壮士
2022/12/01
4870
tomcat类加载-源码解析
ClueCon2022在芝加哥举行及FreeSWITCH1.10.8发布
在又一届新的ClueCon召开之际,FreeSWITCH 1.10.8发布了。本次发布主要包含一些重要的Bug修复补丁,同时也提高了FreeSWITCH自身的稳定性,推荐更新。
杜金房
2022/12/12
7110
FreeSWITCH对接vosk实现实时语音识别
vosk是一个开源语音识别工具,可识别中文,之前介绍过python使用vosk进行中文语音识别,今天记录下FreeSWITCH对接vosk实现实时语音识别。 vosk离线语音识别可参考我之前写的文章:
麦壳儿
2023/05/04
5.6K2
FreeSWITCH与Asterisk
今天,本来想多写点东西的,可是陪孩子玩的多了,就没有时间了。前两天有朋友问到FreeSWITCH有取代或超越Asterisk的历史地位的可能吗?简单回答一下:我认为,Asterisk的历史地位在于它是开源的VoIP软件的先驱,它的历史地位是谁都不可能替代的。但是,如果说到应用及规模,我倒认为FreeSWITCH的前景是很好的。下面是我以前翻译的一篇文章,与大家分享一下。该文章原载于:http://www.freeswitch.org.cn/2010/01/23/freeswitch-yu-asterisk.html ,也可以点击左下角的「查看原文」查看。
杜金房
2020/12/21
3K0
FreeSWITCH之视频录像
我们先看例子 default/0020_record…..xml,我们一行一行的讲。
杜金房
2020/12/21
2.9K0
在FreeSWITCH中写一个简单的IVR
IVR(Interactive Voice Response)即交互式语音应答,也就是我们说的电话语音菜单,可以使用预先录制的语音或者TTS进行自动应答,提供菜单导航,主要用于呼叫中心系统。我们主要介绍FreeSWITCH提供的IVR功能。
杜金房
2022/12/12
4.3K2
在FreeSWITCH中写一个简单的IVR
CentOS 6.5上编译安装httpd-2.4和2.4版本特性介绍
1) MPM支持在运行时装载; --enalbe-mpm-shared=all --with-mpm={prefork|worker|event} 2) 支持event mpm 3) 异步读写 4) 在每模块及每目录分别使用不同的日志级别 5) 每请求的配置: <If>,<Elseif> 6) 增强版的表达式分析器 7) 毫秒级的keep alive的timeout 8) 基于FQDN的虚拟主机不再需要NameVirtualHost指令; 9) 支持用户使用自定义变量
星哥玩云
2022/07/04
5820
CentOS 6.5上编译安装httpd-2.4和2.4版本特性介绍
Skywalking Php系统一:介绍&安装
如果没有什么工具, 我们能做的是在服务器上找日志,做分析;如果机器比较多,还得一台一台定位和分析,效率低而且难度较高。
心平气和
2020/09/11
4.4K0
Skywalking Php系统一:介绍&安装
相关推荐
FreeSWITCH如何集成AMR/AMR-WB编解码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文