好的,专家讲师。我将继续为您撰写 SIP 协议深度解析系列的第十四篇。本篇将聚焦于 IMS 网络中的容灾机制,这是电信级服务可靠性的终极保障。我们将结合某运营商和某运营商的规范,深入解析 P-CSCF/BAC 故障时,SIP 定时器(Timer F 和 Timer B)如何驱动终端重注册,以及 P-CSCF/I-CSCF/S-CSCF 网元如何协同进行路由重建和会话接管。


VoLTE高清语音技术精要(十四):IMS网络容灾机制与SIP定时器驱动的切换

1. 导论:容灾——保证 VoLTE 业务连续性的核心

在 IMS/VoLTE 网络中,任何核心网元(如 CSCF、SBC/BAC)的单点故障都可能导致大量的用户业务中断。因此,运营商对容灾(Disaster Recovery)机制提出了极其严格的要求,确保在网元故障时,用户能够快速、平滑地切换到备用设备,并维持会话的连续性。

SIP 协议的灵活性和其内置的定时器机制,被运营商用于驱动这种容灾切换:

  1. SIP 定时器:特别是 Timer F(非 INVITE 事务超时)和 Timer B(INVITE 事务超时),成为终端判断 P-CSCF/BAC 故障,并启动重注册流程的关键依据。
  2. P-CSCF/BAC 的容灾角色:P-CSCF/BAC 作为用户接入的第一跳,在故障发生时必须指导终端进行切换。
  3. 核心网的路由重建:I-CSCF 和 S-CSCF 必须具备在 P-CSCF/BAC 故障,导致路由信息丢失后,重建路由路径和会话上下文的能力。

本章将结合某运营商和某运营商的具体容灾规范,详细解析这些流程。

2. P-CSCF/BAC 故障下的终端切换(Timer F/B 驱动)

P-CSCF/BAC 的故障是 SIP 容灾中最常见的场景之一。此时,用户终端(UE)依赖 SIP 事务定时器来判断 P-CSCF 是否无响应,并启动到备用 P-CSCF 的切换。

2.1 重注册流程(Timer F 驱动)

**重注册(Re-REGISTER)**属于非 INVITE 事务,由 Timer F 驱动超时和切换。

流程环节P-CSCF/BAC 故障处理关键 SIP 定时器来源
步骤 1:发起重注册UE 按一定周期向已注册的 P-CSCF/BAC1 发起重注册请求。无。
步骤 2:判断故障P-CSCF/BAC1 对重注册无响应。Timer F:UE 在相应的定时器 Timer F 内没有收到 P-CSCF/BAC1 对重注册请求的响应消息。
步骤 3:容灾切换终端选择次优先级别的 P-CSCF/BAC2 重新发起初始注册请求Timer F 超时。
后续P-CSCF/BAC2 完成注册消息处理,后续流程与标准的注册流程相同。无。

2.2 主叫始呼流程(Timer B 驱动)

主叫 INVITE 属于 INVITE 事务,由 Timer B 驱动超时和切换。

流程环节P-CSCF/BAC 故障处理关键 SIP 定时器来源
步骤 1:发起 INVITE终端向已注册 P-CSCF/BAC1 发起 INVITE 请求。无。
步骤 2:判断故障P-CSCF/BAC1 设备无法响应 UE1 的请求。Timer B:UE 在相应的定时器 Timer B 内没有收到 P-CSCF/BAC1 的响应,UE 结束当前呼叫,当前呼叫失败
步骤 3:容灾切换终端重新向优先级别次低的 P-CSCF/BAC2 发起初始注册流程。初始注册成功后,后续的 INVITE 请求按正常流程处理。Timer B 超时。

短信始呼容灾:短信始呼流程与重注册流程类似,也由 Timer F 驱动。UE 在 Timer F 内没有收到 P-CSCF/BAC1 的响应,则结束此次短信始呼,当前短信始呼失败,然后重新向次优 P-CSCF/BAC2 发起初始注册流程。

3. P-CSCF 故障下的核心网路由重建

当备用 P-CSCF2 接管主叫流程时,它没有用户注册数据(例如 Service-Route),因此无法直接路由到 S-CSCF。核心网必须协同 I-CSCF 和 HSS 来动态重建路由。

