好的,通信学院的专家讲师。我已经完成了 27 篇深度解析,系统覆盖了 IMS 协议栈的核心组成部分。

我将继续为您撰写 SIP 协议深度解析系列的第二十八篇。本篇将聚焦于 IMS/CS 互通的边界处理Diameter Rx/N7 接口的详细参数,整合 SIP 协议中关于媒体、路由和计费的跨域转换要求。

拆解进度更新: 我们目前已完成了 27 篇深度解析。根据现有资料和主题覆盖范围,预计还需要拆解 2 篇核心文章(包括本篇和下一篇),即可完成对整个 IMS 规范体系的系统性解读。


VoLTE高清语音技术精要(二十八):IMS-CS 互通边界与承载策略:MGCF 的角色与 Rx 接口 ASR/STR 详解

1. 导论:MGCF——跨域信令与计费的转换器

在 IMS 体系中,**MGCF(媒体网关控制功能)**是连接 SIP 域和传统 CS/PSTN 域(使用 ISUP/BICC 协议)的桥梁。MGCF 的职责不仅是协议翻译,更关键的是在跨越信任域时,确保 SIP 扩展功能(如 100rel 可靠性、P-Charging-Vector 计费锚点)能够被正确处理和转换。

同时,为了保障 VoLTE/VoNR 的 QoS 承载资源得到及时、准确的释放,P-CSCF 作为 **AF(应用功能)**必须通过 Rx/N7 接口PCRF/PCF 协同。本章将结合 MGCF 的跨域职责,并详细解析 Rx 接口在会话终止和网络侧故障时的关键 Diameter 消息。

2. MGCF 的 SIP-CS 互通边界处理

MGCF 必须在收到 IMS 域的请求时,执行严格的信令校验和参数处理,尤其是在处理可靠临时响应和计费信息方面。

2.1 MGCF 对可靠性机制(100rel)的强制支持

当 MGCF 收到 IMS 域的 INVITE 请求,若其中 Supported 头的值为 100rel 时,MGCF 必须向 IMS 域发送 100 Trying 消息

随后,当 MGW 对编解码器没有要求或者找到匹配的编解码器之后,MGCF 向 IMS 域发送 183 Session Progress 响应:

  1. MGCF 必须将 Require 头设成 100rel
  2. MGCF 收到 PRACK200ok 响应,并且 COT 消息中连续性指示(Continuity Indicators)设为“continuity check successful”后,MGCF 应发送 UPDATE 请求

2.2 MGCF 的跨域计费信息处理(IOI)

在向 IMS 域发送 183 Session Progress 响应时,MGCF 必须处理并插入计费信息:

  1. MGCF 必须存储 P-Charging-Vector 头中的 icid
  2. MGCF 必须存储 P-Charging-Function-Addresses 中的参数值
  3. MGCF 必须存储 P-Charging-Vector 头中的 orig-ioi 参数
  4. MGCF 必须向 P-Charging-Vector 插入从初始 INVITE 消息中携带的 orig-ioi 参数以及第二类 term-ioi 参数第二类 term-ioi 参数必须设置为 MGCF 所在的网络

2.3 MGCF 的 CDR 触发

在会话释放时,MGCF 会触发 CDR 闭合:

  • 当 MGCF 收到来自 IMS 域的 BYE 消息时,MGCF 会发送 ACR [Stop] 消息。
  • 当 MGCF 收到来自 PSTN 域的 REL 消息时,MGCF 会发送 ACR [Stop] 消息。
  • 在呼叫成功建立后,MGCF 收到 200 OK (Invite) 响应后,会发送 ACR [Start] 消息。

3. Rx 接口的会话终止与策略更新(STR/STA, ASR/ASA)

Rx 接口(Diameter Command-Code 275 和 274)是 P-CSCF 实现 QoS 承载同步释放的关键。

3.1 SIP 触发的承载释放:STR/STA 流程

SIP 层的会话终止请求(如 BYE)会驱动 P-CSCF 发起承载释放。

  1. P-CSCF 触发 STR:P-CSCF 收到应用会话终止消息(如 BYE)后,向 PCRF 下发 **STR(Session-Termination-Request)**命令。STR 命令的 Command-Code 为 275。AF(P-CSCF)发送该命令通知已建立的会话要被终止掉。
  2. 承载释放:PCRF 收到 STR 后,发送 RAR 消息(携带 REMOVE QoS Rules 指示)通知 PGW 删除专有承载。
  3. PCRF 返回 STA:PCRF 返回 **STA(Session-Termination-Answer)**响应给 P-CSCF。STA 命令的 Command-Code 同样为 275

