健康检查与校验
1. 中继健康检查
SBC Dashboard 展示所有中继的实时健康状态。
1.1 状态定义
| 状态 | 说明 |
|---|---|
| UP | OPTIONS 探测正常 |
| DOWN | 连续失败超过阈值 |
| UNKNOWN | 未配置健康检查 |
1.2 配置
在中继的 SBC 元数据中配置:
{
"sbc": {
"health_check": {
"enabled": true,
"interval_secs": 30,
"timeout_secs": 5,
"max_failures": 3
}
}
}
1.3 Dashboard
SBC → Dashboard 显示:
- 中继总数、活跃中继数
- 当前活跃通话数
- 系统运行时间
- 各中继健康状态一览
2. 配置校验
SBC → 校验:运行配置一致性检查,检测:
| 检查项 | 说明 |
|---|---|
| 中继可达性 | dest 地址是否有效 |
| 路由完整性 | 路由是否引用了已存在的中继 |
| 编解码交集 | 中继 codec 与全局 codec 是否有交集 |
| ACL 冲突 | IP 黑白名单是否有重叠 |
| JSON-RPC 规则 | 模板语法、上游 URL 可达性 |
2.1 API
GET /api/sbc/validation/run
返回校验结果列表,每条包含:
level: error / warning / infocategory: trunk / route / codec / aclmessage: 问题描述suggestion: 修复建议
3. 路由模拟
3.1 静态路由模拟
SBC → 路由 → 路由模拟:
输入:
- 主叫号码
- 被叫号码
- 来源 IP
输出:
- 匹配的路由规则
- 选中的中继
- 号码改写结果
3.2 JSON-RPC 模拟
SBC → 路由 → JSON-RPC 模拟:
输入匹配条件,模拟 JSON-RPC 规则匹配和上游 API 调用(可设为 dry-run 不实际发送请求)。
4. 重新加载
SBC 提供独立的重新加载操作:
| 操作 | 端点 | 说明 |
|---|---|---|
| 重新加载中继 | POST /api/sbc/trunks/reload | 从配置文件重新读取中继 |
| 重新加载路由 | POST /api/sbc/routes/reload | 从配置文件重新读取路由 |
| 重新加载 JSON-RPC | POST /api/sbc/jsonrpc/config | 更新 JSON-RPC 配置 |
重新加载不影响已有通话。