Wazo 介绍与选型指南

Wazo Platform 开源全功能 PBX/UC 平台介绍——架构、组件、REST API 可编程性、功能矩阵与 FreePBX/Issabel/FusionPBX 竞品选型对比(v26.10 实查)

WazoWazoPBXSIP 协议VoIP 语音Asterisk PBX统一通信2026/10/27

Wazo 介绍与选型指南

目标:为首次接触 Wazo Platform 的用户提供一份完整的软件认知地图——它是什么、能做什么、架构如何、适合谁、与主流 PBX 方案如何选型对比。本文内容基于 Wazo Platform 官方文档与 GitHub 仓库实查(查询日期 2026-10-27),所有版本号、特性清单以 v26.10 为准。

一、环境信息

  • 文档撰写日期:2026-10-27
  • Wazo Platform 最新稳定版:26.10(2026-10-12 发布,对应 Debian 12 Bookworm,Asterisk 22.11.0)
  • Wazo 上游基础:Asterisk(Digium 开源软交换框架)
  • 官方文档站:https://wazo-platform.org/uc-doc/
  • GitHub 组织:wazo-platform(多仓库微服务形态)
  • 开源协议:GPL 3.0(各子服务一致)

二、软件概述

Wazo Platform 是一套完整的开源统一通信(UC)解决方案,基于 Asterisk 构建,把 PBX(电话交换)、会议、即时消息、录音、队列、IVR、CTI 等功能打包成一个可通过 REST API 编排的微服务系统。Wazo 项目起源于法国电信公司 XiVO Solutions 的开源 PBX 产品 XiVO(2015 年前后更名开源),目前由 Wazo Platform 社区维护,是少数几个能与 FreePBX、Issabel、Elastix 比肩的全功能开源 UC 平台。

Wazo 的核心定位不是「一个 PBX 软件」,而是「一套可程序控制的 UC 中间件」:它以微服务架构把 Asterisk 封装成一组可独立部署的后端进程,每个进程暴露 REST API,管理员通过 wazo-confd(配置管理)、wazo-auth(认证)、wazo-websocketd(实时事件推送)、wazo-amid(Asterisk 管理器接口桥接)、wazo-provd(话机自动配置)等服务协同工作,Web 管理界面(Wazo Web Desktop)本身就是这些 API 的前端。

💡 技术拓展:PBX(Private Branch Exchange,专用分支交换机)的实现路线并非 Wazo 一家——

路线代表产品特点
Asterisk 纯手工直接写 Asterisk dialplan极致灵活、纯文本配置、无图形界面、维护成本高
Asterisk + Web 管理FreePBX / Issabel / Elastix图形界面成熟、社区大、但核心配置被 Web 工具接管,难与自动化集成
Asterisk + 微服务 APIWazo Platform / 3CX(商业)把 PBX 后端微服务化、REST API 驱动、可编程集成最佳
非 Asterisk 路线FreeSWITCH / FusionPBX / Jami不同底层、协议覆盖不同、生态大小差异大
商业 UC 全套Cisco UCM / Avaya / Mitel封闭、高成本、企业级 SLA

本文聚焦的是「Asterisk + 微服务 API」路线的代表——Wazo Platform。

三、核心架构

Wazo Platform 采用微服务架构,各组件以 systemd 服务独立运行,通过 PostgreSQL 共享配置数据、通过 RabbitMQ(可选的事件总线)和内部 HTTP 调用协同。

3.1 整体拓扑

[ Web 浏览器 / wazo-cli / 第三方应用 ]
            │ HTTPS :443 (Nginx 反代)
            ▼
        ┌───────────┐
        │  Nginx     │  ← 统一反向代理,内部服务默认也经由 Nginx 访问
        └─────┬─────┘
              │
      ┌───────┼─────────────────────────────────┐
      ▼       ▼                 ▼                ▼
┌────────┐┌──────────┐  ┌───────────────┐  ┌──────────────┐
│wazo-   ││wazo-auth │  │wazo-confd     │  │wazo-calld    │
│plagind ││ :9497    │  │ :9486         │  │ :9504        │
└────────┘└────┬─────┘  └──────┬────────┘  └──────┬───────┘
               │               │                   │
        ┌──────┴───────┐       │            ┌──────┴──────┐
        ▼              ▼       ▼            ▼             ▼
   ┌─────────┐  ┌────────────┐  ┌───────────┐  ┌─────────┐
   │Postgres │  │wazo-websocketd││wazo-amid  │  │wazo-    │
   │ :5432   │  │ :9502      │  │ :9491     │  │provd    │
   └─────────┘  └──────┬─────┘  └─────┬─────┘  └────┬────┘
                       │              │              │
                       ▼              ▼              ▼
                ┌──────────────────────────────────────┐
                │        Asterisk 22.11.0              │
                │        (PJSIP / dialplan / RTP)      │
                └──────────────────────────────────────┘
                                    │
                                    ▼
                              [话机 / SIP 中继 / PSTN]

