根据您的要求,我将继续撰写系列文章的第十六篇。本篇将聚焦于 IMS 网络中会话终结方(MT)呼叫的建立流程,这是对 SIP 地址绑定、路由锚定和身份断言机制的综合检验。
VoLTE高清语音技术精要(十六):流程实战:VoNR/VoLTE 终结呼叫建立信令流解析
1. 导论:MT 呼叫的挑战——定位动态地址
主叫会话(MO-INVITE)流程的核心是验证用户身份并确保信令到达 S-CSCF。而终结会话(MT-INVITE)流程的核心挑战在于:如何将来自核心网的 INVITE 请求,准确地路由到用户终端(UE)当前注册的动态物理地址?
MT-INVITE 流程的每一步都依赖于注册时在 HSS 和 S-CSCF 中建立的地址绑定信息(Path 和 Contact),以及 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 地址。
- HSS 查询:I-CSCF 向 HSS 发起 Cx 接口查询(如 UAR 或 LIR 消息)以获取被叫用户当前服务的 S-CSCF 地址。
- 事件计费:在 Cx 查询之后,I-CSCF 向 CDF 发送 ACR [Event] 消息,创建 I-CSCF CDR。
2.2 S-CSCF 的路由重建(Path 的应用)
S-CSCF 收到终结请求后,将执行 MT-iFC 业务触发,随后需要将请求路由到用户的 P-CSCF/BAC。
- 路由锚定:S-CSCF 利用在用户注册时存储的
Path列表信息(即 P-CSCF 的地址),将该信息逆序转换为Route头域,指导INVITE请求的路由 [第 5 篇内容]。 - 对话锚定:S-CSCF 将其地址添加到
Record-Route列表中。
3. 阶段二:P-CSCF 的终结侧过滤与交付
P-CSCF 收到发往 UE 的对话初始请求后,必须执行一系列复杂的安全和状态管理功能,这些功能被称为 UE 终结的请求处理。
3.1 P-CSCF 的预转发处理(P-Header 清理与备份)
对于发往 UE 的对话初始请求(如 INVITE),P-CSCF 在转发之前必须执行以下功能:
- 路由转换与保存:P-CSCF 必须将
Record-Route列表信息转换到Route列表信息中,并保存Route列表。 - 对话状态备份:如果该请求为
INVITE,则 P-CSCF 应保存请求中的Contact、CSeq和Record-Route字段并备份。 - Via 和 Record-Route 插入:P-CSCF 必须将自身的 SIP URI 填加到
Record-Route头域最顶端并保存列表。同时,将 P-CSCF 地址填加到Via头域最顶端并保存该列表。 - 计费信息删除与备份:P-CSCF 必须删除并保存
P-Charging-Function-Addresses和P-Charging-Vector中的icid。 - 身份备份:P-CSCF 必须备份
P-Called-Party-ID。 - 隐私处理:如果收到的
INVITE请求中携带的Privacy头域值为id(匿名呼叫),则 P-CSCF 在转发INVITE请求前应删除其中的P-Asserted-Identity头域。
3.2 请求终结交付
P-CSCF 将 INVITE 请求转发给 UE,并在 Request-URI 中包含 UE 的 URI。
4. 阶段三:UE 响应、身份断言与计费启动
UE 收到 INVITE 后开始处理,并返回 1xx 或 2xx 响应。这些响应将原路返回,触发 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 收到上述请求的
1xx或2xx响应时,如果含有P-Preferred-Identity,P-CSCF 应删除该头域并插入P-Asserted-Identity。其值应为收到请求时保存下来的P-Called-Party-ID。
4.3 呼叫成功与计费启动
当被叫 UE 成功接通呼叫(如摘机)并返回 200 OK (INVITE) 响应时:
- 会话建立:UE 返回
200 OK响应(通常在 Precondition 资源同步完成后),标志着 SIP 会话建立。 - CDR 启动:P-CSCF 和 S-CSCF 在收到
INVITE的200 OK最终响应后,分别向各自的 CDF 发送Accounting Request [Start]消息。- 预期结果:终结网络端的 P-CSCF、S-CSCF 收到 B 用户端反馈的
200 OK后分别发送 ACR [Start] 请求。
- 预期结果:终结网络端的 P-CSCF、S-CSCF 收到 B 用户端反馈的
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 核心网能够精确地将终结请求送达用户的动态地址。
- 寻址和锚定:I-CSCF 通过 HSS 寻址 S-CSCF,S-CSCF 利用注册时存储的
Path信息锚定路由到 P-CSCF。 - P-CSCF 的严格过滤:P-CSCF 在转发 MT 初始请求时,必须执行路由转换和保存,Via/Record-Route 插入,以及计费和身份信息(
icid,P-Charging-Vector,P-Called-Party-ID)的删除和备份。 - 身份断言:在 MT 响应返回时,P-CSCF 负责将备份的
P-Called-Party-ID插入为P-Asserted-Identity。 - 计费启动:MT 侧的 P-CSCF 和 S-CSCF 在收到
200 OK最终响应后,分别触发 ACR [Start]。
7. 工程师进阶思考 (FAQ)
Q1:P-CSCF 在处理发往 UE 的对话初始请求(MT INVITE)时,为什么必须删除 P-Charging-Function-Addresses 和 P-Charging-Vector 中的 icid 参数?
A1: P-CSCF 在将消息发送给终端(UE)之前删除这些头域,是出于安全和信任域隔离的考虑。
- 安全隔离:
P-Charging-Function-Addresses和P-Charging-Vector携带了 IMS 核心网的内部计费和路由信息,例如 CDF/CCF 的地址和会话的 ICID。UE 属于非信任域,这些内部信息不应暴露给终端。 - 备份机制:P-CSCF 在删除这些信息的同时,会保存/备份
icid和P-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)时,会触发承载资源的释放。
- STR 下发时机:P-CSCF 收到
BYE消息后,向 PCRF 下发 **STR(Session-Termination-Request)**消息,释放承载会话。 - 承载释放流程:PCRF 收到 STR 后,发送 RAR 消息(携带
REMOVE QoS Rules指示)通知 PGW 删除专有承载。PGW/EPC 完成承载释放后,PCRF 返回 **STA(Session-Termination-Answer)**响应给 P-CSCF。 - 计费同步:同时,P-CSCF 和 S-CSCF 在收到
BYE请求后,发送 ACR [Stop] 消息关闭会话 CDR。