以下是 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-combinedsecure-chain 配置 HTTPS/WSS 加密通信。

注意事项

  • 证书配置:确保 wss.pem 文件存在且有效。
  • NAT 穿透:正确配置 rtp-ipext-rtp-ip 以实现 NAT 穿透。
  • 调试:启用 debug 日志以排查问题。

以下是关于 mcast-ipmcast-port 参数的详细解释:


1. mcast-ipmcast-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-ipmcast-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-ipmcast-port 可修改:只要符合 D 类地址范围和网络规划即可。
  • 默认值仅为示例224.1.1.1:1337 是默认配置,实际应用中建议根据需求调整。
  • 网络环境要求:确保网络设备和防火墙支持组播通信。
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