FreeSWITCH 中 `verto.conf`配置文件的详细解释
Verto 是 FreeSWITCH 的一个协议,用于支持 WebRTC(Web 实时通信),允许浏览器与 FreeSWITCH 进行实时音视频通信。以下是 FreeSWITCH 中。
·
以下是 FreeSWITCH 中 verto.conf 配置文件的详细解释:
1. 配置文件概述
verto.conf 是用于配置 Verto 模块 的配置文件。Verto 是 FreeSWITCH 的一个协议,用于支持 WebRTC(Web 实时通信),允许浏览器与 FreeSWITCH 进行实时音视频通信。
2. 配置结构
配置文件分为两部分:
- 全局设置(
<settings>):适用于所有 Verto 配置文件的通用设置。 - 配置文件(
<profiles>):定义具体的 Verto 配置(如绑定地址、安全设置、编解码器等)。
3. 全局设置
<settings>
<param name="debug" value="0"/>
<!-- <param name="kslog" value="true"/> -->
<!-- <param name="detach-timeout-sec" value="120"/> -->
<!-- <param name="enable-fs-events" value="false"/> -->
<!-- <param name="enable-presence" value="true"/> -->
</settings>
debug:设置调试级别。0表示关闭调试,1或更高值表示启用调试日志。kslog(注释):启用 SignalWire 核心库的日志记录。detach-timeout-sec(注释):设置断开连接后挂断通道的超时时间(秒)。enable-fs-events(注释):是否将所有 FreeSWITCH 事件广播到 Verto 客户端。enable-presence(注释):是否启用 FreeSWITCH 的 Presence 事件广播。
4. 配置文件(<profiles>)
4.1 配置文件名称
<profile name="default-v4">
name="default-v4":配置文件的名称,用于区分不同的 Verto 配置。
4.2 绑定地址
<param name="bind-local" value="$${local_ip_v4}:8081"/>
<param name="bind-local" value="$${local_ip_v4}:8082" secure="true"/>
bind-local:定义 Verto 服务的绑定地址和端口。value="$${local_ip_v4}:8081":绑定到本地 IPv4 地址的8081端口(HTTP)。secure="true":绑定到8082端口并使用安全连接(HTTPS/WSS)。
4.3 强制注册域
<param name="force-register-domain" value="$${domain}"/>
force-register-domain:强制 Verto 客户端使用指定的域进行注册。
4.4 安全证书
<param name="secure-combined" value="$${certs_dir}/wss.pem"/>
<param name="secure-chain" value="$${certs_dir}/wss.pem"/>
secure-combined:指定包含私钥和证书的 PEM 文件路径。secure-chain:指定包含证书链的 PEM 文件路径。
4.5 用户认证
<param name="userauth" value="true"/>
<param name="blind-reg" value="false"/>
userauth:是否启用用户认证(true表示启用)。blind-reg:是否允许匿名注册(false表示禁用,需提供有效账户)。
4.6 组播设置
<param name="mcast-ip" value="224.1.1.1"/>
<param name="mcast-port" value="1337"/>
mcast-ip:组播 IP 地址。mcast-port:组播端口。
4.7 RTP 设置
<param name="rtp-ip" value="$${local_ip_v4}"/>
<param name="ext-rtp-ip" value="$${external_rtp_ip}"/>
rtp-ip:本地 RTP 地址。ext-rtp-ip:外部 RTP 地址(用于 NAT 穿透)。
4.8 本地网络
<param name="local-network" value="localnet.auto"/>
local-network:定义本地网络范围(用于 NAT 和 ACL 配置)。
4.9 编解码器
<param name="outbound-codec-string" value="opus,h264,vp8"/>
<param name="inbound-codec-string" value="opus,h264,vp8"/>
outbound-codec-string:出站呼叫的编解码器优先级。inbound-codec-string:入站呼叫的编解码器优先级。
4.10 ACL 设置
<param name="apply-candidate-acl" value="localnet.auto"/>
<param name="apply-candidate-acl" value="wan_v4.auto"/>
<param name="apply-candidate-acl" value="rfc1918.auto"/>
<param name="apply-candidate-acl" value="any_v4.auto"/>
apply-candidate-acl:定义允许的候选地址范围(用于 ICE 和 NAT 穿透)。
4.11 定时器
<param name="timer-name" value="soft"/>
timer-name:设置 SIP 定时器类型(soft表示软定时器)。
5. 总结
- Verto 配置:
verto.conf用于定义 Verto 服务的绑定地址、安全设置、编解码器、RTP 参数等。 - WebRTC 支持:通过 Verto 模块,FreeSWITCH 可以与浏览器进行实时音视频通信。
- 安全性:通过
secure-combined和secure-chain配置 HTTPS/WSS 加密通信。
注意事项
- 证书配置:确保
wss.pem文件存在且有效。 - NAT 穿透:正确配置
rtp-ip和ext-rtp-ip以实现 NAT 穿透。 - 调试:启用
debug日志以排查问题。
以下是关于 mcast-ip 和 mcast-port 参数的详细解释:
1. mcast-ip 和 mcast-port 的作用
这两个参数用于配置 FreeSWITCH 的 组播(Multicast)通信:
mcast-ip:指定组播的 IP 地址(属于 D 类 IP 地址范围:224.0.0.0~239.255.255.255)。mcast-port:指定组播的端口号。
组播允许 FreeSWITCH 将事件或媒体流广播到多个订阅者(如多个客户端或服务器),适用于以下场景:
- 事件分发:将 FreeSWITCH 事件(如呼叫状态、注册事件)广播到多个监听节点。
- 媒体流分发:实时音视频流的多播(如会议系统)。
2. IP 地址 224.1.1.1 是固定的吗?
- 不是固定的:
224.1.1.1是示例配置中的默认值,可以自由修改。 - 组播地址范围:组播地址必须属于 D 类 IP 地址(
224.0.0.0~239.255.255.255),但需注意以下规则:224.0.0.0~224.0.0.255:保留用于本地网络控制(如路由协议),不可随意使用。224.1.1.1:属于通用组播地址范围,用户可自由分配。
3. 为什么选择 224.1.1.1?
- 避免冲突:
224.1.1.1不属于保留地址范围,适合自定义组播应用。 - 示例用途:配置文件中通常使用简单易记的地址(如
224.1.1.1)作为默认值。 - 灵活性:用户可以根据网络规划自由选择其他 D 类地址(如
239.255.255.250)。
4. 如何修改组播地址?
在 verto.conf 中直接修改 mcast-ip 和 mcast-port:
<param name="mcast-ip" value="239.255.255.250"/>
<param name="mcast-port" value="5000"/>
5. 注意事项
- 网络设备支持:确保路由器、交换机支持 IGMP(Internet Group Management Protocol),否则组播流量无法跨子网传输。
- 避免地址冲突:在同一网络中,不同组播应用应使用不同的组播地址。
- 防火墙配置:开放组播端口(如
1337或自定义端口)的 UDP 流量。
6. 组播地址的常见用途
| 地址 | 用途 |
|---|---|
224.0.0.1 |
所有主机(本地网络) |
224.0.0.2 |
所有路由器(本地网络) |
224.1.1.1 |
用户自定义组播(示例) |
239.255.255.250 |
通用组播地址(推荐用于自定义应用) |
总结
mcast-ip和mcast-port可修改:只要符合 D 类地址范围和网络规划即可。- 默认值仅为示例:
224.1.1.1:1337是默认配置,实际应用中建议根据需求调整。 - 网络环境要求:确保网络设备和防火墙支持组播通信。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)