好的,我们继续解读规范,进入移动通信的“大脑”——IMS核心网的身份世界。

深度解析 3GPP TS 23.003:13 IMS核心网的号码、地址与身份标识体系

本文技术原理深度参考了3GPP TS 23.003 V18.7.0 (2024-09) Release 18规范中,关于“Chapter 13 Numbering, addressing and identification within the IP multimedia core network subsystem”的核心章节。本文旨在为读者全面揭示支撑VoLTE、视频通话、富媒体消息等现代通信业务的IP多媒体子系统(IMS)中,那一套复杂而精妙的身份标识体系。

在之前的章节中,我们已经深入了解了移动网络如何识别“人”(用户)、“物”(设备)和“地”(位置),这些是支撑起基础通话和移动性的基石。然而,当我们从传统的电路交换语音通话,迈入今天无处不在的VoLTE高清语音、视频通话、实时消息(RCS)的世界时,我们实际上已经进入了一个由IP技术构建的、更为丰富和强大的“服务层”——IP多imedia Subsystem (IMS)。

IMS是运营商网络的“大脑”和“应用商店”,它将所有的通信行为都转化为IP数据包和应用层信令(主要是SIP协议)。要在这个纯IP的世界里,让每一次呼叫、每一条消息都能找到正确的对象,就需要一套全新的、更为灵活和强大的身份标识体系。

今天,我们将再次邀请我们的老朋友,跨国企业高管小玲,来体验一次现代化的跨国多媒体会议。她将使用她的笔记本电脑和手机同时加入会议,与全球各地的同事进行协作。她的这次看似普通的通信行为,将牵引出IMS世界中各种“身份”的协同工作,包括私有身份、公共身份、服务身份、设备实例等等。让我们一起,揭开IMS身份体系的神秘面纱。

1. 万物皆IP:IMS标识体系的基石——域名 (章节 13.1 & 13.2)

小玲在上海的办公室,准备加入一个由公司总部(位于德国)发起的全球项目启动会。她打开笔记本电脑上的企业通信客户端,点击了“加入会议”。在这一瞬间,她的客户端软件首先要做的,就是找到她归属运营商(中国移动)的IMS网络“大使馆”。这个“大使馆”的地址,就是一个域名。

1.1 IMS世界的“总域名” - .3gppnetwork.org

For more information on the “.3gppnetwork.org” domain name and its applicability, see Annex D of the present document. For more information on the “.invalid” top level domain see IETF RFC 2606.

规范开篇就点明了IMS标识体系的一个重要基础:.3gppnetwork.org 这个特殊的顶级域名。它是由GSMA管理的、专用于运营商间IP网络互通的域名。IMS中的许多标识,都将构建在这个根域名之上。

1.2 寻找归属网络:Home Network Domain Name

13.2 Home network domain name The home network domain name shall be in the form of an Internet domain name… For 3GPP systems, if there is no ISIM application, the UE shall derive the home network domain name from the IMSI as described in the following steps:

  1. Take the first 5 or 6 digits… separate them into MCC and MNC; if the MNC is 2 digits then a zero shall be added at the beginning.
  2. Use the MCC and MNC derived in step 1 to create the “mnc.mcc.3gppnetwork.org” domain name.
  3. Add the label “ims.” to the beginning of the domain.

小玲的客户端首先需要定位IMS网络的入口,即P-CSCF(代理CSCF)。这个定位过程的第一步,就是构建一个指向归属IMS网络的域名。这个域名就是Home Network Domain Name

规范给出了基于IMSI的构建方法:

  1. 解析IMSI:从SIM卡中读取IMSI(例如,小玲的IMSI是460001234567890),提取出MCC(460,代表中国)和MNC(00,代表中国移动)。
  2. 构建运营商域:按照mnc<MNC>.mcc<MCC>.3gppnetwork.org的格式,拼接出运营商的专属域名,即 mnc000.mcc460.3gppnetwork.org
  3. 添加业务前缀:在最前面加上ims.标签,代表这是IMS业务。

场景串联: 小玲的客户端通过以上步骤,自动生成了她的IMS归属网络域名:ims.mnc000.mcc460.3gppnetwork.org

随后,客户端会利用这个域名进行DNS查询,找到IMS网络的“大门”——P-CSCF的IP地址。至此,小玲的设备才算真正找到了通往IMS世界的大门。

