呼叫中心语音平台 Zabbix 监控指标全解析:从 PRI/SS7 网关到 FreeSWITCH 与 CTI
·
一、平台架构与监控思路
在讨论具体指标之前,先把整条语音链路拆清楚,监控才能做到“分层覆盖、逐段定位”。典型架构如下:
flowchart LR
A[运营商 PSTN] -->|PRI / SS7 中继| B[语音网关]
B -->|SIP 中继| C[FreeSWITCH 软交换]
C -->|ESL / SIP| D[自研 Java CTI 服务]
C -->|SIP 注册| E[LinPhone 分机]
D -->|HTTP / WebSocket| F[坐席工作台]
G[Zabbix Server] -.SNMP/Agent/脚本.-> B
G -.SNMP/Agent.-> C
G -.JMX/Agent.-> D
G -.ICMP/端口探测.-> E
监控的核心思路是:网关看中继与信令,软交换看并发与媒体质量,CTI 看服务与业务指标,分机看注册与可达性。下面按这四层分别展开。
二、语音网关(PRI / SS7)监控指标
语音网关负责把运营商的 PRI(ISDN 30B+D)或 7 号信令(SS7/ISUP)转换为 SIP,是整条链路的入口,一旦异常会直接导致外线全断。建议通过 SNMP 采集,重点关注以下几类。
2.1 中继与信令状态
| 指标 | 说明 | 告警建议 |
|---|---|---|
| E1/T1 物理链路状态 | 每一条 E1 的 LOS、AIS、RAI、LFA 告警位 | 任一告警立即触发 |
| PRI D 通道状态 | D 通道是否处于 MULTIPLE_FRAME_ESTABLISHED | 非正常状态立即告警 |
| SS7 信令链路状态 | MTP2/MTP3 链路是否 In Service | 链路 down 立即告警 |
| SS7 信令点可达性 | 到对端 STP/SP 的路由是否可用 | 不可达立即告警 |
| 中继组(Trunk Group)状态 | 中继组是否处于服务状态 | Out of Service 告警 |
2.2 中继占用与话务量
- 中继电路占用数 / 占用率:当前 B 通道使用数量与总通道数之比,是判断扩容和拥塞的核心指标。
- 并发呼叫数:网关侧实时并发,与 FreeSWITCH 侧并发做交叉比对。
- 呼叫尝试次数(CAPS):每秒呼叫尝试数,用于容量评估。
- 呼叫建立成功率(ASR):成功接通数 / 呼叫尝试数。
- 应答率 / 接通率:被叫应答比例,可反映运营商侧问题。
- 平均通话时长(ACD):辅助判断异常短话务或骚扰呼叫。
2.3 信令异常与失败原因
- 呼叫失败次数与失败原因分布:按 Q.931 / ISUP 释放原因码(Cause Code)分类统计,如 16 正常释放、17 用户忙、34 无可用电路、102 定时器超时等。
- 无可用电路(Cause 34)次数:直接反映中继不足。
- 信令链路误码率 / 滑码:E1 的 CRC 错误、帧失步次数,反映线路质量。
- D 通道信令重传次数:异常升高说明链路质量差。
- SS7 链路负荷:MSU 每秒处理量,接近上限需扩容。
2.4 网关设备自身健康度
- CPU 使用率、内存使用率、温度
- 电源与风扇状态
- 设备运行时长(Uptime)与重启次数
- 网口流量、丢包率、错包率
- NTP 同步状态(时间偏差会影响话单与日志关联)
三、FreeSWITCH 软交换监控指标
FreeSWITCH 是话务核心,建议通过 mod_snmp、ESL 脚本采集 或 Zabbix Agent 自定义脚本(执行 fs_cli -x "show status" 等命令)获取指标。
3.1 系统与进程状态
- FreeSWITCH 进程存活:进程是否存在、是否可响应 ESL。
- Uptime:进程运行时长,异常重启需告警。
- CPU / 内存占用:重点关注媒体处理线程的 CPU。
- 会话数(Sessions):当前会话总数、峰值会话数。
- 会话容量使用率:当前会话 / 最大会话(max-sessions)。
- 每秒呼叫数(CPS):当前 CPS 与配置上限对比。
3.2 SIP 注册与网关状态
- SIP 注册用户数:当前成功注册的分机数量,与预期分机总数比对。
- 注册失败次数:认证失败、超时等。
- Sofia Profile 状态:各 SIP Profile 是否处于 RUNNING。
- Gateway 状态:到语音网关的 SIP Trunk 是否 REGED / NOREG,是否处于 UP。
- Gateway 呼叫失败计数:单个网关的失败次数。
3.3 呼叫质量与媒体指标
- ASR / ACD / 呼叫成功率:与网关侧交叉验证。
- MOS 评分:通过 RTP 统计估算的语音质量。
- RTP 丢包率、抖动(Jitter)、时延:媒体质量的核心三要素。
- RTP 收发包数:判断单向通话(只收不发或只发不收)。
- 编码协商失败次数:G.711/G.729/Opus 协商异常。
- DTMF 检测异常:影响 IVR 按键。
3.4 模块与资源
- 模块加载状态:关键模块(mod_sofia、mod_rtp、mod_dptools 等)是否加载。
- 数据库连接状态:mod_odbc / 核心 DB 连接是否正常。
- 日志错误数:ERROR / CRIT 级别日志条数。
- 录音磁盘空间:录音目录剩余空间与写入速率。
- CDR 写入状态:话单是否正常落库。
四、自研 Java CTI 服务监控指标
CTI 服务是业务与话务的桥梁,建议通过 JMX(Zabbix Java Gateway) 采集 JVM 指标,通过 HTTP 健康检查接口 采集业务指标。
4.1 JVM 与运行时
- 堆内存使用率:Eden、Old Gen 使用量与 GC 后回收情况。
- GC 次数与耗时:Full GC 频率与停顿时间。
- 线程数:活跃线程数、死锁检测。
- 类加载数量:异常增长可能提示类泄漏。
- CPU 使用率:进程级与系统级。
4.2 服务可用性与接口
- 服务存活(Health Check):HTTP 探活接口返回状态。
- ESL 连接状态:与 FreeSWITCH 的 ESL 长连接是否正常,重连次数。
- 接口响应时间(P95/P99):签入、外呼、挂断等关键接口耗时。
- 接口错误率:HTTP 5xx / 业务异常比例。
- 线程池队列长度与拒绝次数:判断是否过载。
4.3 业务指标
- 在线坐席数 / 签入坐席数:与预期排班比对。
- 坐席状态分布:空闲、通话中、示忙、小休等。
- 排队呼叫数 / 最长等待时长:直接影响客户体验。
- 外呼任务执行进度与失败率:预测外呼场景重点。
- 话单生成数量与延迟:与 FreeSWITCH CDR 数量比对,防止丢单。
- 事件推送延迟:CTI 到工作台的 WebSocket 推送时延。
五、LinPhone 分机监控指标
LinPhone 作为开源软电话,注册在 FreeSWITCH 上,监控重点在于“是否在线、是否可用”。
- 注册状态:分机是否成功注册,注册过期时间。
- 注册 IP 与端口:异常 IP 变化需关注。
- 分机可达性:通过 SIP OPTIONS 探测(FreeSWITCH 的
sofia_contact或sip_ping)。 - 分机在线率:在线分机数 / 配置分机总数。
- 注册失败次数:密码错误、网络不通等。
- 终端网络质量:分机所在网段的丢包与时延(可通过 ICMP 探测)。
提示:LinePhone 本身通常不提供 SNMP,建议以 FreeSWITCH 侧的注册表(
show registrations)作为数据源,由 Zabbix 脚本采集,比逐台探测更可靠。
六、Zabbix 落地建议
6.1 采集方式选型
| 对象 | 推荐采集方式 | 关键模板/脚本 |
|---|---|---|
| 语音网关 | SNMP v2c/v3 | 厂商 MIB + 自定义 OID 映射 |
| FreeSWITCH | Zabbix Agent + UserParameter 脚本 | fs_cli 命令解析、mod_snmp |
| Java CTI | Zabbix Java Gateway(JMX)+ HTTP Agent | JVM 模板 + 自定义业务探针 |
| LinePhone 分机 | FreeSWITCH 注册表脚本采集 | show registrations 解析 |
6.2 告警分级建议
- 灾难级(P1):E1 链路中断、SS7 链路 down、FreeSWITCH 进程退出、CTI 服务不可用、中继占用率 100%。
- 严重级(P2):中继占用率 > 85%、ASR 骤降、注册分机数骤减、Full GC 频繁。
- 警告级(P3):CPU/内存偏高、RTP 丢包率上升、排队时长增加、磁盘空间不足。
6.3 关联分析思路
单点指标容易误报,建议做链路关联:
- 网关中继占用高 + FreeSWITCH 并发高 → 真实话务高峰,考虑扩容。
- 网关 ASR 低 + FreeSWITCH 呼叫失败多 → 排查运营商侧或信令配置。
- FreeSWITCH RTP 丢包 + 分机网络丢包 → 定位为网络问题而非软交换问题。
- CTI 话单数 < FreeSWITCH CDR 数 → 检查 ESL 事件丢失或 CTI 处理阻塞。
七、总结
呼叫中心语音平台的监控应遵循“分层采集、交叉验证、分级告警”的原则:网关层盯住中继与信令,FreeSWITCH 层盯住并发与媒体质量,CTI 层盯住 JVM 与业务指标,分机层盯住注册与可达性。Zabbix 通过 SNMP、Agent 脚本、JMX 和 HTTP 探针的组合,可以完整覆盖这条链路,再配合关联分析,就能在故障发生时快速定位到具体环节。
更多推荐

所有评论(0)