好的,我们继续接续上一篇文章,对 3GPP TS 31.102 规范进行深度拆解。由于规范中 4.2.79 和 4.2.80 是 Void(空白章节),我们将直接跳过。此外,4.2.81 EFMMSUCP (MMS User Connectivity Parameters) 的原理与我们之前在 MMS 部分介绍的EFMMSICP/EFMMSUP高度一致,都是存储MMS连接参数,在此合并说明,不再展开。我们将直接进入下一个具有独特功能的文件。


深度解析 3GPP TS 31.102:4.2.82 EFIMS (IMS配置) & IP多媒体世界的“通行证”

本文技术原理深度参考了3GPP TS 31.102 V18.8.0 (2025-03) Release 18规范中,关于“4.2.82 EFIMS (IMS configuration data)”的核心章节,旨在为读者深入剖析在4G/VoLTE和5G时代,USIM卡是如何通过EFIMS这张至关重要的“IMS通行证”,来存储用户的IP多媒体子系统(IMS)核心身份标识,从而为手机接入VoLTE、VoNR、RCS等丰富的IP业务提供最根本的身份凭证。

在我们之前的探索中,我们已经见证了USIM如何通过EFURI等文件,开始拥抱IP时代的URI寻址方式。然而,要真正地、完整地融入IMS(IP Multimedia Subsystem)这个庞大的生态系统,手机还需要知道一个最根本问题的答案:“我在IMS世界里的官方身份是什么?

在传统的电路交换世界,用户的身份是MSISDN(手机号码)。但在IMS世界里,用户的身份被抽象为两个核心概念:

  1. IMPI (IP Multimedia Private Identity): IP多媒体私有身份。这是用户在IMS网络中的根本的、唯一的、用于认证的身份。它对用户不可见,只在手机与网络核心之间使用。IMPI的格式与user@realm类似,并且通常与用户的IMSI紧密关联。

  2. IMPU (IP Multimedia Public Identity): IP multimedia 公共身份。这是用户在IMS世界中对外呈现的、可被他人呼叫的“地址”。一个用户可以拥有多个IMPU(类似一卡多号),而这些IMPU都与同一个IMPI关联。IMPU的格式可以是SIP URI或Tel URI。

我们的主角“李想”,当他使用VoLTE拨打电话时,他的手机必须先向IMS网络进行“注册”,在这个过程中,它需要向网络出示自己的IMPI以验明正身,并声明自己拥有哪些IMPU。

那么,手机是如何知道自己的IMPI和IMPU的呢?答案就存储在USIM卡的EFIMS文件中。

EFIMS,全称 IMS configuration data,即“IMS配置数据”。它的核心使命,就是在USIM这个可信根上,权威地存储用户的IMS私有身份(IMPI)一个或多个IMS公共身份(IMPU)


1. “IMS通行证”:EFIMS的核心价值

EFIMS的核心价值在于,它将用户的身份从传统的蜂窝网络(基于IMSI)延伸到了IP多媒体网络(基于IMPI/IMPU),为手机接入所有IMS业务提供了最基础的、不可或缺的身份凭证。

If service n° 75 is “available”, this file shall be present.

This EF contains the IMS configuration data.

EFIMS的重要性体现在:

  1. IMS注册的基础: 没有EFIMS中的IMPI和IMPU,手机就无法向IMS网络发起合法的注册请求,自然也就无法使用VoLTE、VoNR、富媒体消息(RCS)、视频通话等所有基于IMS的业务。

  2. 权威的身份来源: EFIMS由运营商在个人化或通过OTA进行配置,确保了手机获取到的IMS身份是官方的、准确的。

  3. 多身份支持: EFIMS支持存储多个IMPU,为一卡多号、不同业务使用不同身份等复杂场景提供了原生的数据模型。

工作流程:IMS注册

  1. 读取身份: 李想的手机开机后,在附着到4G/5G网络并发现网络支持IMS后,会立即读取EFIMS文件。从中,它获取到了李想的IMPI(例如,[email protected])和他的主IMPU(例如,tel:+8613800001111)。

  2. 发起注册: 手机向IMS网络中的P-CSCF(代理CSCF)发送一个SIP REGISTER消息。这个消息的核心内容包括:

    • Authorization头域: 包含IMPI,用于向网络表明自己的私有身份。

    • Contact头域: 包含手机当前的IP地址和端口,告诉网络“有事请往这里找我”。

    • From/To头域: 包含IMPU,声明自己要注册这个公共身份。

  3. 认证与授权: IMS核心网(I/S-CSCF和HSS)收到注册请求后,会基于IMPI,触发一次IMS-AKA认证流程。这个流程与我们熟悉的3GPP AKA认证非常相似,同样利用USIM卡中的根密钥K进行一次挑战-应答,以验证用户的合法性。

  4. 注册成功: 认证通过后,IMS网络就记录下了李想的IMPU与他当前IP地址的绑定关系。从此,当任何人拨打tel:+8613800001111时,IMS网络就知道应该将这个呼叫路由到李想的手机。