2. 注册与登录:IMPI vs IMPU - “我是谁”与“我叫什么” (章节 13.3 & 13.4)

找到了大门,下一步就是“验明身份,登记入住”,这个过程就是IMS注册。在这里,IMS引入了两个最核心、也最容易混淆的身份概念:私有用户身份(IMPI)公共用户身份(IMPU)

2.1 IMPI (Private User Identity) - 你的“登录账号”

13.3 Private User Identity The private user identity shall take the form of an NAI, and shall have the form username@realm as specified in clause 2.1 of IETF RFC 4282. …If the private user identity is not known, the private user identity shall be derived from the IMSI. The result will be a private user identity of the form “@ims.mnc.mcc.3gppnetwork.org”.

IMPI是用户在IMS网络中唯一的、永久的、用于鉴权和认证的身份。它对用户是保密的,绝不会在公开场合使用。可以把它类比为你的“银行账号”或“微信ID”,它是后台系统用来识别你这个人的唯一凭证。

  • 格式:IMPI采用NAI(网络接入标识符)格式,即 username@realm
  • 生成:在没有ISIM(IMS SIM卡)的情况下,IMPI由IMSI和归属网络域名组合而成。username部分就是完整的IMSI数字串,realm部分就是我们刚刚构建的Home Network Domain Name。

场景串联: 小玲的客户端在向IMS网络发起注册(REGISTER)请求时,使用的“用户名”就是她的IMPI:[email protected]。网络中的HSS/AUSF(归属签约服务器/鉴权服务器)会使用这个IMPI来查找小玲的签约数据和鉴权密钥,完成对她的身份验证。

2.2 IMPU (Public User Identity) - 你的“通信名片”

13.4 Public User Identity A Public User Identity is any identity used by a user within the IMS subsystem for requesting communication to another user. The Public User Identity shall take the form of either a SIP URI (see IETF RFC 3261) or a Tel URI (see IETF RFC 3966).

IMPU是用户在IMS世界中公开的、可被路由的地址。它是别人用来找到你、与你通信的地址。可以把它类比为你的“手机号”或“Email地址”。

  • 格式:IMPU可以有两种主要格式:
    1. Tel URI (电话统一资源标识符):格式为 tel:+86138xxxxxxxx。它直接对应用户的E.164电话号码。
    2. SIP URI (会话发起协议统一资源标识符):格式为 sip:username@domain,看起来就像一个电子邮件地址,例如 sip:[email protected]

IMPI与IMPU的核心关系: 一个IMPI(代表一个签约用户)可以绑定一个或多个IMPU。这正是IMS强大灵活性的体现。

场景串联: 小玲的签约数据(在HSS中)显示,她的IMPI(460001234567890@...)绑定了两个IMPU:

  1. tel:+86138xxxxxxxx (她的手机号)
  2. sip:[email protected] (她的企业统一通信账号)

这意味着,当别人拨打她的手机号,或者在企业通信录里点击她的名字(背后是SIP URI)时,IMS网络都能通过查询HSS,最终定位到她的IMPI,从而找到她这个人。

2.3 多设备登录的奥秘

小玲的笔记本电脑和手机都登录了她的企业通信账号。当有人呼叫sip:[email protected]时,为什么两台设备会同时振铃?

这涉及到IMS注册的另一个关键:一个IMPI可以同时在多个设备上注册。网络会为每一次注册维护一个独立的联系地址(Contact Address)。当有呼叫指向小玲的任何一个IMPU时,IMS核心网(S-CSCF)会查找与该IMPU关联的IMPI,然后找到该IMPI当前所有的注册联系地址(即小玲的笔记本电脑和手机),并将呼叫同时转发给这两个设备。

这就是所谓的“一号多终端”功能,其基础正是IMPI与IMPU的分离,以及多点注册机制。

3. 呼叫“服务”而非“人”:PSI (章节 13.5)

小玲要参加的全球项目启动会,它本身不是一个人,而是一个服务——一个多方通话的会议室。要加入这个会议,就需要一个指向这个服务的地址。这个地址就是PSI(Public Service Identity - 公共服务标识)

13.5 Public Service Identity (PSI) The public service identity shall take the form of either a SIP URI or a Tel URI. A public service identity identifies a service, or a specific resource created for a service on an application server.