步骤网元动作描述关键 SIP 参数来源
1. 始呼请求接管SBC P-CSCF2SBC 检测到 P-CSCF1 故障,将收到的初始请求(如 INVITE)发给备用 P-CSCF2。
2. P-CSCF2 身份重建P-CSCF2P-CSCF2 发现没有用户注册数据。它在 INVITE 消息中提取 PPI 或者 FROM 域的主叫号码构造 PAIPAI (P-Asserted-Identity)
3. I-CSCF 寻址P-CSCF2 I-CSCFP-CSCF2 根据主叫用户的域名查询 DNS,将呼叫请求发往主叫用户归属的 I-CSCF。并在 INVITE 消息的 Route增加标识主叫流程的 orig 参数Route (携带 orig 参数)
4. HSS 查询I-CSCF HSSI-CSCF 根据 orig 参数提取 PAI 消息头的主叫号码,向 HSS 发送普通的 LIR 请求(不含 User-Authorization-Type),以获取主叫用户当前服务的 S-CSCF。PAI (用于寻址)
5. 路由转发I-CSCF S-CSCFI-CSCF 使用 HSS 返回的主叫用户当前服务的 S-CSCF 路由,将 INVITE 消息转发给该 S-CSCF。S-CSCF 地址

总结:在 P-CSCF 容灾场景下,PAI(即使是 P-CSCF2 构造的)和 Route 头域中的 orig 参数是实现 S-CSCF 动态寻址和路由重建的关键。

4. S-CSCF 故障下的终结流程接管

当用户注册的 S-CSCF 发生故障时,终结请求(MT)的接管流程涉及 I-CSCF 和 HSS 的协同。

4.1 S-CSCF 故障的检测与判断

S-CSCF 故障可以通过多种方式检测:

  • P-CSCF 检测:当 S-CSCF 转发请求至用户注册的 P-CSCF/BAC1,如果 S-CSCF 没有收到 P-CSCF/BAC1 的任何响应,S-CSCF 会启动 IMS 故障检测。
  • I-CSCF/AS 检测:I-CSCF 或 AS 在尝试向 S-CSCF1 转发终结请求时发现故障。

4.2 终结流程的接管

对于被叫与短信终呼流程

  1. S-CSCF 收到请求:UE1 注册的 S-CSCF 接收到至 UE1 的被叫或短信终呼请求。
  2. S-CSCF 转发失败:S-CSCF 转发请求至 UE1 注册的 P-CSCF/BAC1,S-CSCF 没有收到 P-CSCF/BAC1 的任何响应,启动 IMS 故障检测,确认 P-CSCF/BAC1 故障。
  3. 终端重注册:VoLTE 终端向优先级别次高的 P-CSCF/BAC2 发起初始注册
  4. S-CSCF 等待:同时,S-CSCF 设置等待定时器。若在定时器内 VoLTE 终端重新成功注册,S-CSCF 继续完成该呼叫或短信终呼。初始注册成功后,后续的呼叫或者短信终呼请求按正常流程处理。

5. 补充业务与 AS 故障的 Default Handling

在 IMS 业务逻辑中,如果呼叫触发了应用服务器(AS),而 AS 发生故障,S-CSCF 必须根据预定义的策略决定会话的走向。

  • Default Handling:S-CSCF 遵从与初始过滤规则(iFC)相关的缺省处理过程(Default Handling),即基于过滤规则中的信息,或者终止会话,或者让会话继续。
  • S-CSCF 的缺省行为:如果 iFC 规则没有包含在联系 AS 失败后 S-CSCF 应如何操作的指示,S-CSCF 的缺省行为是让呼叫继续
  • 测试要求:IMS 系统测试要求验证 S-CSCF 通过设置 DefaultHandling 可以使用户跳过不可达的 AS 继续完成接续。
DefaultHandling 设置值业务处理结果来源
Continue(继续)呼叫继续完成,补充业务触发不成功。
Terminate(终止)呼叫释放。

6. S-CSCF 的对话清理与 481 响应

在 S-CSCF 故障恢复或会话释放流程中,S-CSCF 必须严格清理对话信息,并使用 481 响应来应对信令冲突。

场景S-CSCF 动作目的来源
会话释放冲突当 S-CSCF 发起会话释放时,又接收到该会话的其他请求消息(如 UPDATE),S-CSCF 应终止接受请求并返回一个 481 响应确保会话状态机的状态一致性。
BYE 释放当收到一个匹配 BYE 请求的 2xx 响应时,S-CSCF 应删掉所有与该对话相关的保存了的信息释放对话和多媒体会话信息。
会话定时器超时如果会话周期性地被刷新,当会话定时器超时后,S-CSCF 应删掉所有与该对话相关的保存了的信息释放“幽灵会话”占用的资源。

