根据您的要求,我将继续撰写系列文章的第十六篇。本篇将聚焦于 IMS 网络中会话终结方(MT)呼叫的建立流程,这是对 SIP 地址绑定、路由锚定和身份断言机制的综合检验。


VoLTE高清语音技术精要(十六):流程实战:VoNR/VoLTE 终结呼叫建立信令流解析

1. 导论:MT 呼叫的挑战——定位动态地址

主叫会话(MO-INVITE)流程的核心是验证用户身份并确保信令到达 S-CSCF。而终结会话(MT-INVITE)流程的核心挑战在于:如何将来自核心网的 INVITE 请求,准确地路由到用户终端(UE)当前注册的动态物理地址?

MT-INVITE 流程的每一步都依赖于注册时在 HSS 和 S-CSCF 中建立的地址绑定信息(PathContact),以及 P-CSCF 对发往 UE 信令的严格处理和过滤。在这个过程中,I-CSCF 负责寻址 S-CSCF,S-CSCF 负责路由锚定,P-CSCF 负责终结侧的信令过滤和最终交付。

本章将详细解析 MT-INVITE 流程中涉及的关键 SIP 头域操作和网元协同机制,特别是 P-CSCF 如何处理发往 UE 的终结请求(UE 终结的请求)。

2. 阶段一:核心网寻址与路由锚定(I-CSCF 与 S-CSCF)

MT 流程的起始点是接入网络的网关(如 IBCF)将 INVITE 请求路由给归属网络的 I-CSCF。

2.1 I-CSCF 的寻址职责

I-CSCF 收到终结请求后,必须通过查询 HSS 来确定被叫用户当前服务的 S-CSCF 地址。

  1. HSS 查询:I-CSCF 向 HSS 发起 Cx 接口查询(如 UAR 或 LIR 消息)以获取被叫用户当前服务的 S-CSCF 地址。
  2. 事件计费:在 Cx 查询之后,I-CSCF 向 CDF 发送 ACR [Event] 消息,创建 I-CSCF CDR

2.2 S-CSCF 的路由重建(Path 的应用)

S-CSCF 收到终结请求后,将执行 MT-iFC 业务触发,随后需要将请求路由到用户的 P-CSCF/BAC。

  1. 路由锚定:S-CSCF 利用在用户注册时存储的 Path 列表信息(即 P-CSCF 的地址),将该信息逆序转换为 Route 头域,指导 INVITE 请求的路由 [第 5 篇内容]。
  2. 对话锚定:S-CSCF 将其地址添加到 Record-Route 列表中。

3. 阶段二:P-CSCF 的终结侧过滤与交付

P-CSCF 收到发往 UE 的对话初始请求后,必须执行一系列复杂的安全和状态管理功能,这些功能被称为 UE 终结的请求处理

3.1 P-CSCF 的预转发处理(P-Header 清理与备份)

对于发往 UE 的对话初始请求(如 INVITE),P-CSCF 在转发之前必须执行以下功能:

  1. 路由转换与保存:P-CSCF 必须将 Record-Route 列表信息转换到 Route 列表信息中,并保存 Route 列表
  2. 对话状态备份:如果该请求为 INVITE,则 P-CSCF 应保存请求中的 ContactCSeqRecord-Route 字段并备份
  3. Via 和 Record-Route 插入:P-CSCF 必须将自身的 SIP URI 填加到 Record-Route 头域最顶端并保存列表。同时,将 P-CSCF 地址填加到 Via 头域最顶端并保存该列表
  4. 计费信息删除与备份:P-CSCF 必须删除并保存 P-Charging-Function-AddressesP-Charging-Vector 中的 icid
  5. 身份备份:P-CSCF 必须备份 P-Called-Party-ID
  6. 隐私处理:如果收到的 INVITE 请求中携带的 Privacy 头域值为 id(匿名呼叫),则 P-CSCF 在转发 INVITE 请求前应删除其中的 P-Asserted-Identity 头域

3.2 请求终结交付

P-CSCF 将 INVITE 请求转发给 UE,并在 Request-URI 中包含 UE 的 URI

4. 阶段三:UE 响应、身份断言与计费启动

UE 收到 INVITE 后开始处理,并返回 1xx2xx 响应。这些响应将原路返回,触发 P-CSCF 和 S-CSCF 的身份断言和计费流程。

4.1 响应消息的 Via 校验

P-CSCF 收到上述请求的任何响应时,必须确认 Via 列表是否与同一对话的请求消息中保存的 Via 列表匹配

  • 异常处理:如果发现 Via 列表不匹配,P-CSCF 应丢弃 Via 头,或者替换成保存的 Via 列表

4.2 终结侧的身份断言(P-Called-Party-ID 的作用)

