在前两篇完成了 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 下:
推荐顺序:
- Default(自动协商)
- 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. 必要时记得重启
- Submit
- Apply Config
SSH 登录服务器,执行:
fwconsole restart
四、结语:实现第一通测试电话的成功呼出
- 等待服务重启完成(约 30 秒)
打开 Linphone
- 传输协议:TLS
- 端口:5061
- 点击登录
同时在服务器上查看日志:
tail -f /var/log/asterisk/full
TLS 注册成功,第一通电话已经真正“跑通”了。
到这一篇结束,FreePBX 已经完成了从:
“系统能用” → “用户可用” → “测试通话可用”
