RTS 与 FreeSWITCH

简介: 这篇文章介绍了RTS(Real-Time Switch),一个FreeSWITCH的衍生品,它提供了稳定发行版、实用默认配置、新特性、国产化适配、改进的控制接口和UI等,同时讨论了RTS的默认编译模块调整、禁用Stun功能、增加的RTP相关函数、WebRTC Media Bundle支持、HTTP相关函数增加、默认禁用自动NAT、Windows编译问题解决、录音文件权限修改、mod_httapi和mod_logfile模块优化,以及文档贡献和国内访问GitHub的方法。

什么是 RTS

RTS is a Derivative work of FreeSWITCH, Not a Fork。

RTS 是一个 FreeSWITCH 衍生品,不是一个 Fork。

RTS 旨在解决但不限于以下问题:

  • 稳定的发行版
  • 更实用的默认配置
  • 更多的 Feature
  • 国产化适配
  • 更好的控制接口
  • UI
  • 还有好多新特性
  • 和一些扩展模块

RTS 期待:

  • 更多的用户
  • 更多的贡献者

RTS 新特性

与原来的 FreeSWITCH 相比,RTS 有很多独特的新特性。当然,随时时间发展,这里描述的特性也可能会合并回 FreeSWITCH 里去。

默认编译模块调整​

调整了部分默认编译的模块。参见Commit 。

默认配置文件中禁用Stun功能​

很多场景下无法连接默认的Stun服务器,因此,在默认的配置文件中禁用。解决了很多问题。

Commit

增加rts和rtss符号链接​

为与FreeSWITCH兼容,暂时未修改路径及可执行程序名称。RTS以符号链接形式呈现:

  • rts -> fs_cli
  • rtss -> freeswitch

会议模块增加vid-watching-member子命令​

单独看某一个与会成员。如:

conference 3000 vid-watching-member 1 2

Commit

增加两个RTP相关的函数​

  • switch_core_session_get_rtp_pt
  • switch_core_session_get_rtp_session

Commit

支持WebRTC Media Bundle​

为mod_srs装备。

增加 mod_srs 模块​

Commit

增加 HTTP 相关函数​

增加了:

  • xswitch_http_get
  • xswitch_http_post
  • xswitch_http_request

从 XSwitch 移植过来。

Commit

默认禁用自动NAT​

FreeSWITCH默认会自动开启NAT检测,启动慢。可以在启动时使用-nonat关闭。RTS默认关闭该功能,加了个参数-nat可以打开。

Commit

解决一个Windows编译问题​

解决time_expires在Windows上编译问题。

PR28

支持修改录音文件的默认权限​

可以使用RECORD_DIR_PERMS修改默认录音文件的权限。如:

<action application="set" data="RECORD_DIR_PERMS=0644"/>

PR29

mod_httapi支持长文件名及URL​

PR30

mod_logfile优化多行日志写入性能​

PR31

增加switch_split_cheap函数​

与switch_split类似,但更“廉价”。不会破坏现有内存。仅适用不需要进行变量替换的场景。

如何向 RTS 文档仓库中添加文档?

RTS 文档源文件在 Github 上,首先你要有个 Github 账号,然后 Fork 并 Clone RTS 文档仓库:GitHub - rts-cn/docs: RTS Docs

Clone 后向 docs/rts/ 目录中添加文档。扩展名使用.mdx,使用 Markdown 语法,参见小樱桃的 Markdown 规范 。