3.2 关键组件职责速查

服务默认端口职责
wazo-confd9486配置管理核心——用户、分机、组、入/出中继、IVR、队列、语音信箱的 CRUD REST API
wazo-auth9497认证与鉴权——用户认证、token 生成、ACL 策略、OAuth2 对接
wazo-calld9504呼叫控制——转接、代答、保持、录音、DBDND、Park 等实时通话操作
wazo-amid9491AMI 桥接——把 Asterisk 管理器接口事件翻译成 REST/HTTP 事件供上层消费
wazo-websocketd9502实时事件推送——通过 WebSocket 把 PBX 实时状态(来电振铃、通话中、挂机等)推送到 Web 客户端
wazo-plugind9503插件管理——安装、卸载、升级社区插件(话机 Provision 插件、应用集成插件等)
wazo-provd8667话机自动配置——给 Yealink/Snom/Aastra 等品牌 IP 话机下载配置文件和固件
wazo-agid9494Agent 网关——客服坐席(Queue Agent)状态管理与事件桥接
wazo-confgend—配置生成器——根据 confd 数据生成 Asterisk 的 pjsip.conf、extensions.conf 等,不是独立端口服务
xivo-dao—数据访问层——Python 库,PostgreSQL 连接池,被多数服务依赖
wazo-service—运维 CLI——wazo-service status / restart / stop 查看和管理所有 Wazo 服务

3.3 技术栈全景

  • 语言:Python 3.11(绝大多数后端服务)+ Go(部分工具)+ JavaScript/TypeScript(Wazo Web Desktop 前端)
  • 语音引擎:Asterisk 22.11.0(SIP 协议栈 PJSIP,媒体传输 RTP)
  • 后端框架:Flask + Connexion(REST API 自动从 OpenAPI YAML 生成)
  • 数据库:PostgreSQL(配置数据、用户、通话记录 CDR)
  • 反向代理:Nginx(生产环境统一 HTTPS 入口,路径反代到各服务)
  • 部署形态:官方推荐 Ansible Playbook(Debian 12 Bookworm),组件级 Docker 镜像存在但无一体化官方 Compose
  • 系统托管:所有服务通过 systemd 管理

四、功能特性

4.1 核心 UC 功能矩阵

功能域子功能API / CLI 入口
终端通信SIP trunk(多运营商中继)、注册/认证、NAT 穿透、编解码协商confd /trunks、/pjsip
分机体系用户(User)、物理分机(Line)、逻辑分机(Extension)三者分离绑定,支持多设备绑定同一用户confd /users、/lines、/extensions
呼叫路由入呼规则(Incall,按时段/来向/规则匹配)、出呼规则(Outcall,出中继组/前缀剥离)、直拨 DIDconfd /incalls、/outcalls
IVR(自动语音应答)多菜单层级、按键导航、TTS、录音播报、子菜单跳转、超时回退confd /ivr、Asterisk dialplan
呼叫队列Skills-based 技能队列、轮询/最少空闲/随机策略、ACD 统计、排队提示音、Agent 状态(Ready/Busy/DND)confd /queues、calld /agents、agid
语音信箱留言、Email 通知、MP3/WAV 录音、远程访问、密码保护confd /voicemails、Asterisk VoiceMail 应用
呼叫录音手动录音(*3 启动)、自动录音(按队列/中继/用户策略)、CDR 关联、WAV 格式calld 录音 API、Asterisk Monitor
会议多房间同时进行、管理员密码/用户密码、PIN 保护、录制confd /meetings、Asterisk MeetMe/BConfBridge
即时消息基于 XMPP(ejabberd 集成)、一对一、群聊、在线状态、历史记录wazo-calld 事件 + XMPP 路由
实时事件WebSocket 推送——来电振铃、通话中、挂机、坐席状态变更、录音完成websocketd /ws、amid AMI 事件
Webhook把 PBX 事件推送到第三方 HTTP endpoint,自定义事件过滤器webhookd 服务
话机配置自动下载 SIP 账号配置、固件升级、自定义模板(Yealink/Snom/Aastra 等)provd、plugind 的 provd 插件
通话记录(CDR)PostgreSQL 存储、REST API 查询、时长/来向/去向/录音频/cdr endpoint
多租户企业隔离上下文(Tenant),每个租户独立内部 context、独立用户命名空间confd /tenants

4.2 API 可编程性亮点

