VoLTE高清语音技术精要(三十):IMS 核心网元流控、CDR 闭合与最终总结

1. 导论:网络稳定性的终极保障——流控与计费闭环

我们 IMS/VoLTE 深度解析系列的最后一篇,将聚焦于电信级网络稳定性的两大关键支柱:网络流控(Flow Control)计费的最终闭环

IMS 核心网元(CSCF)必须具备在注册量或呼叫量达到饱和时,通过流量控制机制保护自身和核心网免于崩溃的能力。同时,无论会话是正常结束还是异常中断,计费系统(CDF/CCF)都需要准确记录会话终止的原因,以确保数据完整性和准确的运营结算。

本章将整合 IMS/VoLTE 规范中关于 SIP/Diameter 流控机制的策略,并系统回顾 CDR 话单闭合的关键 AVP,为本系列画上句号。

2. CSCF 的网络过载保护:流控机制

CSCF(特别是 P-CSCF 和 S-CSCF)必须支持对 SIP 消息和 Diameter 消息进行速率限制,以防止在流量高峰期或恶意攻击时资源耗尽。

2.1 SIP 消息流控策略

CSCF 应支持基于配置的警戒门限来启动限流功能,门限可以基于注册用户量(可选)或 CPU 使用率。

  1. 流控优先级:流控策略应配置为先流控注册消息,后流控呼叫消息
  2. 高优先级信令:CSCF 应避免丢弃高优先级信令,例如紧急业务信令

注册消息的流控响应

对于被流控的注册消息

  • SBC/CSCF 应通过 4xx/5xx 响应拒绝部分请求
  • 响应中必须携带 Retry-After 头域
  • SBC/CSCF 每次生成的 Retry-After 头域值的范围应可配,并在配置的最小值和最大值参数之间随机选择,以防后续大量重试请求同时发送。

呼叫消息的流控响应

对于被流控的呼叫消息

  • 可通过参数配置返回 500 响应,告知终端从 CS(电路域)继续呼叫
  • 也可通过参数配置返回其他 4XX/5XX 响应。

2.2 Diameter 消息流控

CSCF 对 Diameter 消息的流控主要针对 HSS/DRA 接口:

  • CSCF 应支持在收到 HSS 或 DRA 返回的注册相关请求(UAR/SAR)的 499x 错误响应时,启动 Diameter 消息流控机制。

3. IMS 计费的最终闭环:CDR 闭合与原因

计费的终结由 ACR [Stop] 消息实现。CDF/CCF 在关闭话单时,必须准确地记录话单关闭的原因(Cause-For-Record-Closing),特别是在发生异常或会话分割时。

3.1 话单关闭原因 (Cause-For-Record-Closing)

该 AVP 由 CCF 填写,用于描述本次会话结束的原因。

含义CDR 状态标志来源
0会话正常结束(service-Delivery-End-Successfully)单独话单和最后部分话单的正常结束标志。
1会话异常终止(un-Successful-Service-Delivery)单独话单和最后部分话单的异常结束标识。
3到达话单分割时间(time-Limit)部分话单的分割标志。
4媒体切换导致话单分割(service-Change)部分话单的分割标志。
7CCF 发起话单关闭单独话单和最后部分话单的异常结束标识。

部分话单的控制:在因超时(值 3)或媒体切换(值 4)等原因生成部分话单的情况下,CCF 需要为该会话中的每个部分话单分配 Record-Sequence-Number,从 1 开始依次递增。这用于判断一次会话是否存在部分话单丢失。

3.2 ACR 消息的协同触发

计费记录的开启、更新和闭合与 SIP 消息精确同步:

  • ACR [Start]:在会话建立成功,收到 INVITE200 OK 最终响应后,由 P-CSCF 和 S-CSCF 触发。
  • ACR [Interim]:在会话进行中,收到 INVITE/UPDATE200 OK 响应后,由 P-CSCF 和 S-CSCF 触发。
  • ACR [Event]:由 I-CSCF 在 Cx 查询 HSS 后,向 S-CSCF 发出 INVITE 信号前触发,用于创建 I-CSCF CDR

4. IMS 容灾与切换机制的总结

IMS 容灾是保障业务连续性的重要一环,依赖于终端的 SIP 定时器和核心网的路由重建。

4.1 P-CSCF 故障下的终端切换