PSI的格式与IMPU完全相同,但它标识的对象是服务,而非用户

  • 场景串联:这次会议的PSI是 sip:[email protected]。小玲的客户端点击“加入会议”,实际上就是向这个PSI发起了一个SIP INVITE(呼叫邀请)请求。

IMS网络看到这个地址后,知道它不是一个普通用户,而是一个服务。于是,它会将这个请求路由到一个特定的应用服务器(Application Server),即负责提供多方通话功能(MCU - 多点控制单元)的会议服务器。

13.10 Default Conference Factory URI for MMTel The Default Conference Factory URI for MMTel shall take the form of a SIP URI… with a host portion set to the home network domain name… prefixed with “conf-factory.”. The user portion shall be set to “mmtel”.

那么,这个会议室(PSI)是如何被创建出来的呢?通常是通过一个“会议工厂”(Conference Factory)。规范定义了一个默认的会议工厂URI,例如 sip:[email protected]。会议组织者可以向这个地址发送请求,动态地创建一个会议室并获得一个PSI。

IMPU与PSI的区别是IMS体系中的一个核心要点:IMPU指向人,PSI指向服务。

4. 标识“设备实例”与“配置” (章节 13.8 & 13.9)

IMS体系的精细化管理,还体现在对每一次设备注册和用户配置的标识上。

4.1 Instance ID - 区分你的每一台设备

13.8 Instance-ID An instance-id is a SIP Contact header parameter that uniquely identifies the SIP UA performing a registration. When an IMEI is available, the instance-id shall take the form of a IMEI URN (see RFC 7254). The format… is “urn:gsma:imei:“… If no IMEI is available, the instance-id shall take the form of a string representation of a UUID as a URN…

我们之前提到,小玲的笔记本和手机可以同时注册。网络需要一种方法来唯一区分这两个注册实例。这就是Instance ID的作用。它通常在SIP REGISTER消息的Contact头域中携带。

  • 对于手机等具备IMEI的设备,Instance ID通常由IMEI转换而来,形成一个URN(统一资源名称),如 urn:gsma:imei:90420156-025763-0
  • 对于笔记本电脑等没有IMEI的设备,客户端会生成一个全球唯一的UUID(通用唯一标识符)作为Instance ID。

通过Instance ID,网络不仅知道小玲在线,还精确地知道她是通过哪几台具体的设备在线的。这对于消息同步、设备能力管理等高级功能至关重要。

4.2 XCAP Root URI - 你的“云端设置”地址

小玲希望设置呼叫转移:当她在会议中时,所有打给她手机号的电话都自动转接到她的助理。这个“呼叫转移规则”存储在哪里?答案是在网络云端的XCAP服务器上。

13.9 XCAP Root URI XCAP Root URI is an HTTP URI that represents the XCAP Root. … The XCAP Root URI, as defined in IETF RFC 4825, is an HTTP URI that should have the following format: “http://xcap.

XCAP(XML Configuration Access Protocol)是一种允许用户通过HTTP协议管理自己业务配置的协议。小玲手机上的设置界面,背后就是向XCAP Root URI这个地址发送HTTP请求,来修改她在云端的业务配置。这个URI的构建方式与IMS域名类似,通常是 http://xcap.ims.mnc000.mcc460.3gppnetwork.org

5. 总结:一张图看懂IMS身份体系

至此,我们已经跟随小玲的会议体验,解构了IMS中最重要的几个身份标识。它们之间的关系可以用下图来概括:

+-----------------------------------+
|          签约用户 (小玲)          |
+-----------------------------------+
                 |
                 | (拥有唯一的)
                 v
+-----------------------------------+
|    IMPI (私有身份 - 登录账号)     |  <-- 用于鉴权和内部识别
| 460... @ ims.mnc000...             |
+-----------------------------------+
      |           ^
      | (绑定)     | (外部呼叫通过此定位到IMPI)
      v           |
+-----------------------------------+
|       IMPU (公共身份 - 通信名片)    |  <-- 用于被他人呼叫
| - tel:+86138...                   |
| - sip:[email protected]      |
+-----------------------------------+
      |
      | (在多个设备上注册)
      v
