首页 › deep-tech › 图解VoLTE与IMS注册原理

图解VoLTE与IMS注册原理:一通电话背后的信令长征

你有没有想过一个问题:4G/5G网络是一个纯数据网络,那电话是怎么打出去的?

2G/3G时代,网络里有一条专门为语音修的“专属车道”——电路交换(CS)域。拨号时网络给你端到端独占一条64kbps的电路,通话质量稳定,但车道再闲别人也用不了。而LTE从设计之初就做了一个激进的决定:砍掉电路交换域,只留分组交换(PS)域,一切业务都走IP数据包。语音、短信、彩信,全部变成“数据”。

这带来一个根本性矛盾:语音不再是网络的“胎里带”能力,而变成了一种要靠信令协议在IP网络上临时搭建的服务。搭建这套服务的框架,就叫IMS(IP Multimedia Subsystem,IP多媒体子系统);在这套框架上跑语音的方案,就叫VoLTE(Voice over LTE)。

这篇文章就沿着“一通电话的生命周期”往下拆:从开机时的IMS注册,到拨号时的呼叫建立,再到通话中走出4G覆盖的续命方案SRVCC。看完你会发现,打电话这件事,在4G时代已经变成了一次精密的“信令长征”。


一、语音承载方案的演进:从独占车道到软件定义电话

先看全景。LTE之后,语音方案经历了一条“权宜之计 → 正解 → 下一代”的路线:

flowchart LR
    CS["2G/3G电路交换语音<br>上世纪90年代起"] --> CSFB["CSFB语音回落<br>随LTE一同出现"]
    CSFB --> VLTE["VoLTE<br>2012年首次商用"]
    VLTE --> VONR["VoNR<br>5G独立组网时代"]

几种方案的核心区别,用一张表看清楚:

方案 通话走的网络 基本原理 主要代价
2G/3G电路交换 CS域 端到端独占电路,像打专用内线电话 频谱效率低,无法与数据业务融合
CSFB(回落) 2G/3G CS域 手机驻留4G,打电话时“临时回老家” 接通慢数秒,通话期间4G数据中断
VoLTE 4G PS域(IMS) 语音变成IP数据包,SIP信令控制 需要部署完整的IMS核心网
EPS Fallback 5G→4G 5G上发起呼叫时回落到LTE跑VoLTE 增加接通时延,属过渡方案
VoNR 5G PS域(IMS) 语音直接承载在5G新空口上 要求5G覆盖与IMS就绪

VoLTE为什么是“正解”? 因为它让语音彻底成为数据网络里的一种普通业务:语音包和数据包共享同一条4G车道,网络用QoS机制(上一轮讲过的QCI体系)给语音包划出优先道;运营商不再需要维护两套核心网。据某百科VoLTE条目引用GSA的数据,到2019年8月全球已有194家运营商开通了VoLTE高清语音服务——它早已不是新事物,而是现网语音的绝对主力。


二、CSFB:一个聪明的“绕路”方案

在IMS还没部署好的年月,运营商手里已经有了 LTE 数据网,但语音怎么办?答案简单粗暴:打电话时把手机踢回2G/3G网络。这就是CSFB(Circuit Switched Fallback,电路交换回落)。

它的前提是手机开机时做过一次“联合附着”:在4G的MME注册的同时,通过SGs接口“顺带”在传统交换机(MSC)也挂了个号。这样网络知道你“人在4G,户口还在2G”。当你要打电话时:

sequenceDiagram
    participant UE as 手机
    participant eNB as 4G基站
    participant MME as MME
    participant MSC as 2G/3G交换机

    UE->>MME: 扩展业务请求(我要打电话)
    MME->>MSC: CSFB指示(这个用户要回落)
    MME->>eNB: 释放RRC连接并指示重定向
    eNB->>UE: RRC释放(携带2G/3G频点信息)
    Note over UE,eNB: 手机切换到2G/3G小区
    UE->>MSC: 在CS域发起普通呼叫
    Note over MSC: 之后就是传统2G电话流程