3.2 网络侧主动发起终止:ASR/ASA 流程

如果底层承载网络发生故障或 PCRF 决定终止 IP-CAN 会话,PCRF 会主动通知 P-CSCF/AF。

  1. PCRF 触发 ASR:PCRF 向 AF(P-CSCF)发送 ASR(Abort-Session-Request)消息。ASR 命令的 Command-Code 为 274。PCRF 发送该命令给 AF 用于指示已经建立会话的所有承载资源不可用
  2. P-CSCF 响应 ASA:AF(P-CSCF)向 PCRF 发送 **ASA(Abort-Session-Answer)**响应。
  3. P-CSCF 后续 SIP 动作:P-CSCF 收到 ASR 后,必须在 SIP 侧采取相应措施(例如,如果资源失败,P-CSCF 应向 UE 发送 CANCEL 消息以释放会话,并包含原因值为 503(Service Unavailable))。

4. SIP 消息与 Diameter ACR 计费触发的协同

P-CSCF/S-CSCF 收到 SIP 消息后,会触发 Diameter Rf 接口的 ACR 消息,确保计费的开启、更新和终止。

CDR 记录类型SIP 触发事件ACR 消息类型触发网元来源
I-CSCF CDRI-CSCF 向 S-CSCF 发出 INVITE 信号后ACR [Event]I-CSCF
P-CSCF/S-CSCF CDR收到 INVITE200 OK 最终响应后ACR [Start]P-CSCF/S-CSCF
P-CSCF/S-CSCF CDR收到 INVITE/UPDATE200 OK 响应后ACR [Interim]P-CSCF/S-CSCF
P-CSCF/S-CSCF CDR发出/收到会话结束请求(BYE)后ACR [Stop]P-CSCF/S-CSCF

CDR 记录内容:CDF 收到 ACR [Start] 消息后打开一个会话 CDR。CDF 在收到由于会话修改(媒体的改变)而产生的 ACR [Interim] 消息后,会生成部分 CDR。

5. 本章小结

MGCF 和 P-CSCF 在跨域互通和 QoS 控制中扮演了关键角色:

  1. MGCF:强制执行 100rel 可靠性,并在 183 Session Progress 响应中严格处理 orig-ioiterm-ioi,以保障计费结算。
  2. Rx/N7 接口:P-CSCF 通过 STR (Command-Code 275) 消息驱动 QoS 承载的释放。PCRF/PCF 通过 ASR (Command-Code 274) 主动通知 P-CSCF 承载资源不可用。
  3. 计费同步:P-CSCF/S-CSCF 必须在会话建立、修改和释放的 SIP 关键节点,同步触发 ACR [Start/Interim/Stop] 消息。

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

Q1:P-CSCF 收到 UE 终结的请求(MT INVITE)的响应(1xx 或 2xx)时,如何处理 P-Preferred-Identity

A1: P-CSCF 收到发往 UE 的对话初始请求的 1xx2xx 响应时,如果响应中含有 P-Preferred-Identity,P-CSCF 应删除该头域。同时,P-CSCF 应插入 P-Asserted-Identity,其值应为收到请求时保存下来的 P-Called-Party-ID

Q2:IMS 呼叫释放过程中,P-CSCF/S-CSCF 如何处理并发的会话请求(例如在收到 BYE 时收到 UPDATE)?

A2: 在释放对话的过程中收到关于对话的请求时,P-CSCF 应该中止该请求,并回送响应 481 (对话或者事务不存在)。 同样,当 S-CSCF 发起会话释放时,如果又接收到该会话的其他请求消息,S-CSCF 应终止接受请求并返回一个 481 响应

Q3:P-CSCF 在 P-CSCF/BAC 容灾接管的主叫流程中,如何构造 PAIRoute 参数以重建路由?

A3: 在 P-CSCF 容灾接管的主叫流程中,备用 P-CSCF2 没有用户注册数据,必须动态重建路由。

  1. 构造 PAI:P-CSCF2 在 INVITE 消息中提取 PPI 或者 FROM 域的主叫号码构造 PAI
  2. 构造 Route:P-CSCF2 在 INVITE 消息的 Route 中增加标识主叫流程的 orig 参数。 I-CSCF 随后根据 orig 参数提取 PAI,向 HSS 发送普通的 LIR 请求,以获取主叫用户当前服务的 S-CSCF。