+----------------------+   +----------------------+
|  注册实例1 (手机)     |   |  注册实例2 (笔记本)   |
| Contact: <sip:...>   |   | Contact: <sip:...>   |
| Instance ID: <IMEI>  |   | Instance ID: <UUID>  |
+----------------------+   +----------------------+

  • 一个用户拥有一个唯一的IMPI
  • 一个IMPI可以绑定多个IMPU,作为其公开的联系地址。
  • 外部世界通过呼叫IMPU来联系该用户。
  • 该用户可以使用其IMPI在多个设备上同时注册,每一个注册由一个Instance ID唯一标识。
  • 此外,还有指向服务的PSI,以及用于管理云端配置的XCAP URI等。

这套体系,以其身份与地址分离、用户与服务分离、用户与设备分离的设计哲学,构建了一个极其灵活、强大且可扩展的多媒体通信平台,完美支撑了我们今天丰富多彩的实时通信生活。


FAQ - 常见问题解答

Q1:IMPI(私有身份)和IMPU(公共身份)最核心的区别是什么?为什么需要这样区分? A1:最核心的区别是用途和可见性

  • IMPI对内的、保密的,用于认证和计费。它像你的身份证号,只在需要验明正身的后台系统中使用。
  • IMPU对外的、公开的,用于被呼叫和路由。它像你的手机号或邮箱,是别人联系你的地址。 这样区分的好处是:1) 安全:将认证身份与公开地址分离,保护了用户的核心凭证。2) 灵活:一个用户(一个IMPI)可以拥有多个公共地址(多个IMPU),如个人号、工作号、临时号等,并将它们关联到同一个人身上,实现统一管理。

Q2:我的手机号(Tel URI)和企业邮箱(SIP URI)都可以作为IMPU,它们有什么不同? A2:它们都是合法的IMPU,主要区别在于命名空间和应用场景

  • Tel URI (tel:+...) 基于全球统一的E.164电话号码体系,可以与传统的电话网络(PSTN)无缝互通。任何人用任何电话都能拨打。
  • SIP URI (sip:...@...) 基于互联网域名体系,更像一个电子邮件地址。它在纯IP环境中非常灵活,易于记忆和企业内部管理,但在与传统电话网互通时,通常需要通过ENUM等机制进行号码解析。 在企业融合通信中,将两者同时绑定给一个用户是非常常见的做法。

Q3:PSI(公共服务标识)和IMPU(公共用户标识)格式一样,网络是如何区分它们的? A3:网络主要通过HSS/HLR中的签约数据来区分。当一个SIP/Tel URI被用于发起呼叫时,IMS核心网(I/S-CSCF)会查询HSS。

  • 如果HSS返回的数据表明这个URI关联的是一个用户签约数据(包含IMPI等),那么网络就视其为IMPU,并按用户呼叫流程处理。
  • 如果HSS返回的数据表明这个URI关联的是一个应用服务器的触发规则,那么网络就视其为PSI,并将呼叫路由到相应的应用服务器(如会议服务器、IVR服务器)。

Q4:为什么我的手机和电脑可以同时接到同一个号码的VoLTE/视频电话? A4:这正是IMS身份体系强大之处。你的手机号(一个IMPU)在网络后台绑定了你的唯一签约身份(IMPI)。你用手机和电脑分别登录时,都是使用了同一个IMPI进行了两次独立的注册。网络(S-CSCF)会记录下这两个注册(每个都有唯一的Instance ID和IP地址)。当有人呼叫你的手机号时,网络找到你的IMPI,发现它有两个活跃的注册点,于是就同时向你的手机和电脑发起呼叫邀请(INVITE),实现了“一号多终端”同时振铃。

Q5:Instance ID和IMEI是什么关系?它有什么用? A5:Instance ID是用于唯一标识一次注册会话的标识符,而IMEI是物理设备的标识符。在具备IMEI的设备上(如手机),Instance ID通常是基于IMEI生成的。 它的核心作用是区分来自同一用户的不同设备的注册。如果没有Instance ID,当你的手机和Pad都登录同一个账号时,后一次注册可能会覆盖前一次,导致只有一台设备能接到电话。有了Instance ID,网络可以清晰地维护“用户A-手机A”和“用户A-PadB”两个并存的会话,从而实现多设备协同、消息同步等高级功能。