CSFB最大的痛点是时延:回落要经过连接释放、异系统测量/重定向、2G/3G位置区更新等步骤,接通时间比2G原生长了几秒。而且通话期间手机占用着2G/3G射频,4G数据业务基本中断——这就是为什么早年用iPhone打VoLTE之前的电话,刷网页会突然卡住。CSFB是典型的“过渡 архитектуры”:能用,但谁都知道它是权宜之计。


三、IMS:把电话变成“软件服务”的操作系统

理解VoLTE之前,必须先理解IMS的设计哲学。

IMS在1999年由行业论坛3G.IP构思,随后被3GPP在Release 5(约2002年)首次标准化——注意这个时间点:IMS比LTE年长近十岁,它原本是为3G的GPRS设计的。这个细节很能说明IMS的设计思想:它刻意与接入网解耦。不管你从4G、5G、Wi-Fi还是有线宽带接入,IMS都不关心,它只负责在IP层之上完成“会话控制”——你和谁通话、用什么编解码、媒体流走哪条路。

打个比方:

IMS大量借用互联网现成协议,核心是IETF的SIP(会话初始协议)——就是你打网络电话、视频会议软件底层也常用的信令协议。IMS做的,是把松散的互联网VoIP改造成有鉴权、有QoS、有计费、可运营的“电信级”体系。

IMS的三大金刚:CSCF

IMS核心里最关键的角色是一组叫CSCF(呼叫会话控制功能)的SIP服务器,它们各司其职:

网元 类比 核心职责
P-CSCF 大楼前台保安 用户接触的第一个SIP代理,所有信令必经之路;负责安全防护(IPsec/TLS)、信令压缩、向PCRF申请QoS
I-CSCF 交换机总机 归属域的“入口”,地址公布在DNS里;查询HSS为用户分配S-CSCF
S-CSCF 真正办业务的柜员 信令中枢:执行注册绑定、鉴权决策、按用户签约触发增值业务(iFC)、路由会话

它们与用户数据库HSS(归属用户服务器,可理解为“户籍档案馆”)的协作关系如下:

flowchart TB
    UE["手机UE"] -->|SIP信令 Gm接口| P["P-CSCF<br>前台代理"]
    P -->|Mw接口| I["I-CSCF<br>域入口"]
    I -->|查询该用户归谁管| HSS["HSS<br>用户数据库"]
    I -->|转交注册| S["S-CSCF<br>信令中枢"]
    S -->|Diameter Cx接口<br>取鉴权数据和签约| HSS
    S -->|触发增值业务 ISC接口| AS["应用服务器<br>彩铃/呼叫转移等"]
    P -->|申请语音专用QoS| PCRF["PCRF<br>策略控制"]

三个值得体会的设计细节:

  1. P-CSCF可以不在归属国。漫游时P-CSCF通常位于拜访网络——这是IMS“水平分层”思想的体现:接入无关、拜访地就近接入,但S-CSCF永远在归属网络,管你的是“户口所在地”。
  2. I-CSCF是可伸缩的弹性入口。它的地址通过DNS的NAPTR/SRV记录对外发布,外部网络永远只需要知道域名,不知道内部有几台服务器。
  3. S-CSCF的业务触发用iFC(初始过滤规则)实现。你在HSS里的签约数据带着一串“触发条件→应用服务器”的规则,注册成功时下载到S-CSCF。之后凡是匹配条件的新会话(比如被叫),S-CSCF就先把请求转给对应AS(彩铃服务器、呼叫转移服务器)过一道再继续路由。这是典型的“控制与业务分离”:换彩铃不用改核心网,改签约数据就行。

四、打电话之前:身份体系与P-CSCF发现

在讲注册流程前,先解决两个前置问题:你以什么身份注册?向谁注册?

双重身份:IMPI与IMPU

IMS给每个用户发了两个(套)身份,这是理解IMS信令的基础:

属性 IMPI(私有身份) IMPU(公共身份)
类比 银行卡密码对应的账号凭证 印在名片上的电话号码
用途 注册、鉴权(只在网上流动) 被别人呼叫、显示给对方
形态 user.name@运营商域名 SIP URI(sip:[email protected])或Tel URI(tel:+8613...)
数量 每用户一个 可多个(家庭共享号码就是多个终端共享一个IMPU)

