好的,我们继续接续上一篇文章,对 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世界里,用户的身份被抽象为两个核心概念:
-
IMPI (IP Multimedia Private Identity): IP多媒体私有身份。这是用户在IMS网络中的根本的、唯一的、用于认证的身份。它对用户不可见,只在手机与网络核心之间使用。IMPI的格式与
user@realm类似,并且通常与用户的IMSI紧密关联。 -
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的重要性体现在:
-
IMS注册的基础: 没有
EFIMS中的IMPI和IMPU,手机就无法向IMS网络发起合法的注册请求,自然也就无法使用VoLTE、VoNR、富媒体消息(RCS)、视频通话等所有基于IMS的业务。 -
权威的身份来源:
EFIMS由运营商在个人化或通过OTA进行配置,确保了手机获取到的IMS身份是官方的、准确的。 -
多身份支持:
EFIMS支持存储多个IMPU,为一卡多号、不同业务使用不同身份等复杂场景提供了原生的数据模型。
工作流程:IMS注册
-
读取身份: 李想的手机开机后,在附着到4G/5G网络并发现网络支持IMS后,会立即读取
EFIMS文件。从中,它获取到了李想的IMPI(例如,[email protected])和他的主IMPU(例如,tel:+8613800001111)。 -
发起注册: 手机向IMS网络中的P-CSCF(代理CSCF)发送一个SIP
REGISTER消息。这个消息的核心内容包括:-
Authorization头域: 包含IMPI,用于向网络表明自己的私有身份。
-
Contact头域: 包含手机当前的IP地址和端口,告诉网络“有事请往这里找我”。
-
From/To头域: 包含IMPU,声明自己要注册这个公共身份。
-
-
认证与授权: IMS核心网(I/S-CSCF和HSS)收到注册请求后,会基于IMPI,触发一次IMS-AKA认证流程。这个流程与我们熟悉的3GPP AKA认证非常相似,同样利用USIM卡中的根密钥K进行一次挑战-应答,以验证用户的合法性。
-
注册成功: 认证通过后,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文件的内容可能如下(简化示意):
-
IMPI-TLV:
-
Tag:
'80' -
Length: (IMPI字符串的长度)
-
Value:
[email protected]...(UTF-8编码)
-
-
IMPU-TLV 1 (主号):
-
Tag:
'81' -
Length: (Tel URI字符串的长度)
-
Value:
tel:+8613800001111(UTF-8编码)
-
-
IMPU-TLV 2 (副号):
-
Tag:
'81' -
Length: (SIP URI字符串的长度)
-
Value:
sip:[email protected](UTF-8编码)
-
-
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身份时,它会:
-
首先尝试在UICC卡上选择并激活ISIM应用。
-
如果ISIM应用存在,手机就会从ISIM的文件系统(
EF_IMPI,EF_IMPU…)中读取身份信息。 -
如果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:EFIMS和EFURI都存储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通常都是一个被有效配置和使用的文件。