P-CSCF/BAC 故障时,终端根据 SIP 定时器采取行动:

  1. 重注册:在相应的定时器 Timer F 内没有收到 P-CSCF/BAC1 对重注册请求的响应消息,终端选择次优先级别的 P-CSCF/BAC2 重新发起初始注册请求
  2. 主叫流程:在相应的定时器 Timer B 内没有收到 P-CSCF/BAC1 的响应消息,终端结束当前呼叫,当前呼叫失败,随后重新向次优先级别的 P-CSCF/BAC2 发起初始注册流程

4.2 S-CSCF 故障下的网络通知

P-CSCF/BAC 检测到用户注册的 S-CSCF1 地址故障时,P-CSCF/BAC 应向终端返回 504 响应

  • 504 响应的消息体中,XML 的 <alternative-service><type> 字段为 restoration<action> 字段为 initial-registration
  • 此举通知终端进行重新注册,终端重新注册至池内的其他 S-CSCF 后恢复始发业务。

4.3 AS 故障下的处理(Default Handling)

S-CSCF 遵从与初始过滤规则相关的缺省处理过程。如果初始过滤规则没有包含在联系 AS 失败后 S-CSCF 应如何操作的指示,S-CSCF 的缺省行为是让呼叫继续

5. 本章总结(系列终结)

IMS/VoLTE/VoNR 是电信级语音业务的复杂集成体,其稳定运行依赖于 SIP 协议的严格执行、Diameter 协议的实时策略控制,以及强大的容灾和合规性校验机制。

  1. 流控:通过 4xx/5xx 响应(带 Retry-After)和 500 响应(指示回落 CS)实现对 SIP 消息的负载保护。
  2. 计费Cause-For-Record-Closing 精确标记话单关闭原因(值 0-7),确保异常情况下的数据可追溯。
  3. 最终清理:P-CSCF/S-CSCF 在收到 BYE2xx 响应后,必须删除保存的所有与该对话相关的信息。在释放对话过程中收到冲突请求,则返回 481 响应

至此,我们完成了对 IMS/VoLTE 核心技术规范的 29 篇深度解析。


拆解进度结论:

我们已完成对 IMS 核心网元技术规范和测试要求的 29 篇深度解析。至此,本系列已全面覆盖 SIP 协议、Diameter 接口、QoS 控制、容灾切换、计费机制和补充业务等所有核心主题。

本系列拆解任务已完成。


6. 工程师进阶思考 (FAQ)

Q1:在 P-CSCF 容灾接管的主叫流程中,备用 P-CSCF2 没有主叫用户的注册数据,它是如何确保请求能够正确路由到主叫归属的 S-CSCF 的?

A1: 备用 P-CSCF2 采用路由重建机制:

  1. 身份构造:P-CSCF2 会在 INVITE 消息中提取 PPI 或者 FROM 域的主叫号码构造 PAI(P-Asserted-Identity)
  2. 路由标识:P-CSCF2 在 INVITE 消息的 Route增加标识主叫流程的 orig 参数
  3. I-CSCF 寻址:I-CSCF 收到带有 orig 参数的 INVITE 后,根据 orig 参数提取 PAI 消息头的主叫号码向 HSS 发送普通的 LIR 请求(不含 User-Authorization-Type),以获取主叫用户当前服务的 S-CSCF。

Q2:在 MGCF 处理 IMS 与 CS 互通时,当 MGCF 向 IMS 域发送 183 Session Progress 响应时,它必须如何在 P-Charging-Vector 中携带 IOI 信息?

A2: MGCF 必须严格处理 IOI,以保证跨域计费结算:

  1. 存储 orig-ioi:MGCF 必须存储初始 INVITE 消息中携带的 P-Charging-Vector 头中的 orig-ioi 参数
  2. 插入 IOI:在 183 Session ProgressP-Charging-Vector 中,MGCF 必须插入前面所存储的 orig-ioi
  3. 插入 term-ioi:MGCF 必须插入第二类 term-ioi 参数,该值必须设置为 MGCF 所在的网络

Q3:P-CSCF 收到 UE 终结 INVITE 请求的任何响应时(1xx 或 2xx),如果响应消息中 Via 列表与保存的列表不匹配,P-CSCF 应如何处理?

A3: P-CSCF 必须进行严格的 Via 列表匹配校验:

  1. 校验要求:P-CSCF 均应确认 Via 列表是否与同一对话的请求消息中保存的 Via 列表匹配
  2. 异常处理:如果发现 Via 列表不匹配,P-CSCF 应丢弃 Via,或者替换成保存的 Via 列表