向索引页 howto/index.mdx 上添加指向新文件的链接,如 [如何向RTS文件中添加文档](add-docs/),注意,内部链接最后要有个/`。

然后提交 Pull Request。参见:

另外,可以参考 add howto · rts-cn/docs@59d57e0 · GitHub 这个添加文档的例子。

如果需要在本地预览或编译,需要安装 Node.JS 环境。执行yarn安装依赖,执行yarn start可以启动一个本地的 Server,然后可以根据提示信息打开 http://localhost:3000 预览。

本文档系统使用 Build optimized websites quickly, focus on your content | Docusaurus 构建,更多信息参见 GitHub - rts-cn/docs: RTS Docs 上的 README,以及 docusaurus 中文文档。

如何在国内访问 GitHub?

前言​

登录 GitHub 开拓 RTS 社区是必不可少的一项工作,但有时候由于网络限制或其他原因,我们可能无法直接访问 GitHub。在这篇文档中,将为您提供一种不使用代理的方法来访问 GitHub 网站。

方法集锦​

使用 hosts 文件​

修改系统的 hosts 文件,绕过国内 DNS 解析,直接访问 GitHub 的 CDN 节点,从而达到加速访问 GitHub 的目的。不需要海外的服务器辅助。其原理是在浏览器中输入 GitHub 的网址时,会向 DNS 服务器发送一个请求,获取到 GitHub 网站所在的服务器 IP 地址,从而进行访问。就像你是一名快递员,在送快递前要先找中间人询问收件人的地址。而 DNS 就是这个告诉你目标地址的中间人,如果 DNS 告诉了你错误的地址,或者请求被拦截,再或者 DNS 挂了,都会导致你无法访问网站。

因此,想要访问 GitHub,我们可以先通过 IP 查询工具来获取当前 GitHub 网站的真实地址,再修改本地 hosts 文件,将该地址和 GitHub 网址关联。

首先,打开 https://www.ipaddress.com/,查询以下4个链接的DNS解析地址,哪个能ping上选择哪个。

  • github.com
  • assets-cdn.github.com
  • github.global.ssl.fastly.net
  • raw.githubusercontent.com

然后,打开操作系统的文件管理器,找到 hosts 文件的位置,不同操作系统,hosts 文件的存储位置也不同:

  • Windows 系统:C:\Windows\System32\drivers\etc\hosts
  • Linux 系统:/etc/hosts
  • Mac(苹果电脑)系统:/etc/hosts
  • Android(安卓)系统:/system/etc/hosts
  • iPhone(iOS)系统:/etc/hosts

打开 "hosts" 的文件,并用文本编辑器打开它(以管理员身份运行编辑器)。在 hosts 文件的末尾添加一行,xx.xx.xx.xx www.github.com将xx替换为你查询到的解析地址,保存并关闭 hosts 文件。

访问 GitHub​

现在,您应该能够通过浏览器直接访问 GitHub 网站了,而无需使用代理。尝试在浏览器中输入 "github.com" 或 "www.github.com",然后按 Enter 键进行访问。

请注意,这种方法仅适用于绕过某些网络限制或 DNS 解析问题。如果您仍然无法访问 GitHub,请确保您的网络连接正常,并检查是否存在其他网络层面的限制。

希望这个方法能够帮助您成功访问 GitHub 网站。

GitHub 仓库快速导入 Gitee 及同步更新​

将 GitHub 上的内容 Fork 到 Gitee 仓库是一种将代码或项目从一个代码托管平台迁移到另一个平台的常见操作。

Fork GitHub 仓库到 Gitee​

先创建 Gitee 账号,打开 Gitee 网站,点击 "注册" 或 "Sign Up",填写必要的信息并创建一个 Gitee 账号。再登录 Gitee 账号,点击右上角的 "+" 号,点击从 "GitHub 导入仓库",Fork GitHub 仓库到 Gitee。具体操作如下:

打开 GitHub 网站。导航到您想要 Fork 的仓库页面。在仓库页面的右上角,点击 "Fork" 按钮。在弹出的对话框中,选择您的 Gitee 账号作为 Fork 的目标。等待一段时间,GitHub 会将仓库的副本复制到您的 Gitee 账号下。

同步更新​

在 Gitee 上打开 Fork 后的仓库页面。点击页面右上角的 "设置" 按钮。在设置页面的左侧导航栏中,选择 "仓库管理" -> "同步管理"。在 "远程仓库地址" 中输入原始 GitHub 仓库的 URL。点击 "同步" 按钮,Gitee 将会尝试将原始仓库的更新同步到您的 Gitee 仓库中。

现在,您已经成功将 GitHub 上的内容 Fork 到 Gitee 仓库中了。您可以在 Gitee 上继续管理和开发这个仓库,而无需直接访问 GitHub。请注意,由于两个平台的差异,一些功能和操作可能会有所不同,您可能需要适应 Gitee 平台的界面和工具。

希望这个方法能够帮助您成功将 GitHub 上的内容迁移到 Gitee 仓库。

RTS Modules

RTS支持第三方模块。

mod_rustit​

mod_rustit是一个用 Rust 语言写的模块。

mod_shine​

一个MP3录音模块。

mod_shine

mod_vnc​

与VNC交互的模块。

mod_vnc

mod_x11​

与X11交互的模块。

mod_x11

mod_aac​

AAC编解码模块。

mod_aac

由于 FreeSWITCH 原始英文文档中有一些 Markdown 语法不规范,且经过很多次 Wiki 平台迁移和格式转换,翻译过程中一些专业的术语也难免出错,因此结果也不是尽善尽美。接下来需要持续改进。欢迎加入我们一起玩。

相关文章
|
Java 关系型数据库 MySQL
Spring Boot实现第一次启动时自动初始化数据库
在现在的后端开发中,只要是使用关系型数据库,相信SSM架构(Spring Boot + MyBatis)已经成为首选。 不过在我们第一次运行或者部署项目的时候,通常要先手动连接数据库,执行一个SQL文件以创建数据库以及数据库表格完成数据库的初始化工作,这样我们的SSM应用程序才能够正常工作。 这样也对实际部署或者是容器化造成了一些麻烦,必须先手动初始化数据库再启动应用程序。 那能不能让我们的SSM应用程序第一次启动时,自动地帮我们执行SQL文件以完成数据库初始化工作呢? 这样事实上是没问题的,今天就以Spring Boot + MyBatis为例,使用MySQL作为数据库,完成上述的数
|
6月前
|
自然语言处理 前端开发 JavaScript
前端组件库—— Vditor 知识点大全(一)
教程来源 https://zlpow.cn Vditor 是一款开源、跨框架的浏览器端 Markdown 编辑器,支持所见即所得、即时渲染(Typora 风)和分屏预览三模式,基于 TypeScript 与 Lute 渲染引擎,兼容 CommonMark/GFM,内置公式、图表、多语言等高级功能,轻量易集成。
|
数据可视化 前端开发 开发工具
如何在网页中嵌入UE/Unity/WebGL程序,并与网页端通信
LarkXR实时云渲染平台,为UE数字孪生提供的产品化、平台化功能模块,以及必备的二次开发能力。
883 11
如何在网页中嵌入UE/Unity/WebGL程序,并与网页端通信
|
数据可视化 JavaScript 图形学
实时云渲染将UE像素流嵌入业务系统,实现二维管理系统与数字孪生三维可视化程序的无缝交互
实时云渲染将UE开发的数字孪生三维可视化场景,一键嵌入智慧大脑等业务系统,用户在执行业务操作时,二维图表与三维可视化场景实时交互,通过WebSDK和数据通道等方式,实现丰富的二次开发功能,无缝对接园区、管网、城市、BIM/CIM等管理平台,适合于石油石化、安监安防、能源电力、冶金冶炼、航空航天、机场航务等各类数字孪生行业场景。
791 157
|
10月前
|
XML 语音技术 开发者
基于prosemirror的SSML编辑器
SSML是W3C标准的语音合成标记语言,通过XML标签精细控制TTS的停顿、语调和发音,提升语音自然度与用户体验。相比纯文本,SSML更精准,避免机械感。我基于ProseMirror开发了Web友好的SSML编辑器,助力开发者高效编排。欢迎Star支持!
341 0
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
631 61
|
存储 Java 关系型数据库
基于Java和MySQL实现的大学生学籍管理系统(毕业设计附完整项目代码)
基于Java和MySQL实现的大学生学籍管理系统(毕业设计附完整项目代码)
2967 0
基于Java和MySQL实现的大学生学籍管理系统(毕业设计附完整项目代码)
|
NoSQL 前端开发 Java
【幂等性大坑】事务提交前释放锁导致锁失效问题
在事务中,使用了 Redis 分布式锁.这个方法一旦执行,事务生效,接着就 Redis 分布式锁生效,代码执行完后,先释放 Redis 分布式锁,然后再提交事务数据,最后事务结束。如果是表单重复提交场景,可以尝试给“订单号”等有唯一性的字段加唯一索引,这样重复提交时会因为唯一索引约束导致索引失效。5、如果表的一个字段,要作为另外一个表的外键,这个字段必须有唯一约束(或是主键),如果只是有唯一索引,就会报错。2、创建唯一约束,会自动创建一个同名的唯一索引,该索引不能单独删除,删除约束会自动删除索引。
【幂等性大坑】事务提交前释放锁导致锁失效问题
|
Linux 虚拟化 数据安全/隐私保护
使用VMware安装linux虚拟机
使用VMware安装linux虚拟机
使用VMware安装linux虚拟机

热门文章

最新文章