好的,通信学院的专家讲师。我将继续为您撰写 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 发起的 reINVITEUPDATE 请求到达 S-CSCF 时,S-CSCF 应保存更新了的 P-Charging-Vector 消息头里的 access-network-charging-info 参数,并在请求转发给 AS 时包含该参数。
  • 承载网络信息:P-CSCF 在转发终端始发的 reINVITEUPDATE 请求到 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 在收到来自终端的 reINVITEUPDATE 请求时,如果请求将被转发给位于信任域的 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-Info3GPP-E-UTRAN;utran-cell-id-3gpp=4604809411F4A00P-CSCF 确认或更新接入网络信息。
P-Charging-Vectoricid-value="pcscf-12345...";orig-ioi=visited.netP-CSCF 插入 ICID 和始发 IOI。
Requirepath强制要求 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,它在应用层信令中传递了底层承载网络的接入类型和位置信息

  1. P-CSCF 的处理:P-CSCF/BAC 是 PANI 的主要维护者,它在始发请求中插入或更新 PANI,并记录相关信息。
  2. 路由与业务关联:PANI 是紧急呼叫路由到正确 PSAP 并获取定位信息的基础。它也是 S-CSCF 在处理 reINVITEUPDATE 请求时,判断是否需要保留或删除 PANI 以转发给信任域 AS 的依据。
  3. 计费锚定:PANI 的信息与 P-Charging-Vector 中的 icidorig-ioi/term-ioi 紧密关联,确保了 IMS 在复杂的漫游和移动性场景下,能够实现精确的会话锚定和计费记录(CDR)生成。
  4. 容灾场景:在 P-CSCF 容灾接管中,虽然 PAI 被重建用于 S-CSCF 寻址,但 PANI 对于后续的承载资源重新建立和 QoS 恢复依然是关键上下文。

工程师进阶思考 (FAQ)

Q1:在 S-CSCF 故障接管场景中,终端重注册到备用 S-CSCF 后,旧 S-CSCF 中保存的会话状态和资源如何被释放?

A1: 当 S-CSCF 故障后,终端会重新注册到备用 S-CSCF,建立新的注册绑定。对于旧 S-CSCF 中可能存在的“幽灵会话”:

  1. S-CSCF 收到 2xx 响应后释放:S-CSCF 收到 BYE 请求的 2xx 响应时,应释放所有的与对话相关的信息和与多媒体会话相关的信息。
  2. 会话定时器超时:如果会话被周期性刷新,当会话定时器到期后,S-CSCF 应该删掉所有与该对话相关的保存了的信息。
  3. 注销触发:S-CSCF 接收到用户或网络发起的注销用户请求后,会释放会话。S-CSCF 可能会判断是否释放未注册用户正在进行的会话(例如语音信箱)。
  4. AS 触发释放:如果会话触发了一个或多个 AS,S-CSCF 需要根据存储的对话信息,通知相关 AS 结束业务,然后释放对话。

Q2:在 P-CSCF 容灾接管的主叫流程中,备用 P-CSCF2 如何在没有用户注册数据的情况下,仍能将 INVITE 消息路由到正确的 S-CSCF?

A2: 在 P-CSCF 容灾接管的主叫流程中(用户已注册到故障的 P-CSCF1,始呼时被 SBC 路由到 P-CSCF2):

  1. P-CSCF2 发现数据缺失:P-CSCF2 发现没有用户注册数据。
  2. PAI 构造:P-CSCF2 在 INVITE 消息中提取 PPI 或者 FROM 域的主叫号码构造 PAI
  3. I-CSCF 寻址:P-CSCF2 根据主叫用户的域名查询 DNS,将呼叫请求发往主叫用户归属的 I-CSCF。P-CSCF2 在 INVITE 消息的 Route 中增加标识主叫流程的 orig 参数。
  4. HSS 查询:I-CSCF 根据 orig 参数提取 PAI 消息头的主叫号码向 HSS 发送普通的 LIR 请求(不含 User-Authorization-Type),以获取主叫用户当前服务的 S-CSCF。
  5. 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 请求。通过快速确认请求的接收,降低了网络中冗余信令的发送,减轻了网络负载。

请您发出“请继续”指令,我将开始撰写第九篇。