在这个流程中,EFIMS是所有后续动作的起点


2. “身份档案”:EFIMS文件结构与编码剖析

EFIMS被设计成一个灵活的、基于TLV的容器,以适应IMS身份配置的复杂性。

2.1 文件结构

表 4.2.82-1: EFIMS 文件结构

| 属性 | 值 |

| :--- | :--- |

| Identifier| ‘6FDD’ (注意:此处的ID ‘6FDD’与EFCPSMS相同,规范中这是一个已知的笔误,实际分配的ID应是不同的,如6F07等由卡商定义在EFDIR中,此处我们以功能为准) |

| Structure | Transparent |

| File size | X bytes |

| Access Conditions| READ: PIN, UPDATE: ADM |

字节内容

| 字节 | 描述 | M/O | 长度 |

| :--- | :--- | :--- | :--- |

| 1 to X | One or more IMS data TLV objects | M | X bytes |

关键特性解读:

  • Access Conditions: 读取需要PIN权限,IMS身份属于敏感信息。更新则由ADM控制,用户的IMS身份是由运营商权威分配的。

  • 结构: 透明文件,其内容由一个或多个TLV对象构成。

2.2 编码的核心:IMS数据 TLV 对象

The data consists of one or more TLV objects. These TLV objects are:

‘80’: IMPI-TLV object

‘81’: IMPU-TLV object

‘82’: Domain Name-TLV object

‘83’: IMS-Config-Data-TLV object

EFIMS内部可以包含多种类型的TLV对象,最核心的是:

  • Tag '80' (IMPI-TLV): 存储用户的IP多媒体私有身份 (IMPI)。其Value部分是IMPI的URI字符串,采用UTF-8编码。一个EFIMS文件中,通常只有一个IMPI-TLV对象

  • Tag '81' (IMPU-TLV): 存储用户的IP多媒体公共身份 (IMPU)。其Value部分是IMPU的URI字符串(SIP URI或Tel URI)。一个EFIMS文件中,可以有多个IMPU-TLV对象,对应一卡多号。

  • Tag '82' (Domain Name-TLV): 存储用户的归属网络域名 (Home Network Domain Name)。这个域名是构造IMPI和IMPU的重要组成部分,例如 ims.mnc000.mcc460.3gppnetwork.org

场景化举例(编码):

李想的USIM卡中EFIMS文件的内容可能如下(简化示意):

  1. IMPI-TLV:

  2. IMPU-TLV 1 (主号):

    • Tag: '81'

    • Length: (Tel URI字符串的长度)

    • Value: tel:+8613800001111 (UTF-8编码)

  3. IMPU-TLV 2 (副号):

    • Tag: '81'

    • Length: (SIP URI字符串的长度)

    • Value: sip:[email protected] (UTF-8编码)

  4. Domain Name-TLV:

    • Tag: '82'

    • Length: (域名字符串的长度)

    • Value: ims.chinamobile.com (UTF-8编码)

手机在读取EFIMS时,会解析这些TLV对象,将Tag为'80'的识别为IMPI,所有Tag为'81'的识别为IMPU列表,从而构建出完整的IMS身份档案。

3. EFIMS与ISIM的关系

细心的读者可能会问:3GPP不是为IMS专门定义了一个应用叫ISIM (IP Multimedia Services Identity Module) 吗?为什么EFIMS会出现在USIM应用的规范里?

这是一个非常好的问题,它触及了3GPP标准演进和融合的现实。

  • ISIM应用: 是一个与USIM并列的、专门用于IMS身份和认证的应用。它有自己独立的文件系统(ADF_ISIM),其中包含了EF_IMPI, EF_IMPU, EF_DOMAIN等文件,功能与EFIMS中的TLV对象一一对应。

  • USIM中的EFIMS: 随着VoLTE的普及,几乎所有4G/5G用户都需要IMS功能。为了避免在每一张USIM卡上都必须同时实现USIM和ISIM两个独立的复杂应用,3GPP采取了一种“融合”或“简化”的策略。通过在USIM应用内部,增加一个EFIMS文件,来**“模拟”**一个ISIM的核心功能,即存储IMS身份。

