跳到正文

FreeSWITCH 配置维护说明

本目录是 FreeSWITCH 配置参考树,不会自动同步或部署到远端主机。机器地址、端口、 数据库连接和证书必须在应用前按现场环境校准;shared secret、密码、完整 DSN、token 及其他凭据不得写入本文档。tls/dtls-srtp.pemtls/wss.pem 为保持参考树完整而原样 保留的样例证书,禁止在生产环境直接复用,部署时必须替换并限制私钥权限。

当前仓库变更

以下内容是当前工作树相对 Git 基线的有效配置变更,本文只补充维护注释,不进一步 调整这些值:

  • autoload_configs/acl.conf.xml 新增 softphone-turn-relay,只允许当前 coturn 公网地址提供的 ICE candidate。修改地址后需执行 reloadacl,并用新呼叫验证;
  • autoload_configs/switch.conf.xml 将 FreeSWITCH RTP 范围固定为 30000-30199/UDP,与 FRP 映射一致;
  • sip_profiles/internal.xml 使用本机地址绑定 SIP/RTP,将 local-network-acl 设为 none,并应用 softphone-turn-relay candidate ACL;
  • vars.xml 将当前 FreeSWITCH 内网地址与 FRP/NAT 公网广告地址分开配置,固定 external_*,避免 STUN 自动探测到不适用的公网地址。

这些设置依赖以下配置同时成立:FRPS、FRPC、公网安全组和 FreeSWITCH 主机防火墙均 完整放行并转发 30000-30199/UDP;coturn 直接使用 31000-31040/UDP 作为 relay 范围,且该范围不经过 FRP、不与 FreeSWITCH RTP 范围重叠;应用下发的 TURN 地址、 coturn 公网地址和 softphone-turn-relay ACL 保持一致。详细拓扑、变更步骤和验收方法见 5G 软电话 WebRTC ICE/TURN 指南

与 debian12-show 的只读比对

2026-07-18 对 /usr/local/freeswitch/etc/freeswitch/ 做了只读逐文件 SHA-256 比对, 未向远端写入配置:

  • 比对时本目录已有的 137 个配置文件(不含本说明)均能在远端找到同路径文件;
  • 129 个文件内容完全一致,8 个同路径文件不同;
  • 远端另有 2 个带时间戳的变更前备份文件,仓库不收录这些现场备份。

8 个差异文件及已知差异如下:

文件已知差异处理原则
autoload_configs/acl.conf.xml有效 ACL 值一致,仓库包含额外维护注释保留仓库注释;不复制远端备份文件
autoload_configs/event_socket.conf.xml仓库监听 IPv4 0.0.0.0,远端监听 IPv6/双栈 ::监听栈选择需现场确认
autoload_configs/switch.conf.xmlRTP 范围一致;机器专属数据库 DSN 存在差异DSN 不互相同步,需现场确认
dialplan/default.xml业务 socket 主机地址为 .246.198服务实际部署地址需现场确认
dialplan/public/00_inbound_did.xml业务 socket 主机地址为 .246.198服务实际部署地址需现场确认
sip_profiles/internal.xmlSIP/RTP 绑定变量不同;远端另有 ext-sip-port;数据库 DSN 存在差异绑定、端口和 DSN 均需现场确认
sip_profiles/internal/example.xml代理主机地址不同示例是否仍被使用需现场确认
vars.xml有效参数值一致,仅注释和空白不同保留仓库维护注释

表中的地址尾段只用于定位差异,不代表可以直接同步。无法从仓库确认的监听栈、业务服务 地址、SIP 端口、代理和数据库配置均标记为“需现场确认”,不得根据远端现状反推或臆造 调整原因。

变更与上线约束

修改本目录时需要同步核对 FRP、coturn、安全组和主机防火墙。应用配置前至少确认 XML 可解析、RTP 与 relay 端口范围不重叠、ACL 中的公网地址与 coturn 一致,并保存现场私有 配置的独立备份。ACL 变更使用 reloadacl;Sofia profile 或全局 RTP 参数的生效方式按 现场变更窗口确认,并用新建 WebRTC 呼叫检查 ICE、DTLS 和双向 RTP。

本说明不授权对 debian12-show 或其他主机执行写入、覆盖、重载或重启操作。

文档与代码在同一仓库维护,现有 Markdown 是唯一内容源。