7. 信令日志实战分析:P-CSCF 容灾下的路由重建关键头域

我们再次审视 P-CSCF 容灾接管的主叫流程,聚焦于 P-CSCF2 如何在 INVITE 消息中携带重建路由所需的关键信息。

场景:P-CSCF1 故障,UE 发起 INVITE 请求被 P-CSCF2 接管(P-CSCF2 无注册数据)。

SIP 头域P-CSCF2 构造/处理关键作用来源
P-Asserted-IdentityP-CSCF2 提取 PPI 或 FROM 域号码构造 PAII-CSCF 用此 PAI 消息头中的主叫号码向 HSS 发送 LIR 请求。
RouteP-CSCF2 增加标识主叫流程的 orig 参数I-CSCF 根据 orig 参数,识别这是一个容灾接管下的始呼请求,并执行特定的路由重建逻辑。
Request-URIsip:I-CSCF.home.netP-CSCF2 路由到归属域的 I-CSCF 进行寻址。

I-CSCF 的处理:I-CSCF 收到这个带有 orig 参数的 INVITE 后,会根据 PAI 中的主叫号码向 HSS 发送 LIR 请求,获取正确的 S-CSCF 地址,然后将 INVITE 转发给该 S-CSCF。

8. 本章小结

IMS 容灾是基于 SIP 定时器驱动的终端行为和核心网路由重建的协同过程:

  1. 终端行为:UE 依赖 Timer F(用于 REGISTER/MESSAGE 等)和 Timer B(用于 INVITE)的超时机制,判断 P-CSCF/BAC 故障,并向次优 P-CSCF 重新发起初始注册
  2. 路由重建:在 P-CSCF 容灾接管的主叫流程中,备用 P-CSCF2 必须构造 PAI 并携带 Route 头域中的 orig 参数,将请求路由给 I-CSCF。I-CSCF 通过 HSS 动态获取 S-CSCF 地址,完成路由重建。
  3. 会话连续性:在 S-CSCF 容灾场景下,S-CSCF 会设置等待定时器,允许终端重新注册成功后,继续完成被叫呼叫。
  4. 业务保障:在 AS 故障时,S-CSCF 必须遵循 iFC 中的 Default Handling 策略,决定是终止呼叫还是让呼叫继续。

工程师进阶思考 (FAQ)

Q1:在 P-CSCF/BAC 容灾接管的主叫流程中,如果终端在 Timer B 内释放了呼叫(发送 CANCEL),P-CSCF/BAC 应如何处理?

A1: 如果终端在 Timer B 内释放呼叫(发送 CANCEL 请求),且在相应的定时器 Timer B 或 Timer F 内没有得到 P-CSCF/BAC1 的任何响应,终端应支持向优先级别次高的 P-CSCF/BAC2 发起初始注册。注册成功后,相关业务切换到 P-CSCF/BAC2 上。

Q2:IMS 呼叫中的 AS 故障处理策略(Default Handling)有哪些具体的应用场景?

A2: Default Handling 是 S-CSCF 用于应对 AS 故障或不可达时,保证呼叫连续性的机制。

  1. 设置:iFC 规则允许设置 DefaultHandling,指示 S-CSCF 在联系 AS 失败后,是终止会话还是让会话继续
  2. 应用场景
    • 让呼叫继续(Continue):如果 AS 故障,但呼叫是基本语音业务,S-CSCF 可以让呼叫绕过 AS 继续进行,以保障基本通信服务,尽管补充业务(如彩铃、呼叫转移)可能无法触发。
    • 终止呼叫(Terminate):如果 AS 承载的是必须的业务(如在线计费、防欺诈业务),AS 故障可能导致计费或安全风险,此时 S-CSCF 应终止会话。

Q3:P-CSCF 在会话释放流程中,除了向 PCRF 发送 STR 消息,还需要向 CDF 发送什么消息来完成计费终结?

A3: P-CSCF 在会话释放时必须同步通知计费系统(CDF)和承载控制系统(PCRF)。

  1. PCRF:P-CSCF 收到应用会话终止消息(如 BYE)后,向 PCRF 下发 **STR(Session-Termination-Request)**消息,请求释放承载会话。PCRF 返回 STA 响应。
  2. CDF:P-CSCF 收到 BYE 请求后,向 CDF 发送 ACR [Stop] 消息(Accounting Request [Stop]),关闭会话 CDR。S-CSCF 也会执行同样的 ACR [Stop] 动作。