好的,通信学院的专家讲师。我将继续为您撰写 SIP 协议深度解析系列的第八篇。本篇将深入剖析 IMS 网络中至关重要的私有头域之一:P-Access-Network-Info (PANI),它是 IMS 业务实现用户位置、接入技术识别、漫游判断以及精确计费和紧急呼叫路由的基础。
VoLTE高清语音技术精要(八):接入网络与漫游标识:P-Access-Network-Info (PANI) 深度解析
1. 导论:网络接入状态的“活点地图”
在移动通信网络中,会话初始协议(SIP)不仅要处理呼叫控制,还必须实时知晓用户终端(UE)的接入技术(例如 LTE、NR、VoWiFi)和位置信息(例如小区 ID、TAI)。这些信息对于 IMS 核心网(特别是 P-CSCF、S-CSCF)进行准确的路由决策、业务授权以及精确计费至关重要。
IMS 引入的 P-Access-Network-Info (PANI) 私有头域,正是用来承载这些实时接入和位置信息的载体。它将底层承载网络(EPC/5GC)的物理信息,以结构化的方式注入到应用层 SIP 信令中。
PANI 头域贯穿了 SIP 注册(REGISTER)、呼叫建立(INVITE)和呼叫更新(UPDATE/Re-INVITE)等多个关键流程。 IMS 网元,特别是 P-CSCF/BAC,必须根据运营商规范严格处理和维护该字段,以满足电信级业务连续性和计费准确性的要求。
2. PANI 的结构与内容要素
PANI 头域是一个复杂的结构化字段,用于描述用户当前接入网络的关键信息。虽然具体格式可能因接入技术而异,但其核心功能是传递网络类型和位置标识。
2.1 PANI 承载的核心信息类型
PANI 字段通常包含以下关键信息:
| 信息类型 | 典型参数示例 | 核心用途 | 来源 |
|---|---|---|---|
| 接入网络技术 | 3GPP-E-UTRAN (LTE), 3GPP-NR-TDD (5G NR), 3GPP-UTRAN-TDD, 3GPP-WLAN (VoWiFi) | 识别底层承载,影响媒体协商和 QoS 策略。 | UE 或 P-CSCF/BAC |
| 位置标识 | utran-cell-id-3gpp (Cell ID), ECGI (E-UTRAN Cell Global Identity), TAI (Tracking Area Identity) | 用于紧急呼叫定位和承载网关联。 | UE 或 P-CSCF/BAC |
| 访问域名 | access-domain | 标识用户接入的 PLMN/VPLMN,用于漫游和归属地判断。 | P-CSCF/BAC |
在 REGISTER 消息中的要求:UE 在向 S-CSCF 发送 SUBSCRIBE 消息以订阅注册事件时,需要在相关头域里面填写 P-Access-Network-Info 头域,指示接入网络信息。
2.2 PANI 与 ICID/计费的关联
PANI 中的信息是 IMS 计费的核心上下文之一。它协助 P-CSCF 锚定计费信息。
- P-CSCF 的计费职责:P-CSCF 负责在 SIP 消息中插入 P-Charging-Vector。在始呼情形中,UE 发起的
reINVITE或UPDATE请求到达 S-CSCF 时,S-CSCF 应保存更新了的 P-Charging-Vector 消息头里的access-network-charging-info参数,并在请求转发给 AS 时包含该参数。 - 承载网络信息:P-CSCF 在转发终端始发的
reINVITE或UPDATE请求到 S-CSCF 时,应在 P-Charging-Vector 头中包含更新过的access-network-charging-info参数。PANI 提供的接入网络信息,是access-network-charging-info参数的重要输入。
3. P-CSCF 对 PANI 的维护与处理(以某运营商规范为例)
P-CSCF 作为信任域的入口,对 PANI 的处理至关重要,它决定了位置信息的准确性和安全传输。
| 场景 | P-CSCF/S-CSCF 的 PANI 处理动作 | 目的 | 来源 |
|---|---|---|---|
| 始发请求 (INVITE, MESSAGE) | P-CSCF 应在转发请求前插入 PANI 头域(如果 UE 没有携带或需要更新)。 | 为核心网提供路由和 QoS 决策所需的接入信息。 | |
| 目标刷新请求 (reINVITE, UPDATE) | S-CSCF 在收到来自终端的 reINVITE 或 UPDATE 请求时,如果请求将被转发给位于信任域的 AS,S-CSCF 应保留 P-Access-Network-Info 消息头。否则 S-CSCF 应删掉该消息头。 | 确保 AS 在执行业务逻辑时(如呼叫保持、切换)可以获取最新的接入网络信息。 | |
| 终结请求 (发往 UE 的 INVITE) | P-CSCF 在转发请求时,不应在消息中包含 PANI,因为 PANI 主要是用于向上游提供信息。 | 保证 IMS 核心网元收到的所有身份信息都是经过认证的 PAI,从而确保业务和计费的准确性。 | (基于 P-Header 通用原则) |
PANI 在容灾接管中的作用:在 P-CSCF 容灾接管的主叫流程中,备用 P-CSCF2 必须在 INVITE 消息中提取 PPI 或 From 域的主叫号码构造 PAI,并在 Route 中增加标识主叫流程的 orig 参数,将呼叫请求发往主叫用户归属的 I-CSCF。I-CSCF 根据 orig 参数和 PAI 中的主叫号码向 HSS 发送 LIR 请求,以获取 S-CSCF 地址。虽然 PANI 未直接参与 S-CSCF 寻址,但其所携带的接入网络信息对于容灾后的承载重建和 QoS 恢复仍至关重要。
4. PANI 在 IMS 关键业务中的应用
PANI 信息的实时准确性,直接影响到 IMS 提供的几项关键电信级业务。
4.1 紧急呼叫路由与位置服务
紧急呼叫(如 110、119、120、122)是 IMS 必须保障的业务,其核心在于将呼叫路由到最近的 PSAP(公共安全应答点),并提供精确的地理位置信息。
- PANI 的核心价值:UE 在发起紧急呼叫时,会在 Request-URI 中使用 URN 格式(例如
urn:service:sos.police),并在 SIP 消息中携带 PANI 头域。PANI 中包含的蜂窝小区 ID(如utran-cell-id-3gpp或 ECGI/TAI)是 E-CSCF/E-AGCF 获取精确位置(通过 LRF 接口)的基础。 - Contact 中的 SOS 参数:终端在紧急呼叫的
Contact头域中也会携带;sos参数,进一步明确请求的紧急性质。
4.2 业务连续性与承载更新(Session Update)
PANI 中携带的接入信息对于处理移动性事件和业务连续性(如 eSRVCC、VoWiFi 切换)至关重要。
- VoWiFi 承载创建:在 VoWiFi 接入流程中,P-GW/UPF 需要根据 QoS Rules 匹配或激活新的专有承载。P-GW 向 SGW 发送
Create Session Request消息时,其中包含用户位置信息 (e.g. TAI+ECGI)。虽然 PANI 是 SIP 层的,但它与底层承载的这些信息是高度关联的,确保 SIP 媒体协商与承载建立同步。 - 媒体授权更新:当 SIP 消息(如
INVITE/UPDATE)触发媒体更新或 QoS 资源修改时,P-CSCF (作为 AF) 会通过 Rx 接口与 PCRF 交互。如果接入网络信息发生变化(反映在 PANI 或底层承载),PCRF 会向 P-CSCF 发起AS-Request消息,请求终止 Rx 会话,或向 PCEF 发起RAR消息,指示承载更新。
4.3 漫游场景下的计费锚定
PANI 协助区分用户是在归属地网络 (Home Network) 还是拜访地网络 (Visited Network),这是漫游计费的基础。
- 计费记录创建:在主叫会话发起流程中,P-CSCF(位于拜访地网络)和 S-CSCF(位于归属地网络)都会向各自的计费数据功能 (CDF) 发送
ACR [Start]消息,以打开 P-CSCF CDR 和 S-CSCF CDR。 - 域间标识:在 IMS 互通场景中,
P-Charging-Vector头域会包含orig-ioi(始发网络标识)和term-ioi(终结网络标识)。PANI 中隐含的接入网络位置,帮助计费实体确定这些 IOI (Inter-Operator Identifier) 的正确取值。
5. 信令日志实战分析:REGISTER 中的 PANI 携带
我们通过一个实际的 REGISTER 消息流,观察 PANI 如何与路由和计费信息一同被 P-CSCF 插入和转发。
场景: 用户 UE 首次注册到 IMS 网络,P-CSCF 负责在转发给 S-CSCF 前,插入网络信息。
5.1 UE P-CSCF 的初始 REGISTER 请求
UE 可能会在 REGISTER 请求中携带初步的接入信息,包括 Contact 地址和身份信息。
// UE 发起的 REGISTER 请求 (部分)
REGISTER sip:ims.home.net SIP/2.0
Via: SIP/2.0/UDP [10.1.1.10]:5060;branch=z9hG4bKnashds7
...
Contact: <sip:ue_user@ [10.1.1.10]:5060>;expires=3600
P-Access-Network-Info: 3GPP-E-UTRAN;utran-cell-id-3gpp=4604809411F4A00
Require: path
Supported: path
5.2 P-CSCF S-CSCF 的转发 REGISTER 请求(P-Header 填充)
P-CSCF 收到请求后,执行 Path 插入、Via 更新、PANI 确认/更新以及 P-Charging-Vector 锚定。
| SIP 头域 | P-CSCF 转发值示例 | 核心作用分析 | 来源 |
|---|---|---|---|
| Via (顶端) | SIP/2.0/UDP 20.1.1.20:5060;branch=... | P-CSCF 地址,用于事务响应。 | |
| Path | <sip:[email protected];lr> | P-CSCF 锚定 MT 呼叫的路由路径。 | |
| P-Access-Network-Info | 3GPP-E-UTRAN;utran-cell-id-3gpp=4604809411F4A00 | P-CSCF 确认或更新接入网络信息。 | |
| P-Charging-Vector | icid-value="pcscf-12345...";orig-ioi=visited.net | P-CSCF 插入 ICID 和始发 IOI。 | |
| Require | path | 强制要求 S-CSCF 支持 Path 机制。 |
分析要点: 在此流程中,PANI 携带了 3GPP-E-UTRAN(LTE 接入)和 utran-cell-id-3gpp(小区 ID)信息。这些信息与 P-CSCF 插入的 icid-value(计费锚点)同时存在,共同构成了 S-CSCF 和 CDF 进行会话计费和位置关联的上下文。如果该用户是漫游用户,PANI 中可能需要包含额外的漫游标识,且 P-CSCF 也会在 P-Charging-Vector 中填充相应的漫游 IOI 值。
6. 本章小结
P-Access-Network-Info (PANI) 是 IMS 协议栈中不可或缺的 P-Header,它在应用层信令中传递了底层承载网络的接入类型和位置信息。
- P-CSCF 的处理:P-CSCF/BAC 是 PANI 的主要维护者,它在始发请求中插入或更新 PANI,并记录相关信息。
- 路由与业务关联:PANI 是紧急呼叫路由到正确 PSAP 并获取定位信息的基础。它也是 S-CSCF 在处理
reINVITE或UPDATE请求时,判断是否需要保留或删除 PANI 以转发给信任域 AS 的依据。 - 计费锚定:PANI 的信息与
P-Charging-Vector中的icid和orig-ioi/term-ioi紧密关联,确保了 IMS 在复杂的漫游和移动性场景下,能够实现精确的会话锚定和计费记录(CDR)生成。 - 容灾场景:在 P-CSCF 容灾接管中,虽然 PAI 被重建用于 S-CSCF 寻址,但 PANI 对于后续的承载资源重新建立和 QoS 恢复依然是关键上下文。
工程师进阶思考 (FAQ)
Q1:在 S-CSCF 故障接管场景中,终端重注册到备用 S-CSCF 后,旧 S-CSCF 中保存的会话状态和资源如何被释放?
A1: 当 S-CSCF 故障后,终端会重新注册到备用 S-CSCF,建立新的注册绑定。对于旧 S-CSCF 中可能存在的“幽灵会话”:
- S-CSCF 收到
2xx响应后释放:S-CSCF 收到BYE请求的2xx响应时,应释放所有的与对话相关的信息和与多媒体会话相关的信息。 - 会话定时器超时:如果会话被周期性刷新,当会话定时器到期后,S-CSCF 应该删掉所有与该对话相关的保存了的信息。
- 注销触发:S-CSCF 接收到用户或网络发起的注销用户请求后,会释放会话。S-CSCF 可能会判断是否释放未注册用户正在进行的会话(例如语音信箱)。
- AS 触发释放:如果会话触发了一个或多个 AS,S-CSCF 需要根据存储的对话信息,通知相关 AS 结束业务,然后释放对话。
Q2:在 P-CSCF 容灾接管的主叫流程中,备用 P-CSCF2 如何在没有用户注册数据的情况下,仍能将 INVITE 消息路由到正确的 S-CSCF?
A2: 在 P-CSCF 容灾接管的主叫流程中(用户已注册到故障的 P-CSCF1,始呼时被 SBC 路由到 P-CSCF2):
- P-CSCF2 发现数据缺失:P-CSCF2 发现没有用户注册数据。
- PAI 构造:P-CSCF2 在 INVITE 消息中提取 PPI 或者 FROM 域的主叫号码构造 PAI。
- I-CSCF 寻址:P-CSCF2 根据主叫用户的域名查询 DNS,将呼叫请求发往主叫用户归属的 I-CSCF。P-CSCF2 在 INVITE 消息的 Route 中增加标识主叫流程的
orig参数。 - HSS 查询:I-CSCF 根据
orig参数提取 PAI 消息头的主叫号码向 HSS 发送普通的 LIR 请求(不含 User-Authorization-Type),以获取主叫用户当前服务的 S-CSCF。 - I-CSCF 路由:I-CSCF 使用 HSS 返回的 S-CSCF 路由,并将 INVITE 消息转发给该 S-CSCF。
Q3:P-CSCF 在何时会向 INVITE 请求回送 100 (Trying) 临时响应?这样做对网络有什么好处?
A3: P-CSCF 应给所有的 INVITE 请求回送 100 (Trying) 临时响应。P-CSCF 还可以对 reINVITE 请求返回 100 (Trying) 临时响应。
- 目的:
100 (Trying)响应是特殊的,它不会被有状态代理向上游转发。它仅在逐跳链路上使用,用于告知 UAC(终端或上一跳)该请求已被接收并正在处理。 - 好处:这可以阻止 UAC 在 SIP Timer A 超时后重传 INVITE 请求。通过快速确认请求的接收,降低了网络中冗余信令的发送,减轻了网络负载。
请您发出“请继续”指令,我将开始撰写第九篇。