这个设计和SIP协议一脉相承:对内用凭证,对外用名片。你在抓包里看到REGISTER消息里带Authorization字段的,用的就是IMPI;被叫INVITE的Request-URI里写的,是对方的IMPU。

P-CSCF发现:进门先找保安

注册前手机必须知道P-CSCF的IP地址,称为“P-CSCF发现”。常见途径有三种:通过DHCP+DNS动态获取;运营商在开卡/终端配置里预置;或存储在USIM卡的ISIM应用里。发现机制本身不复杂,但它却是现网VoLTE故障的高发点——后面调试一节会再提到。


五、核心流程一:IMS注册——为什么要“挑战”两次

注册是VoLTE的第一战,也是问题最多的一环。它的精髓在于双向鉴权:不仅网络要验明“你是你”(防伪基站骗话费),你的手机也要验明“网络是网络”(防钓鱼网络套取鉴权信息)。

完整的注册时序如下:

sequenceDiagram
    participant UE as 手机
    participant P as P-CSCF
    participant I as I-CSCF
    participant S as S-CSCF
    participant HSS as HSS

    UE->>P: REGISTER(IMPI与IMPU,暂无鉴权信息)
    P->>I: 转发REGISTER
    I->>HSS: 查询该用户默认的S-CSCF
    HSS-->>I: 返回S-CSCF地址
    I->>S: 转发REGISTER
    S->>HSS: 取该用户的鉴权向量
    HSS-->>S: 返回鉴权五元组
    S-->>UE: 401 Unauthorized(携带挑战值)
    Note over UE,P: 手机校验网络身份并计算鉴权响应,建立IPsec安全通道
    UE->>S: 第二个REGISTER(携带鉴权响应,走IPsec)
    S->>HSS: 校验通过,下载用户签约数据
    S-->>UE: 200 OK(注册成功)
    S->>S: 按签约iFC向应用服务器发起第三方注册

为什么一个注册要发两次REGISTER? 这是HTTP式“挑战-响应”鉴权(和401机制同源,SIP借用了它的思路)的自然结果,逻辑上分三步:

  1. 第一次REGISTER:手机报到“我叫IMPIxxx”,但还没带任何证明。S-CSCF向HSS索取一组鉴权向量——里面有关键的挑战值RAND、供手机验证网络真伪的AUTN,以及随后用于加密信令的密钥材料。
  2. 401挑战:服务器把这些挑战值丢回给手机,潜台词是“空口无凭,解这道题”。手机用SIM/USIM卡里的根密钥校验AUTN——这一步同时完成了手机对网络的鉴权——然后算出响应值RES。与此同时,手机和P-CSCF用协商出的密钥建立IPsec安全通道,之后所有SIP信令都加密传输。
  3. 第二次REGISTER:带上RES重新注册。S-CSCF比对RES与自己从HSS算出的期望值XRES,一致则注册成功,返回200 OK,并把自己的用户档案(含iFC业务触发规则)从HSS下载下来。

这里有个漂亮的密码学设计:根密钥K永远不会离开SIM卡。网上传输的只有挑战值和响应值,即使信令被完整窃听,攻击者也推不出密钥——这个思路和上一轮讲的5G认证密钥层级是同源的,IMS鉴权可以看作它在业务层的姊妹篇。

注册成功不等于完事。还有两件事:一是注册有生命周期(默认约一小时量级),手机要定期重注册续约;二是S-CSCF会替你向应用服务器发起第三方注册(third-party REGISTER),告诉彩铃平台“这位用户上线了,有呼入请走我这”。


六、核心流程二:呼叫建立——信令与媒体的分离之舞

注册完成后,拨号时发生什么?VoLTE呼叫建立是SIP协议的经典舞台,核心思想是“先谈条件,再接通,媒体绕路走”。