Wazo 的一个独特优势是几乎所有功能都可通过 REST API 编程:

  • CRUD 一致性:创建一个用户 = POST /users,关联分机 = POST /users/{uuid}/lines/{uuid},不需要手工改 Asterisk 配置文件
  • 配置即时生效:修改通过 wazo-confgend 生成新的 Asterisk 配置并自动触发 dialplan reload / pjsip reload,不需手动重启 Asterisk
  • 事件驱动集成:wazo-websocketd 和 wazo-amid 可以把 PBX 事件(来电振铃、接通、挂机、录音完成)实时推送到自建应用
  • WebSocket 认证回调:支持第三方 Web 应用实现"点击拨出"(Click-to-Dial)

4.3 社区与生态

五、快速开始(最小可用示例)

⚠️ 以下步骤说明"Wazo 能做什么",具体安装流程参见 《Debian 12 安装 Wazo Platform 指南》。本节以说明性命令为主,不执行实测。

Wazo 的最小可用链路是:创建 API 用户 → 获取 token → 通过 confd REST API 创建用户+分机 → 话机注册 SIP → 拨打电话。

第一步:创建 REST API 用户(通过 Wazo Web Wizard 或 confd API)

# 方式一:安装向导中直接创建
# 编辑 inventories/uc-engine 文件:
cat <<'EOF' >> inventories/uc-engine
[uc_engine:vars]
engine_api_configure_wizard = true
engine_api_root_password = q1w2e3r4
api_client_name = rest-api-user
api_client_password = q1w2e3r4
EOF

第二步:获取认证 token

# 本地用 wazo-auth-cli
wazo-auth-cli token create --auth-user rest-api-user --auth-password q1w2e3r4

# 或远程用 curl(把 wazo.example.com 换成你的 Wazo 地址)
curl -k -X POST \
  -u rest-api-user:q1w2e3r4 \
  -H 'Content-Type: application/json' \
  -d '{"expiration": 3600}' \
  https://wazo.example.com/api/auth/0.1/token

# 响应(节选):
# {"data": {"expires_at": "2026-10-28T02:45:00+08:00", "token": "eyJhbGciOi...xxxxx"}}

第三步:通过 confd 创建一个 SIP 用户

export TOKEN="上一步返回的 token 值"
curl -k -X POST \
  -H "X-Auth-Token: ${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "firstname": "张三",
    "lastname": "技术部",
    "username": "zhangsan",
    "password": "q1w2e3r4"
  }' \
  https://wazo.example.com/api/confd/1.1/users

# 响应返回 user uuid,后续给用户绑定 SIP line 和 extension

六、适用场景与限制

6.1 典型适用场景

场景为什么选 Wazo参考规模
中小企业全功能 PBX一套部署搞定 SIP、中继、IVR、队列、语音信箱、会议、录音,REST API 方便 CRM 集成20–500 分机
客服中心(ACD)Skills-based 技能队列 + Agent 状态管理 + Call Center 统计;REST API 可把队列状态推送到大屏10–200 Agent
开发 / 集成团队的 UC 中间件REST API 驱动 + WebSocket 事件推送,开发"点击拨出""CRM 来电弹屏""智能路由"等应用最方便2–50 分机,侧重集成
开源私有化语音通信与 3CX / Cisco UCM 等商业方案相对,完全自托管、无厂商锁定、可二次开发任意规模

6.2 使用限制与已知坑

  • 官方仅支持 Debian 12 Bookworm:其他发行版(Ubuntu/CentOS/RHEL)没有官方安装路径,自行移植风险高
  • 资源门槛:Asterisk + PostgreSQL + 多个 Python 微服务,测试最小 2GB 内存,生产 4GB+
  • 无一体化 Docker Compose:社区有组件镜像但无官方生产 Compose 栈,自己拼装需要理解各服务依赖
  • SIP NAT:企业内网部署对接公网 SIP 中继时,需要正确配置 externaddr、localnet、nat 等 PJSIP 参数
  • Asterisk 模块自动管理:Wazo 自动生成 modules.conf,手工编辑会被覆盖,启用新模块需要通过 wazo-confgend 配置
  • Wazo Web Desktop 闭源:前端界面(Wazo Web & Desktop)是商业产品的免费版本,核心后端服务开源;纯开源栈可以不用 Web UI 完全靠 API

七、同类选型对比

7.1 主要竞品对比表(2026-10-27 查询)

