技术规格指标
本节汇总 RustPBX 的兼容性、性能假设、外部依赖与可扩展边界,方便在规划容量或做架构评审时引用。
1. 支持矩阵
| 项目 | 说明 |
|---|---|
| 操作系统 | 64-bit Linux(Debian 11+/Ubuntu 20.04+/CentOS Stream);亦可在容器/Kubernetes 中运行 |
| 数据库 | 默认 SQLite;生产建议 PostgreSQL/MySQL,models 层使用 SeaORM 统一管理 |
| SIP 编解码 | G.711a/u、G.729、Opus、G.722、iLBC(可在 Trunk/分机配置指定) |
| 传输协议 | UDP/TCP/TLS for SIP,RTP/SRTP for 媒体,WebSocket/WebRTC for 浏览器客户端 |
| 控制台 | Web UI(React+Docusaurus 文档)、REST/AMI 管理接口 |
2. 性能参考
说明:由于场景差异较大,下列为在 4C/8G、启用 SRTP 的常见经验值,实际需结合压测工具
examples/perfcli.rs验证。
- 并发呼叫:单实例 500~800 并发为常见区间,取决于编解码与录音策略。
- 每秒呼叫建立数(CPS):轻量场景可达 30+ CPS,需结合运营商节流策略。
- 延迟:内部处理延迟 < 20ms,端到端取决于网络质量。
3. 可观察性与接口
- 健康探针:
handler::ami暴露/health,可供负载均衡或黑盒探测;perfcli亦可批量检测节点状态。 - 日志:通过
log_level、log_file控制tracing输出,方便采集到 ELK/Loki;HTTP 访问日志可借助AccessLogEventFormat。 - Diagnostics UI:
templates/console/diagnostics.html提供 WebRTC probe、Trunk/Route Evaluate、Web Dialer,满足大部分排障需求。 - Webhook/AMI:
handler/ami.rs、handler/llmproxy.rs可扩展事件回调或对接外部语音机器人。
4. 安全与合规
- 加密:支持 TLS/SRTP、WebRTC DTLS,证书可由
addons/acme管理。 - 鉴权:分机级/SIP Trunk 级凭证,控制台支持自定义中间件(
console/middleware.rs)。 - 审计:通话记录与操作日志可导出满足监管留存,需自行配置保留周期。
5. 扩展点
- Addons:
addons/wholesale、addons/acme等示例,开发者可新增目录实现行业扩展。 - Playbook/LLM:
playbook/、llm/提供 AI 语音场景接口,可与外部模型通信。 - Handler:
handler/目录中为自定义 API/协议入口,可增加 Webhook、gRPC 等。
6. 部署与容灾建议
- 多实例部署:建议至少两台节点 + 共享数据库,结合外部 SBC 或负载均衡实现流量分配。
- 状态同步:活跃呼叫信息保存在
proxy/active_call_registry.rs,多实例需借助外部 Redis/数据库共享或按业务分区。 - 备份:配置文件使用 Git 管理;数据库定期快照;录音/文件可放对象存储。
如需官方基准数据,可参考 docs/specs 后续发布的性能报告,或在测试环境运行 cargo bench 与自定义压测脚本获得更精确结果。