基础配置
本章节帮助你从零搭建一套可用的 RustPBX 实例,包括环境要求、安装、初始化配置与基础验证。所有步骤均以中文说明,方便交付与培训。
1. 前置条件
- 运行环境:推荐 4C/8G 以上的 x86_64 Linux(Debian/Ubuntu/CentOS 均可)。
- 依赖:Docker 或 Podman(容器部署),或已安装 Rust toolchain(裸机编译),以及 SQLite/PostgreSQL(按照
Cargo.toml中的 feature 选择)。 - 网络:服务器需要固定公网 IP,开放 SIP/HTTPS/诊断端口,并将运营商或 SBC 的 IP 加入安全组。
- 证书:若启用 WebRTC/HTTPS,需要准备 TLS 证书,可由 addons
acme自动签发。
(此处可插入「部署拓扑」截图)
2. 安装方式
2.1 商用镜像部署(推荐)
- 准备
config.toml与config/目录(详见下一节)。 - 拉取官方镜像:
docker pull docker.cnb.cool/miuda.ai/rustpbx:latest。 - 启动示例:
docker run -d --name rustpbx \
-v $(pwd)/config.toml:/app/config.toml \
-v $(pwd)/config:/app/config \
-v $(pwd)/rustpbx.sqlite3:/app/rustpbx.sqlite3 \
-p 8080:8080 -p 15060:15060/udp \
docker.cnb.cool/miuda.ai/rustpbx:latest
- 在 Compose/Kubernetes 中同样引用该镜像,并将配置与数据库挂载为持久卷;日志默认写到 stdout/stderr,便于集中收集。
2.2 裸机部署
- 安装 Rust(
rustup default stable)。 - 在项目根执行
cargo build --release,可得到target/release/rustpbx。 - 将二进制放入
/usr/local/bin,配合systemd/supervisor启动。
3. 初始化配置
RustPBX 的运行参数主要来自 config.toml 与 config/ 子目录:
config.toml:全局服务段([proxy]、[ua]、[console]、[recording]、[callrecord]等)以及插件启停;建议先填写监听地址(http_addr、proxy.addr)、鉴权方式(proxy.user_backends、console.allow_registration)与日志级别。- Trunk 文件:在
config/trunks/下按模板新增*.toml,包含uri、auth、codec等字段。 - Routing 文件:在
config/routes/中定义入站/出站匹配规则,并指向分机、队列或 Trunk。 - Queue/ACL:如需排队和安全策略,分别在
config/queue/、config/acl/中准备对应文件。 - 数据库迁移:启动时自动初始化
models/中定义的表结构。
(此处可插入「config 目录结构」截图)
4. 启动与首个登录
- 启动服务后访问控制台地址(默认
https://<host>:<port>/console/)。 - 通过
console段配置的管理员账号登录,首次登录建议立即修改密码并开启多因素认证(若已集成)。 - 在控制台的「系统状态」页确认组件全部
Healthy,若有告警先排查网络/证书问题。
5. 快速验证清单
- 创建测试 Trunk:录入运营商或软交换的测试线路。
- 添加路由:为测试号段配置 inbound/outbound 路由,动作指向一个临时分机。
- 注册软终端:在「分机管理」中创建分机,并在软电话/SIP 设备上完成注册。
- 发起测试呼叫:验证主叫与被叫均能建立通话,录音与 CDR 正常生成。
- 执行 Reload:通过控制台 Settings → Reload,使配置立即生效,并在 Diagnostics → Routing 运行一次 Evaluate,确认命中的规则与输出的 Trunk。
完成以上步骤后,系统即可承载初始业务流量。更深入的线路策略、计费和诊断方法请参见后续章节。