维度Wazo Platform 26.10FreePBX 16Issabel 53CX v22FusionPBX 5
底层引擎Asterisk 22Asterisk 20Asterisk 16自研(Windows)FreeSWITCH
后端架构微服务 REST API单体 PHP Web单体 Web单体 C++单体 PHP/FreeSWITCH
核心配置方式REST API(wazo-confd)Web 界面 + 数据库Web 界面Web 界面 + 商业授权Web 界面
可编程性⭐⭐⭐⭐⭐ 全功能微服务 REST + WebSocket⭐⭐ 有限 API⭐⭐ 有限 API⭐⭐⭐ API 较全但商业限制⭐⭐⭐ API 较好
安装复杂度中等(Ansible)简单(ISO)简单(ISO)简单(安装器)中等(源码/仓库)
官方支持 OSDebian 12Sangoma 定制 CentOS / Ubuntu自研 ISOWindows 为主,Linux 有限Debian / Ubuntu
资源占用中(Python 微服务较多)低低中低
SIP 中继生态标准 SIPSangoma SIPstationIssabelNet3CX SIP Trunks标准 SIP
IVR 可视化编辑插件/API⭐⭐⭐⭐⭐ 成熟⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Queue ACD 特性⭐⭐⭐⭐ Skills-based⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
插件/市场中等(plugind 管理)大(FreePBX Modules)中中中
开源协议GPL 3.0GPLGPL商业(免费版限 10 分机)MPL
社区活跃度中(Discourse 论坛稳定维护)高中商业驱动中
GitHub 组织规模约 20+ 仓库Sangoma 官方仓库Issabel Foundationn/aFusionPBX

选型建议——

  • 要图形化 IVR 设计器 / 不想碰命令行:选 FreePBX 或 Issabel
  • 要 REST API + WebSocket 驱动的可编程 UC 中间件、要跟 CRM / 自研应用深度集成:选 Wazo
  • 预算充足、需要商业 SLA、Windows 环境:选 3CX
  • 倾向 FreeSWITCH 生态:选 FusionPBX

7.2 Wazo 独特优势总结

  1. 微服务架构天然适合可编程:wazo-confd 不是 Asterisk 配置的 Web 壳——它是一个完整的配置数据库 API,配置数据通过 confgend 转换成 Asterisk 配置文件。这意味着你可以构建"CRM 来电弹屏自动创建临时 IVR""排队 30 秒未接通自动切到外部坐席""AI 语音助手拦截骚扰电话"这类 Wazo 之外的应用
  2. wazo-auth + ACL 权限模型:每个 REST API 调用必须 token 认证 + ACL 白名单。可以创建"只能读 queue 状态"的 token 给大屏应用,创建"只能修改自己的 voicemail"的 token 给自助门户
  3. WebSocket 实时事件:wazo-websocketd 提供 Wazo 独有的实时事件推送——来电振铃、坐席 Ready/Busy、录音完成、IVR 按键事件。这是构建桌面通知、手机 App、运维大屏的基础
  4. Python 栈 = 好维护:绝大多数服务是 Python Flask + Connexion,懂 Python 的团队可以轻松二次开发;而 FreePBX 是 PHP + 大量 amportal shell 脚本,可维护性相对弱

7.3 Wazo 劣势总结

  1. 学习曲线陡:wazo-confd 的 REST API 有 50+ 资源端点(users、lines、extensions、trunks、pjsip、incalls、outcalls、queues、groups、voicemails、meetings、agents、funckeys、contact_directories...),要搞懂三者绑定关系(User ↔ Line ↔ Extension)需要时间
  2. 官方仅 Debian 12:Ubuntu 22.04 无法用官方 Ansible 直接部署,需自行移植
  3. 容器化不完整:没有官方一体化 Docker Compose,测试需要跑完整 Ansible Playbook
  4. SIP NAT 排障复杂:企业内网部署时,PJSIP 的 NAT 参数(externaddr、localnet、endpoint 级 nat 策略)配置错误会表现为"能振铃但听不到声音""单向音频"等经典 SIP NAT 症状

八、参考链接

链接说明
https://wazo-platform.org/uc-doc/Wazo Platform 官方文档站(含安装、管理、API 所有章节)
https://wazo-platform.org/blog/release-review-2610/Wazo Platform 26.10 Release Notes
https://github.com/wazo-platform/Wazo GitHub 组织(wazo-confd、wazo-auth、wazo-calld 等子仓库)
https://wazo-platform.org/documentationWazo 官方 OpenAPI 控制台(Swagger UI,可填 IP 后直接调用你的 Wazo)
https://wazo-platform.discourse.group/Wazo Platform 官方论坛(问题排查首选)
https://plugins.wazo.community/Wazo Community Plugins 插件仓库
https://wiki.asterisk.org/wiki/Asterisk 官方 wiki(PJSIP、dialplan、AMI 等底层细节)
https://hub.docker.com/u/wazoplatformDocker Hub wazoplatform 账号(wazo-auth、wazo-plugind 等组件镜像)