sequenceDiagram
    participant A as 主叫手机
    participant AI as 主叫侧IMS核心
    participant BI as 被叫侧IMS核心
    participant B as 被叫手机

    A->>AI: INVITE(SDP提议:我支持AMR-WB等编解码)
    AI->>BI: 路由到被叫归属网络
    BI->>B: INVITE
    B-->>A: 183 会话进展(SDP应答:选AMR-WB,附预条件)
    Note over A,AI: 主叫侧触发建立QCI 1语音专用承载
    A->>B: PRACK与UPDATE(确认双方资源就绪)
    B-->>A: 180 振铃(此时被叫手机开始响)
    B-->>A: 200 OK(被叫摘机)
    A->>B: ACK(通话建立)
    Note over A,B: 双向RTP语音包点对点直传,不经过S-CSCF

三个关键设计值得展开:

其一,编解码协商(SDP)。 INVITE和183里的SDP消息体携带双方支持的编解码列表,最终交集通常是AMR-WB(自适应多速率宽带,即“高清语音HD Voice”)——16kHz采样,主打码率约23.85kbps;更新的终端间还会协商EVS,码率范围5.9~128 kbit/s,可在容量与音质间动态权衡(以上参数引自某百科VoLTE条目)。注意协商方向是“各自报家底,取公共子集”,这保证了新旧终端互通。

其二,预条件机制(precondition)——被叫为什么“响得晚”? 传统VoIP是先振铃、接通后才发现媒体不通(比如对端NAT挡住了)。VoLTE反过来:183之后双方先通过PRACK/UPDATE消息确认“我的无线资源准备好了”——具体就是QCI 1专用承载是否建立成功(P-CSCF通过Rx接口向PCRF申请,PCRF指挥PGW给手机激活一条GBR级语音承载,这是第4轮QoS原理的直接应用)。全部就绪,被叫才振铃。这就是VoLTE接通后几乎从不断话的原因之一:响铃即是可通话的承诺。

其三,媒体与信令分离。 200 OK之后,RTP语音包在两部手机之间(通常经媒体网关/SBC的媒体面)直接流动,不经过任何CSCF。CSCF是“牵线的”,不是“传话的”。粗算一下媒体包的节奏:

$$ \text{打包周期} = 20\,\text{ms} \Rightarrow \text{每秒} \, \frac{1}{0.02} = 50 \,\text{个RTP包} $$

以AMR-WB 23.85kbps计,每包载荷约 $23850 \times 0.02 / 8 \approx 60$ 字节。包很小、频率很高,所以语音承载必须是小包高优先级待遇——这正是QCI 1存在的意义,也解释了为什么语音对丢包和时延抖动远比网页下载敏感(业界经验:单向端到端时延控制在150ms内,通话感受良好)。


七、SRVCC:通话中走出LTE覆盖的“接力棒”

VoLTE有个先天难题:4G覆盖有限,通话进行到一半走出LTE覆盖怎么办?总不能掉话吧。早期的答案是SRVCC(单射频语音连续性):把正在进行的VoLTE通话“接力”给2G/3G电路域。

之所以叫“单射频”,是因为VoLTE手机只有一套射频收发链路,同一时刻只能盯一个网络——不能像老式双待机那样同时锁4G和2G。所以接力必须精确编排:手机上报邻区测量→基站和MME判断需要切换→MME通过事先从HSS拿到的会话转移号(STN-SR)通知目标交换机→交换机向IMS发出带有SIP信息的新 INVITE,把媒体锚点从4G侧“搬家”到2G/3G侧→最后空口才切换。整个设计的要点是:先在目标网络把话路接好,再动射频——切换瞬间用户无感。

随着2G/3G退网,SRVCC正逐渐退出历史舞台,但它的精神传人在5G时代依然活跃:EPS Fallback。5G初期VoNR未就绪时,用户在5G上拨号,网络把通话(甚至注册态)整体“降落”到LTE走VoLTE——同样是“语音在哪里成熟就在哪里承载”的务实思路。可以说,从CSFB到SRVCC再到EPS Fallback,移动网络语音演进史的主线始终是同一个命题:在语音能力与网络能力的时间差里,如何不中断用户的服务。


八、现网实战:工程师在哪用得上这些原理

