RTS 与 FreeSWITCH

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 这篇文章介绍了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

增加rtsrtss符号链接

为与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.comxx替换为你查询到的解析地址,保存并关闭 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 平台迁移和格式转换,翻译过程中一些专业的术语也难免出错,因此结果也不是尽善尽美。接下来需要持续改进。欢迎加入我们一起玩。

相关文章
|
6月前
关于流控RTS/CTS ,DTR/DSR的说明
关于流控RTS/CTS ,DTR/DSR的说明
1012 0
|
6月前
|
数据安全/隐私保护
wpa_supplicant 的使用
wpa_supplicant 的使用
182 1
freeswitch:sofia.c:5180 Invalid ext-sip-ip
freeswitch:sofia.c:5180 Invalid ext-sip-ip
247 1
|
JSON Ubuntu Linux
FreeSWITCH安装
FreeSWITCH
2059 0
FreeSWITCH安装
|
编解码 网络协议 安全
freeswitch是什么
FreeSwitch是一个开源的电话软交换平台,是一个跨平台的/伸缩性极好的/免费的/多协议的电话软交换平台。同时FreeSWITCH是一个电话的软交换解决方案,包括一个软电话和软交换机用以提供语音和聊天的产品驱动。FreeSWITCH 可以用作交换机引擎、PBX、多媒体网关以及多媒体服务器等。
freeswitch是什么
|
安全 关系型数据库 MySQL
FreeSwitch的安装
本次安装环境是centos 7, 源码目录是
1517 1
|
XML 自然语言处理 搜索推荐
FreeSWITCH 与 Asterisk
Anthony Minssale/文 Seven/译
|
API 语音技术
freeswitch的模块中mod_vad的使用说明
介绍 mod_vad是一个freeswitch的模块,实现VAD录音和放音支持打断,vad和asr集成,tts放音支持等。
|
编解码
Bluetooth Profile Specification之1.1 A2DP 之Audio Codec(音频编解码器)-SBC
Bluetooth Profile Specification之1.1 A2DP 之Audio Codec(音频编解码器)-SBC
516 0
Bluetooth Profile Specification之1.1 A2DP 之Audio Codec(音频编解码器)-SBC
Freeswitch配置:一台Freeswitch向另外一台Freeswitch转发视频会议命令
Freeswitch配置:一台Freeswitch向另外一台Freeswitch转发视频会议命令
443 0