好的,我们继续接续上一篇文章,对 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(被叫方身份)相关的“增强现实”数据。

在我们之前探讨EFICIEFOCI时,我们将它们比作通话的“黑匣子”,忠实记录了通话的号码、时间、时长等核心信息。然而,随着通信网络从电路交换全面转向IP化,传统的E.164电话号码,已经不足以完整地描述一次通信会话的“身份”了。

在VoLTE/VoNR的世界里,每一次呼叫,其背后都是SIP URI之间的复杂交互。我们的主角“李想”,他拨打的可能是一个sip:[email protected]的会议室地址;他接到的来电,可能在信令层面同时携带了主叫方的电话号码和SIP URI。更重要的是,在企业或多设备场景下,对方的“呈现身份 (Presented Identity)”可能与“网络地址 (Network Address)”并不完全相同。

为了让通话记录能够精确地反映IMS时代的这种复杂性和丰富性,传统的EFICI/EFOCI文件显得力不从心。为此,3GPP规范为它们设计了一对专属的、平行的“扩展档案”——EFICI-ExtEFOCI-Ext

  • EFICI-Ext (Incoming Call Information extension): 为呼入通话记录提供URI等扩展信息。

  • EFOCI-Ext (Outgoing Call Information extension): 为呼出通话记录提供URI等扩展信息。

它们与主通话记录文件一一对应,共同构成了一个更完整的通话事件画像。


1. “增强档案”:Ext文件的核心价值

EFICI-ExtEFOCI-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.

这段原文揭示了这对扩展文件的关键特性:

  1. 功能: 存储主文件EFICI/EFOCI无法存储的扩展信息

  2. 严格的对应关系: EFICI-Ext第N条记录,与EFICI第N条记录,是一一对应、严格绑定的。它们共同描述了同一次通话。

  3. 服务关联: 它们的存在与EF_UST中的服务n°106 (ICI/OCI Extension) 相关联。

它们主要解决了什么问题?

  1. 存储URI: EFICI/EFOCI的主记录只能存储BCD编码的数字。而EFICI-Ext/EFOCI-Ext可以存储可变长度的、基于UTF-8编码的URI字符串

  2. 区分不同身份: IMS信令中可能同时包含多个与对方身份相关的URI。例如,P-Asserted-Identity (网络侧验证过的真实身份) 和 From 头域 (主叫方自己声明的身份)。这对扩展文件可以分别存储这些不同的身份信息,提供更完整的通信上下文。

工作流程:

  1. IMS呼叫发生: 李想接到了一个来自sip:[email protected]的VoLTE来电。

  2. 写入主记录: 通话结束后,手机首先在EFICI的第5号记录中,写入这次通话的基础信息(如主叫号码+86138...、时间、时长等)。

  3. 写入扩展记录: 手机接着在EFICI-Ext同样是第5号记录中,写入这次通话的扩展信息。这些信息可能以TLV格式存储,例如:

  4. 读取与呈现:

    • 当李想查看通话记录时,手机读取EFICI的第5条记录,获取基础信息。

    • 手机接着读取EFICI-Ext的第5条记录,获取扩展信息。

    • 最终,手机UI上可能会这样显示这条通话记录:“project-alpha (+86138…)”,将URI和电话号码智能地结合起来,为李想提供了比单纯一个号码更丰富的上下文。


2. 灵活的“数据容器”:Ext文件结构与编码剖析

EFICI-ExtEFOCI-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. 从EFPBCExt文件:URI存储的演进

EFURI的章节中,我们提到个人电话本EFADN可以通过EFPBC文件来关联URI。现在,EFICI/EFOCI又有了专属的Ext文件来存储URI。这体现了USIM设计中对不同场景的精细化考量:

  • 电话本 (ADN/PBC/URI): 存储的是静态的、预设的联系人URI信息。

  • 通话记录 (ICI/OCI + Ext): 存储的是动态的、实际发生的每一次通信会话中所使用的URI。

这两套机制相辅相成。手机可以在通话记录中,将EFICI-Ext中记录的实际来电URI,与电话本中存储的预设联系人URI进行匹配,从而更准确地识别来电者身份。

总结:为IMS通话记录绘制的“高清画像”

EFICI-ExtEFOCI-Ext这对扩展文件,是USIM为了跟上IMS时代通信复杂性而进行的一次重要升级。它们通过引入灵活的TLV容器和对URI、PVI等新身份标识符的支持,将传统的通话记录从一张简单的“数字快照”,升级为了一幅信息丰富的“高清画像”。

  • 拥抱IP化: 提供了在通话记录中原生存储和处理URI的能力,是USIM全面支持IMS业务的基础。

  • 丰富了通信上下文: 通过存储PVI等多种身份标识,EFICI-Ext能够帮助用户清晰地区分不同身份的来电(如一卡多号),为多身份管理提供了数据支撑。

  • 精巧的扩展设计: 采用与主文件记录号严格对应的“平行文件”模式,在不破坏原有EFICI/EFOCI稳定结构的前提下,实现了功能的无缝扩展。

对于李想而言,当他的通话记录不再是冷冰冰的号码,而是能够清晰地显示“来自项目组project-alpha的呼叫”,或者标注出“打入副号”的来电时,他所体验到的这种更智能、更具上下文的通信管理,其背后正是EFICI-ExtEFOCI-Ext在为每一次IP通话,精心绘制和保存着那份独一无二的“增强档案”。


FAQ环节

Q1:EFICI-Ext/EFOCI-ExtEFEXT系列文件(如EFEXT5)有什么区别?

A1:它们都属于扩展机制,但扩展的维度和链接方式完全不同。

  • EFEXT系列: 是字段级的扩展,用于解决**“长度”**问题。它通过主记录中的一个Extension Identifier指针,来存储某个特定字段(如号码)的超长部分。

  • -Ext系列 (如EFICI-Ext): 是记录级的扩展,用于解决**“宽度”“类型”问题。它通过记录号的隐式对应**,为整个主记录提供一个全新的、平行的、用于存储不同类型数据(如URI)的“档案柜”。

前者是“接续”,后者是“补充”。

Q2:如果一次通话既有电话号码,又有SIP URI,它们分别存在哪里?

A2:它们会被分别存储:

  • 电话号码 (E.164格式): 存储在主文件EFICIEFOCIDialling Number字段中,采用BCD编码。

  • SIP URI (字符串格式): 存储在扩展文件EFICI-ExtEFOCI-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。

前者是“规则簿”,后者是“记事本”。