RustPBX 简介
RustPBX 是一款使用 Rust 开发的高性能、内存安全的 Private Branch Exchange(企业级电话交换系统)。
分体式架构
创新的 分体式架构,媒体处理与业务逻辑完全分离:
- AI Agent:负责业务逻辑、LLM 集成和决策引擎
- RustPBX:负责媒体流传输、音频处理和通信协议实现
- WebSocket 连接:通过 命令/事件 机制和客户端交互
让开发者能够:
- 专注业务逻辑:无需了解音频处理、SIP 协议等底层细节
- 多语言支持:使用任意编程语言(Python、Go、Java、JavaScript、Rust 等)
- 技术栈自由:自由选择 AI 框架(LangChain、OpenAI SDK 等)
- 独立部署:AI 逻辑与媒体处理可分别部署和扩展
- 易于调试:问题域隔离,AI 和媒体问题互不干扰
协议支持
支持多种标准协议:
- SIP/RTP:兼容标准 SIP 信令协议和 RTP 媒体传输协议。
- WebRTC:支持浏览器端和移动端直接通话
- WebSocket:原生 WebSocket 音频流传输
命令/事件交互机制
直观的命令/事件模式进行交互:
- 命令(Command):向 RustPBX 发送指令以控制通话
- 事件(Event):RustPBX 推送状态变化和命令处理结果
灵活的插件化架构
插件化设计,支持多家主流服务提供商,让您可以:
- 根据价格、特性自由选择
- 自定义实现 ASR/TTS 插件,轻松集成自有服务
强大的音频处理能力
完整的音频处理流水线,提供企业级的语音质量保障:
- 语音活动检测(VAD):智能识别语音活动,通过事件通知
- 智能降噪:实时去除背景噪音,提升 ASR 识别准确率
- 增益控制:自动调节音量强度,确保通话稳定清晰
为什么选择 RustPBX
与 Pipecat 对比
| 特性 | RustPBX | Pipecat/单体框架 |
|---|---|---|
| 架构模式 | 分体式, AI 与媒体分离 | 单体架构,所有组件集成 |
| 部署方式 | 分布式,可独立扩展 | 单进程部署 |
| 学习成本 | 低,只需了解 API | 高,需了解音频处理细节 |
| 调试难度 | 低,AI 和媒体问题分离 | 高,AI 和媒体问题耦合 |
| 性能 | 高性能,多线程并行 | 单进程, GIL 限制 |
| 可维护性 | 模块解耦,易于维护 | 耦合度高,升级影响全栈 |
适用场景
- 企业级应用和生产环境
- 需要高并发和高可用性的系统
- 多团队协作开发的大型项目
- 复杂的语音交互场景(IVR、智能客服、语音智能体)
- 对性能和稳定性要求高的场景
- 需要与现有电话系统集成的场景
开发优势总结
- 低学习成本: 无需了解音频处理、SIP 协议等专业知识
- 高开发效率: 专注业务逻辑,快速迭代 AI 功能
- 易于测试: WebSocket 接口便于单元测试和集成测试
- 可扩展性强: 支持分布式部署和水平扩展
- 技术栈自由: 不限制 AI 开发技术和框架选择
- 生产就绪: 内置监控、日志、错误处理机制