调试场景1:VoLTE打不出电话,先查注册态。 手机设置里(或Android隐藏的Radio Info调试菜单,常见进入方式为拨号盘输入 *#*#4636#*#*,不同机型路径不同)可以查看"IMS Registration"状态。若显示未注册,排查链路依次是:4G默认承载是否通(ping不出IMS APN则查APN配置)→ P-CSCF发现是否成功(抓包看是否有SIP REGISTER发出)→ REGISTER是否收到401(收到说明信令通了,问题多在鉴权)→ 第二个REGISTER后是否返回200。

调试场景2:会看SIP响应码,问题定位快一半。 几个高频码:401(正常,注册挑战必经);403(鉴权失败或用户未开通VoLTE,查HSS签约);486 Busy(被叫忙);408(超时,多为承载或安全通道问题);503(IMS网元过载/故障)。看到403不要去查无线,那是核心网/签约问题——这就是“分层定位”的基本功。

调试场景3:接通慢,量“信令长征”的每一步。 VoLTE接通时延可拆成:IMS注册耗时(开机一次,不影响单次呼叫)+ INVITE到180振铃的耗时(含预条件确认和专用承载建立)+ 振铃到摘机(人为因素)。若工程测试中振铃前耗时异常,重点看QCI 1专用承载建立是否卡在PCRF/PGW环节。

常见误解三则:


常见问题

Q: VoLTE和VoNR的区别是什么? A: 承载空口不同,控制层是同一套IMS。VoLTE=IMS语音跑在4G LTE上;VoNR=IMS语音跑在5G NR上。IMS的注册、呼叫流程对两者几乎完全一致,差别在接入网和5G时代的QoS参数体系(5QI替代QCI)。5G建设初期的EPS Fallback,就是“IMS已就绪、VoNR未就绪”阶段的折中。

Q: CSFB和EPS Fallback都是“回落”,有何本质不同? A: 回落的目标域不同。CSFB回落到2G/3G电路交换域,通话走传统语音信道,IMS根本不参与;EPS Fallback回落到4G分组域,通话仍由IMS/SIP控制(就是一次VoLTE通话),只是换了条空口。前者是“换一种电话制式”,后者是“换一条数据通道”。

Q: 为什么IMS注册要用401挑战发两次REGISTER,一次不行吗? A: 一次注册无法同时完成三件事:网络验证用户(需要挑战-响应)、用户验证网络(AUTN防伪基站)、协商加密密钥建立IPsec通道(需要先交换随机数材料)。挑战-响应天然要求“先发问、后作答”两个来回,这是对称密钥不在线上传输前提下的必然设计。

Q: Wi-Fi Calling(VoWiFi)和VoLTE是什么关系? A: 同一个IMS,不同的接入网。VoWiFi把Wi-Fi当作一种“接入网”,手机通过IPsec隧道(ePDG网关)接入归属IMS,之后的注册和呼叫流程与VoLTE完全一致——这正是IMS“接入无关”设计思想的最佳证明:换到Wi-Fi,服务台系统还是那一套。

Q: 为什么VoLTE被叫振铃比2G“慢半拍”? A: 因为预条件机制。VoLTE在振铃前要完成编解码协商、双方专用承载建立、资源确认(PRACK/UPDATE),这些步骤换来的是“接通即高质量、几乎不回落”。2G没有这些动作所以振铃快,但接通瞬间的质量问题只能事后补救。这是一次典型的“时延换可靠性”设计取舍。


参考来源

  1. GSMA IR.92《IMS Profile for Voice and SMS》 — VoLTE的IMS精简配置文件,定义了语音与短信所需的最小IMS功能集(经上述维基条目引用,属文献线索)
  2. Camarillo, Gonzalo; García-Martín, Miguel A.《The 3G IP Multimedia Subsystem (IMS): Merging the Internet and the Cellular Worlds》Wiley — IMS经典教材,SIP与电信网融合视角的深入阐述
  3. Poikselkä, Miikka 等《Voice over LTE: VoLTE》Wiley, 2012 — VoLTE专著,本文呼叫建立与承载机制部分的教学参考

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入