好的,我们继续接续上一篇文章,对 3GPP TS 31.102 规范进行深度拆解。
深度解析 3GPP TS 31.102:4.2.77 EFICI-Ext & 4.2.78 EFOCI-Ext (通话记录的“增强现实”)
本文技术原理深度参考了3GPP TS 31.102 V18.8.0 (2025-03) Release 18规范中,关于“4.2.77 EFICI-Ext (Incoming Call Information extension)”和“4.2.78 EFOCI-Ext (Outgoing Call Information extension)”的核心章节,旨在为读者深入剖析在IMS(IP多媒体子系统)和富媒体通信时代,USIM卡是如何通过这对“扩展档案”,为传统的通话记录赋予更丰富的上下文信息,特别是与URI(统一资源标识符)和PVI(被叫方身份)相关的“增强现实”数据。
在我们之前探讨EFICI和EFOCI时,我们将它们比作通话的“黑匣子”,忠实记录了通话的号码、时间、时长等核心信息。然而,随着通信网络从电路交换全面转向IP化,传统的E.164电话号码,已经不足以完整地描述一次通信会话的“身份”了。
在VoLTE/VoNR的世界里,每一次呼叫,其背后都是SIP URI之间的复杂交互。我们的主角“李想”,他拨打的可能是一个sip:[email protected]的会议室地址;他接到的来电,可能在信令层面同时携带了主叫方的电话号码和SIP URI。更重要的是,在企业或多设备场景下,对方的“呈现身份 (Presented Identity)”可能与“网络地址 (Network Address)”并不完全相同。
为了让通话记录能够精确地反映IMS时代的这种复杂性和丰富性,传统的EFICI/EFOCI文件显得力不从心。为此,3GPP规范为它们设计了一对专属的、平行的“扩展档案”——EFICI-Ext和EFOCI-Ext。
-
EFICI-Ext(Incoming Call Information extension): 为呼入通话记录提供URI等扩展信息。 -
EFOCI-Ext(Outgoing Call Information extension): 为呼出通话记录提供URI等扩展信息。
它们与主通话记录文件一一对应,共同构成了一个更完整的通话事件画像。
1. “增强档案”:Ext文件的核心价值
EFICI-Ext和EFOCI-Ext的核心价值在于,它们将通话记录的数据模型,从**“号码中心”升级为了“身份中心”**,能够容纳和区分IMS时代多样化的身份标识符。
These Efs contain extended information for incoming and outgoing calls, that cannot be stored in EFICI and EFOCI. … Each record of EFICI-Ext is associated with a record in EFICI at the same record number.
这段原文揭示了这对扩展文件的关键特性:
-
功能: 存储主文件
EFICI/EFOCI无法存储的扩展信息。 -
严格的对应关系:
EFICI-Ext的第N条记录,与EFICI的第N条记录,是一一对应、严格绑定的。它们共同描述了同一次通话。 -
服务关联: 它们的存在与
EF_UST中的服务n°106 (ICI/OCI Extension) 相关联。
它们主要解决了什么问题?
-
存储URI:
EFICI/EFOCI的主记录只能存储BCD编码的数字。而EFICI-Ext/EFOCI-Ext可以存储可变长度的、基于UTF-8编码的URI字符串。 -
区分不同身份: IMS信令中可能同时包含多个与对方身份相关的URI。例如,
P-Asserted-Identity(网络侧验证过的真实身份) 和From头域 (主叫方自己声明的身份)。这对扩展文件可以分别存储这些不同的身份信息,提供更完整的通信上下文。
工作流程:
-
IMS呼叫发生: 李想接到了一个来自
sip:[email protected]的VoLTE来电。 -
写入主记录: 通话结束后,手机首先在
EFICI的第5号记录中,写入这次通话的基础信息(如主叫号码+86138...、时间、时长等)。 -
写入扩展记录: 手机接着在
EFICI-Ext的同样是第5号记录中,写入这次通话的扩展信息。这些信息可能以TLV格式存储,例如:- 一个TLV对象存储了主叫方的P-Asserted-Identity:
sip:[email protected]。
- 一个TLV对象存储了主叫方的P-Asserted-Identity:
-
读取与呈现:
-
当李想查看通话记录时,手机读取
EFICI的第5条记录,获取基础信息。 -
手机接着读取
EFICI-Ext的第5条记录,获取扩展信息。 -
最终,手机UI上可能会这样显示这条通话记录:“
project-alpha(+86138…)”,将URI和电话号码智能地结合起来,为李想提供了比单纯一个号码更丰富的上下文。
-
2. 灵活的“数据容器”:Ext文件结构与编码剖析
EFICI-Ext和EFOCI-Ext在结构上完全相同,都被设计成一个高度灵活的、基于TLV的“数据容器”。
2.1 文件结构
表 4.2.77-1 / 4.2.78-1: EFICI-Ext / EFOCI-Ext 文件结构
| 属性 | 值 |
| :--- | :--- |
| Identifier | ‘6F82’ (ICI-Ext) / ‘6F83’ (OCI-Ext) |
| Structure | Linear Fixed |
| Record length| X bytes |
| Update activity| High |
| Access Conditions| READ: PIN, UPDATE: PIN |
记录内容 (X bytes)
| 字节 | 描述 | M/O | 长度 |
| :--- | :--- | :--- | :--- |
| 1 to X | Extension Data TLV objects | M | X bytes |
关键特性解读:
-
Structure: Linear Fixed。这确保了与主文件
EFICI/EFOCI(它们是Cyclic,但逻辑上也可以看作线性空间)的记录号能够一一对应。 -
Access Conditions: 读写都受PIN保护,与主文件保持一致,共同构成了对通话记录隐私的保护。
2.2 编码核心:扩展数据 TLV (Tag-Length-Value)
每条记录的内容,是由一个或多个TLV对象组成的。这使得扩展文件的内容可以非常灵活,按需添加。
Contents: one or more extension data TLV objects.
‘80’: Called party address for outgoing calls.
‘81’: URI for incoming/outgoing calls.
‘82’: PVI for incoming calls.
规范定义了几个关键的Tag值,用于标识不同类型的扩展数据:
-
Tag
'80'(被叫方地址): 专用于EFOCI-Ext,存储被叫方的完整地址信息。 -
Tag
'81'(URI): 通用的URI存储标签。可以存储主叫方或被叫方的SIP URI或Tel URI。 -
Tag
'82'(PVI - Presented aNd Verified Identity): 被叫方的呈现与验证身份。这个比较特殊,它记录的是李想自己在接听电话时,网络向对方呈现的身份是什么。
PVI (Tag ‘82’) 的价值:
想象一下李想拥有一卡双号(主号和副号)。当别人给他打电话时,是打到了主号还是副号?EFICI-Ext中的PVI字段,就会记录下这次呼叫实际命中的是哪个号码(身份)。这对于用户准确回拨,或者区分不同身份的来电(工作vs生活),非常重要。
The PVI indicates if the call was received via a certain MSISDN or URI.
3. 从EFPBC到Ext文件:URI存储的演进
在EFURI的章节中,我们提到个人电话本EFADN可以通过EFPBC文件来关联URI。现在,EFICI/EFOCI又有了专属的Ext文件来存储URI。这体现了USIM设计中对不同场景的精细化考量:
-
电话本 (ADN/PBC/URI): 存储的是静态的、预设的联系人URI信息。
-
通话记录 (ICI/OCI + Ext): 存储的是动态的、实际发生的每一次通信会话中所使用的URI。
这两套机制相辅相成。手机可以在通话记录中,将EFICI-Ext中记录的实际来电URI,与电话本中存储的预设联系人URI进行匹配,从而更准确地识别来电者身份。
总结:为IMS通话记录绘制的“高清画像”
EFICI-Ext和EFOCI-Ext这对扩展文件,是USIM为了跟上IMS时代通信复杂性而进行的一次重要升级。它们通过引入灵活的TLV容器和对URI、PVI等新身份标识符的支持,将传统的通话记录从一张简单的“数字快照”,升级为了一幅信息丰富的“高清画像”。
-
拥抱IP化: 提供了在通话记录中原生存储和处理URI的能力,是USIM全面支持IMS业务的基础。
-
丰富了通信上下文: 通过存储PVI等多种身份标识,
EFICI-Ext能够帮助用户清晰地区分不同身份的来电(如一卡多号),为多身份管理提供了数据支撑。 -
精巧的扩展设计: 采用与主文件记录号严格对应的“平行文件”模式,在不破坏原有
EFICI/EFOCI稳定结构的前提下,实现了功能的无缝扩展。
对于李想而言,当他的通话记录不再是冷冰冰的号码,而是能够清晰地显示“来自项目组project-alpha的呼叫”,或者标注出“打入副号”的来电时,他所体验到的这种更智能、更具上下文的通信管理,其背后正是EFICI-Ext和EFOCI-Ext在为每一次IP通话,精心绘制和保存着那份独一无二的“增强档案”。
FAQ环节
Q1:EFICI-Ext/EFOCI-Ext和EFEXT系列文件(如EFEXT5)有什么区别?
A1:它们都属于扩展机制,但扩展的维度和链接方式完全不同。
-
EFEXT系列: 是字段级的扩展,用于解决**“长度”**问题。它通过主记录中的一个Extension Identifier指针,来存储某个特定字段(如号码)的超长部分。 -
-Ext系列 (如EFICI-Ext): 是记录级的扩展,用于解决**“宽度”或“类型”问题。它通过记录号的隐式对应**,为整个主记录提供一个全新的、平行的、用于存储不同类型数据(如URI)的“档案柜”。
前者是“接续”,后者是“补充”。
Q2:如果一次通话既有电话号码,又有SIP URI,它们分别存在哪里?
A2:它们会被分别存储:
-
电话号码 (E.164格式): 存储在主文件
EFICI或EFOCI的Dialling Number字段中,采用BCD编码。 -
SIP URI (字符串格式): 存储在扩展文件
EFICI-Ext或EFOCI-Ext的、Tag为'81'的TLV对象中,采用UTF-8编码。
手机在显示时,会将这两个文件同一记录号的内容合并起来,呈现给用户。
Q3:EFICI-Ext中的PVI(被叫方身份)有什么实际用途?
A3:PVI(Presented and Verified Identity)非常有用,尤其是在一卡多号或呼叫转移的场景。
-
一卡多号: 李想有主号A和副号B。当有人拨打他的副号B时,他的手机会振铃。通话记录
EFICI-...Ext中的PVI字段会记录下B。当李想需要回拨这个未接来电时,手机可以根据PVI信息,智能地选择使用副号B来回拨,而不是默认的主号A,保证了通信身份的一致性。 -
呼叫转移: 李想的办公电话C呼叫转移到了他的手机A上。当有电话打到C时,他的手机A会响。
EFICI-Ext中的PVI字段可以记录下原始被叫号码C,让李想知道这个来电是来自他的办公电话。
Q4:为什么EFICI-Ext/EFOCI-Ext的结构是Linear Fixed,而主文件EFICI/EFOCI是Cyclic?
A4:这是一个很好的观察。主文件EFICI/EFOCI采用Cyclic(循环)结构,是因为通话记录是典型的日志类数据,最新的记录会覆盖最旧的,循环文件是实现这种“滚动”存储最高效的方式。而扩展文件EFICI-Ext/EFOCI-Ext采用Linear Fixed(线性固定)结构,主要是为了保持与主文件记录号的严格、直接的对应关系。虽然主文件是循环的,但手机在访问它时,依然可以通过逻辑上的记录号(1, 2, 3…N)来定位。扩展文件使用相同的线性索引,可以确保ICI[n]和ICI-Ext[n]永远指向同一次通话,简化了手机的实现逻辑。
Q5:这些扩展文件中的URI,和EFURI文件有什么关系?
A5:它们存储的都是URI,但用途和上下文完全不同。
-
EFURI: 是一个静态的URI库,服务于FDN/BDN等拨号控制功能。它存储的是预设的、用于匹配和规则判断的URI。 -
EFICI-Ext/EFOCI-Ext: 是一个动态的通话日志,服务于通话记录功能。它存储的是实际发生的每一次通话中所涉及的URI。
前者是“规则簿”,后者是“记事本”。