FreePBX 部署日记-3:实现第一通测试电话的成功拨通

技术专业 · 前天

在前两篇完成了 FreePBX 的基础部署、安全加固和 HTTPS、备份之后,今天这一步才真正进入 “业务是否可用” 的关键阶段:

创建用户(分机) → 终端注册 → 实际通话跑通

看似简单,但在 Debian 12 + FreePBX 17 + OpenSSL 3 的组合下,TLS 注册过程中还是踩了几个非常典型的坑,值得完整记录。

一、分机创建:从第一个用户开始

1. 手工创建分机(Quick Create)

路径:

Applications → Extensions → Quick Create Extension

2. 分机高级参数(保持克制)

进入分机的 Advanced 页面,可以看到大量 NAT、RTP、Contact、Force rport 等选项。

本阶段原则很简单:

不要一上来就“调教参数”,先用默认值把流程跑通。

3. 用户批量导入能力(为后续埋点)

通过 Bulk Handler 可以看到:

  • Extensions
  • Users
  • Groups
  • UCP Templates

在导出的模版中有前面已经配置的200这个用户,让大模型帮着生成了19个,导入后形成了一个20个用户的小的话务平台:

FreePBX 在用户规模化管理上是完全可用的。

二、手机端测试:UDP 先跑通

1. UDP 注册测试结论

在手机端使用 Linphone:

  • 服务器:IP / 域名
  • 传输协议:UDP

结果:

  • 可以正常注册
  • 内部分机可互拨

这一步的意义非常重要:

它证明了:
  • 分机配置是对的
  • 网络 / NAT / 防火墙是通的
  • Asterisk 核心功能正常

所以,后面再出问题,就不要再怀疑“基础环境”了。

三、TLS 注册失败问题的解决

1. 表现现象

  • 使用域名
  • Linphone 选择 TLS
  • 提示:密码错误

这是一个极具迷惑性的提示

2.修改配置

证书与 PJSIP TLS 绑定

重点检查两项:

1. Certificate Manager

  • 必须选择

    Let’s Encrypt 证书

  • 绝对不能是

    Default Self-Signed

默认自签证书在手机端 100% 会失败

2. SSL Method(极其关键)

在 Debian 12 + OpenSSL 3 下:

  • 推荐顺序:

    1. Default(自动协商)
    2. tlsv1_2
  • 不要使用

    • tlsv1(已被系统级安全策略拒绝)


3.分机 Transport 被“锁死”

问题根因
  • CSV 或模板分机(如 200)使用的是 UDP
  • 新分机(如 201)继承模板后:

    • Transport 被固定为 0.0.0.0-udp
  • 即使服务器已启用 TLS:

    • 分机自己不肯用 TLS

2. 正确修复方式(分机级)

路径:

Applications → Extensions → 编辑分机 → Advanced

找到 Transport

  • 如果是:0.0.0.0-udp
  • 修改为:

    • ✅ All - PJSIP Transports
    • 或明确的 0.0.0.0-tls

推荐使用 All,同时兼容 UDP / TCP / TLS。

3. 必要时记得重启
  1. Submit
  2. Apply Config
  3. SSH 登录服务器,执行:

    fwconsole restart

四、结语:实现第一通测试电话的成功呼出

  1. 等待服务重启完成(约 30 秒)
  2. 打开 Linphone

    • 传输协议:TLS
    • 端口:5061
  3. 点击登录
  4. 同时在服务器上查看日志:

    tail -f /var/log/asterisk/full
TLS 注册成功,第一通电话已经真正“跑通”了。

到这一篇结束,FreePBX 已经完成了从:

“系统能用” → “用户可用” → “测试通话可用”
Theme Jasmine by Kent Liao