你有没有想过一个问题: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高清语音服务——它早已不是新事物,而是现网语音的绝对主力。
在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是典型的“过渡 архитектуры”:能用,但谁都知道它是权宜之计。
理解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(呼叫会话控制功能)的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>策略控制"]
三个值得体会的设计细节:
在讲注册流程前,先解决两个前置问题:你以什么身份注册?向谁注册?
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的IP地址,称为“P-CSCF发现”。常见途径有三种:通过DHCP+DNS动态获取;运营商在开卡/终端配置里预置;或存储在USIM卡的ISIM应用里。发现机制本身不复杂,但它却是现网VoLTE故障的高发点——后面调试一节会再提到。
注册是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借用了它的思路)的自然结果,逻辑上分三步:
这里有个漂亮的密码学设计:根密钥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内,通话感受良好)。
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没有这些动作所以振铃快,但接通瞬间的质量问题只能事后补救。这是一次典型的“时延换可靠性”设计取舍。
本文由「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 等场景全覆盖。