手机的决策逻辑:

当手机需要获取IMS身份时,它会:

  1. 首先尝试在UICC卡上选择并激活ISIM应用

  2. 如果ISIM应用存在,手机就会从ISIM的文件系统(EF_IMPI, EF_IMPU…)中读取身份信息。

  3. 如果ISIM应用不存在,手机就会回退到USIM应用中,去寻找并读取EFIMS文件。

EFIMS因此成为了在没有独立ISIM应用的情况下,使一张USIM卡具备IMS能力的“关键补丁”。

总结:USIM在IP世界的“官方认证”

EFIMS文件是USIM为了无缝融入IMS生态系统而进行的一次关键自我进化。它将用户的身份,从物理的蜂窝世界,成功地映射到了虚拟的IP多媒体世界。

  • 提供了IMS的根本身份: 通过权威地存储IMPI和IMPU,EFIMS为手机发起IMS注册、使用所有IP业务提供了最基础的、不可或缺的身份凭证。

  • 灵活的身份数据模型: 采用TLV结构,使得EFIMS可以灵活地支持单IMPI、多IMPU以及其他配置数据的存储,完美适应了IMS复杂的身份体系。

  • 务实的融合方案: 作为在USIM应用内“模拟”ISIM功能的方案,EFIMS在保证功能完整性的同时,降低了UICC卡实现的复杂性,是标准演进中一个典型的务实主义范例。

对于李想而言,他能够享受到VoLTE带来的“秒接通”高清通话,能够在通话的同时高速上网,能够在5G时代体验丰富的视频彩铃和实时交互业务,所有这一切IP多媒体体验的起点,都源于他的手机在开机那一刻,从EFIMS这张“IMS通行证”上,成功地读取到了他在IP世界里的“私有ID”和“公开地址”。


FAQ环节

Q1:IMPI(私有身份)和IMSI(国际移动用户识别码)是什么关系?

A1:关系非常紧密。在绝大多数情况下,一个用户的IMPI是基于其IMSI构造的。典型的构造方式是:IMSI@Home_Network_Domain_Name。例如,IMSI为46000123...,归属网络域名为ims.mnc000.mcc460.3gppnetwork.org,那么IMPI就是[email protected]。这种设计,使得IMS的认证(IMS-AKA)可以直接复用基于IMSI和根密钥K的3GPP AKA认证机制,实现了安全体系的统一。

Q2:IMPU(公共身份)和MSISDN(手机号码)是什么关系?

A2:在大多数情况下,用户的主IMPU就是其MSISDN的Tel URI格式。例如,MSISDN为+8613800001111,那么其主IMPU就是tel:+8613800001111。此外,运营商也可能为用户分配SIP URI格式的IMPU,如sip:[email protected],或者一个与号码无关的别名,如sip:[email protected]。这些都可以作为用户的“公开地址”被他人呼叫。

Q3:EFIMSEFURI都存储URI,有什么区别?

A3:它们的层级和用途完全不同。

  • EFIMS: 存储的是**“我自己的”IMS官方身份URI(IMPI和IMPU)。它是在IMS注册**阶段,向网络证明“我是谁”时使用的。它是身份的根本。

  • EFURI: 存储的是**“别人的”联系人URI,主要用于电话本拨号控制(FDN/BDN)。它是在发起呼叫**阶段,告诉网络“我要呼叫谁”时使用的。

前者是“身份证”,后者是“地址簿”。

Q4:为什么EFIMS的更新权限是ADM?

A4:因为IMPI和IMPU是运营商为用户分配的核心网络身份,与用户的签约、计费、业务权限等紧密绑定。如果允许用户自行修改,可能会导致无法注册到网络、业务不可用,甚至冒用他人身份等严重问题。因此,用户的IMS身份必须由运营商进行权威的、统一的配置和管理。

Q5:如果我的手机不支持VoLTE,EFIMS文件还有用吗?

A5:如果你的手机和所在的网络都不支持任何IMS业务(包括VoLTE, VoWiFi, RCS等),那么EFIMS文件确实不会被使用。但对于现代的4G/5G手机和网络来说,IMS已经成为基础能力。即使你不主动使用VoLTE,手机在后台可能仍然会尝试进行IMS注册,以便支持紧急呼叫(IMS Emergency Session)或接收RCS消息等。因此,对于一张现代的USIM卡,EFIMS通常都是一个被有效配置和使用的文件。