语音信箱(Voicemail Pro)
Voicemail Pro 为每个分机提供独立信箱:问候语、本地/对象存储留言、MWI 通知与邮件投递。启用后每个分机自动获得信箱,无需逐个配置。适用于非工作时段留言、夜间模式队列,或作为 ACD 溢出链的兜底目标。
1. 启用
[proxy]
addons = ["voicemail"]
数据库要求:自动创建 voicemail_box 和 voicemail_message 表。支持 SQLite / MySQL / PostgreSQL。
2. 邮箱管理
2.1 创建邮箱
控制台 → Voicemail → 新建邮箱:
| 字段 | 说明 | 示例 |
|---|---|---|
| 分机 | 关联的分机号 | 1001 |
| PIN | 访问密码(4-8 位) | 1234 |
| 邮箱 | 通知邮箱 | user@example.com |
| 问候语 | 自定义问候语 | 上传 WAV |
2.2 PIN 策略
- 4-8 位数字
- 不允许全相同(如 1111)
- 不允许连续(如 1234)
- 使用 Argon2id 哈希存储
2.3 自定义问候语
邮箱 → 问候语 → 上传:支持 WAV 格式。
3. 留言流程
来电 → 无人接听/忙碌
│
▼
Voicemail App
├── 播放问候语(自定义或默认)
├── 播放提示音
├── 录音(最大时长、静默超时)
├── 保存留言
│ ├── 上传到存储后端
│ ├── 写入数据库
│ └── 发送通知
└── 播放确认音 → 挂断
3.1 录音参数
config/voicemail.toml:
spool_dir = "voicemail_spool"
max_duration = 120 # 最大录音 120 秒
silence_timeout = 5 # 静默 5 秒自动结束
language = "zh"
sounds_dir = "config/sounds/voicemail"
4. 通知链
留言保存后,系统按序执行通知:
| 通知方式 | 说明 | 配置 |
|---|---|---|
| SMTP 发送通知邮件 | SMTP 服务器配置 | |
| Webhook | HTTP POST 到指定 URL | URL、Headers |
| SIP MWI | RFC 3842 消息等待指示 | 自动(SIP NOTIFY) |
4.1 Email 配置
[voicemail.smtp]
host = "smtp.example.com"
port = 587
username = "noreply@example.com"
password = "smtp-password"
from = "noreply@example.com"
use_tls = true
4.2 Webhook 配置
[voicemail.webhook]
url = "https://api.example.com/voicemail/notify"
headers = { "Authorization" = "Bearer token" }
5. 收听留言
5.1 自助查询
拨打 *97 → PIN 验证 → IVR 菜单:
- 播放新留言
- 播放已保存留言
- 删除留言
- 修改 PIN
5.2 Web 界面
控制台 → Voicemail → 邮箱详情:
- 留言列表(时间、来电、时长)
- 在线播放
- 下载音频
- 标记已读/删除
6. 存储后端
支持多种存储:
| 后端 | 配置 |
|---|---|
| 本地文件系统 | storage_type = "local" |
| AWS S3 | storage_type = "s3" |
| 阿里云 OSS | storage_type = "s3" (S3 兼容) |
| 腾讯 COS | storage_type = "s3" (S3 兼容) |
| MinIO | storage_type = "s3" (S3 兼容) |
| Azure Blob | storage_type = "azure" |
| GCP Storage | storage_type = "gcp" |
[voicemail.storage]
type = "s3"
bucket = "voicemail-recordings"
region = "us-east-1"
endpoint = "https://s3.amazonaws.com"
access_key = "AKIA..."
secret_key = "secret..."
7. 多语言提示音
内置提示音支持 5 种语言:en、zh、ja、es、fr
提示音文件位于 addon 的 sounds/ 目录,可在控制台上传自定义提示音。
8. API
| 操作 | 端点 |
|---|---|
| 邮箱列表 | GET /console/voicemail |
| 邮箱详情 | GET /console/voicemail/{ext} |
| 创建邮箱 | POST /console/voicemail/mailboxes |
| 删除邮箱 | POST /console/voicemail/mailboxes/{ext}/delete |
| 重置 PIN | POST /console/voicemail/mailboxes/{ext}/reset-pin |
| 上传问候语 | POST /console/voicemail/mailboxes/{ext}/greeting |
| 留言列表 | GET /api/voicemail/{ext}/messages |
| 流式播放 | GET /api/voicemail/messages/{id}/audio |
| 标记已读 | POST /api/voicemail/messages/{id}/read |
| 删除留言 | POST /api/voicemail/messages/{id}/delete |
| 设置页面 | GET /console/voicemail/settings |