健康检查与校验

1. 中继健康检查

SBC Dashboard 展示所有中继的实时健康状态。

1.1 状态定义

状态说明
UPOPTIONS 探测正常
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 / info
  • category: trunk / route / codec / acl
  • message: 问题描述
  • 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-RPCPOST /api/sbc/jsonrpc/config更新 JSON-RPC 配置

重新加载不影响已有通话。