P-CSCF 必须在响应返回给核心网时,对身份信息进行断言。

  • 身份转换:当 P-CSCF 收到上述请求的 1xx2xx 响应时,如果含有 P-Preferred-Identity,P-CSCF 应删除该头域并插入 P-Asserted-Identity其值应为收到请求时保存下来的 P-Called-Party-ID

4.3 呼叫成功与计费启动

当被叫 UE 成功接通呼叫(如摘机)并返回 200 OK (INVITE) 响应时:

  1. 会话建立:UE 返回 200 OK 响应(通常在 Precondition 资源同步完成后),标志着 SIP 会话建立。
  2. CDR 启动:P-CSCF 和 S-CSCF 在收到 INVITE200 OK 最终响应后,分别向各自的 CDF 发送 Accounting Request [Start] 消息
    • 预期结果:终结网络端的 P-CSCF、S-CSCF 收到 B 用户端反馈的 200 OK 后分别发送 ACR [Start] 请求。

5. 阶段四:AS 业务干预(呼叫前转示例)

在 MT 流程中,被叫侧的 AS 可能会通过 iFC 被触发,执行补充业务(如呼叫前转)。

  • 呼叫前转(Call Forwarding):当被叫用户(如 B)设置了无条件前转至用户 C 时,被叫 S-CSCF/AS(TAS)执行无条件前转业务,向主叫侧网元发送 181 Call is Being Forwarded 消息,指示呼叫正在前转。该 181 响应表明服务器已表示呼叫发生了前转业务。当需要进行可靠传输时,181 须携带 Require: 100rel

6. 本章小结

MT-INVITE 流程确保了 IMS 核心网能够精确地将终结请求送达用户的动态地址。

  1. 寻址和锚定:I-CSCF 通过 HSS 寻址 S-CSCF,S-CSCF 利用注册时存储的 Path 信息锚定路由到 P-CSCF。
  2. P-CSCF 的严格过滤:P-CSCF 在转发 MT 初始请求时,必须执行路由转换和保存Via/Record-Route 插入,以及计费和身份信息(icidP-Charging-VectorP-Called-Party-ID)的删除和备份
  3. 身份断言:在 MT 响应返回时,P-CSCF 负责将备份的 P-Called-Party-ID 插入为 P-Asserted-Identity
  4. 计费启动:MT 侧的 P-CSCF 和 S-CSCF 在收到 200 OK 最终响应后,分别触发 ACR [Start]

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

Q1:P-CSCF 在处理发往 UE 的对话初始请求(MT INVITE)时,为什么必须删除 P-Charging-Function-AddressesP-Charging-Vector 中的 icid 参数?

A1: P-CSCF 在将消息发送给终端(UE)之前删除这些头域,是出于安全和信任域隔离的考虑。

  1. 安全隔离P-Charging-Function-AddressesP-Charging-Vector 携带了 IMS 核心网的内部计费和路由信息,例如 CDF/CCF 的地址和会话的 ICID。UE 属于非信任域,这些内部信息不应暴露给终端
  2. 备份机制:P-CSCF 在删除这些信息的同时,会保存/备份 icidP-Charging-Function-Addresses。这些备份信息会在响应返回时或后续计费消息中被重新插入,确保计费的连续性和完整性。

Q2:IMS 呼叫建立成功后,终结端网络(被叫侧)的 S-CSCF 和 P-CSCF 触发 ACR [Start] 消息的时机是什么?

A2: 终结端网络的 P-CSCF 和 S-CSCF 在收到 B 用户端反馈的 200 OK 最终响应后,会分别发送 ACR [Start] 请求。

  • P-CSCF:向拜访地 CDF 发送 ACR [Start],开启 P-CSCF CDR。
  • S-CSCF:向归属地 CDF 发送 ACR [Start],开启 S-CSCF CDR。

这种机制确保了只有在呼叫真正建立(媒体会话可传输)后,计费才开始计时。在 MT 流程中,I-CSCF 已经先一步发送了 ACR [Event] 消息,创建 I-CSCF CDR。

Q3:当 P-CSCF 收到 UE 发起的 BYE 请求后,它在何时会向 PCRF 下发 STR 消息,请求释放承载会话?

A3: P-CSCF 作为 AF(应用功能),在收到应用会话终止消息(即 BYE)时,会触发承载资源的释放。

  1. STR 下发时机:P-CSCF 收到 BYE 消息后,向 PCRF 下发 **STR(Session-Termination-Request)**消息,释放承载会话。
  2. 承载释放流程:PCRF 收到 STR 后,发送 RAR 消息(携带 REMOVE QoS Rules 指示)通知 PGW 删除专有承载。PGW/EPC 完成承载释放后,PCRF 返回 **STA(Session-Termination-Answer)**响应给 P-CSCF。
  3. 计费同步:同时,P-CSCF 和 S-CSCF 在收到 BYE 请求后,发送 ACR [Stop] 消息关闭会话 CDR。