先从一个类比开始。传统的电话网络像一个专车服务:你拨号时,网络从你家到对方家之间铺一条独占的通道——2G时代是一条物理时隙,3G时代是一个专用信道。这辆车从通话开始到你挂机,全程只服务你们两个人,哪怕中间你一句话不说,通道也空着等你。这就是电路交换:先建立连接,再通话,资源独占,质量稳定,代价是利用率极低。
而数据网络是拼车逻辑(分组交换):所有数据拆成一个个包裹,和大家共享道路,谁有货谁上路。利用率高,代价是时延抖动、丢包都可能发生。
历史上这两张网是分开运营的:2G/3G时代,打电话走电路交换域,上网走分组交换域,手机里实际上住着“两套系统”。到了4G LTE,情况变了——LTE网络从设计之初就砍掉了电路交换域,只保留分组域,所有业务统一用IP包承载。这个决定非常好理解:维护两张并行网络、两套设备、两拨运维的成本太高了,全IP化是大势所趋。
但它留下一道难题:语音怎么办? 用户可以容忍网页慢半秒,却不能容忍电话打不通。电话是运营商的招牌业务、救命业务(紧急呼叫),不可能因为网络升级就消失。于是过去十五年,语音业务上演了一场持续的技术搬家——从专车网络,逐步搬进拼车网络。本文就讲清楚这次搬家的三个核心问题:语音搬到哪去了(IMS)、怎么登记入户(注册信令)、搬家路上的过渡方案(CSFB、EPS Fallback)。
在深入原理前,先用一张图和一张表把整个演进脉络立起来:
flowchart TD
CS["2G 3G 电路交换语音"] --> CSFB["4G 初期回落 2G 3G"]
CS --> SVLTE["双待机双射频"]
CSFB --> VOLT["VoLTE 语音上数据网"]
SVLTE --> VOLT
VOLT --> EPSFB["5G 初期回落 4G"]
VOLT --> VONR["VoNR 全程 5G"]
EPSFB --> VONR
| 路线 | 语音怎么走 | 出现背景 | 主要短板 |
|---|---|---|---|
| 电路交换(CS) | 独占信道,端到端专车 | 2G/3G时代唯一选择 | 资源利用率低,与全IP网并行维护两套网 |
| 双待机(SVLTE) | 手机两套射频,语音走2G/3G、数据走4G | 4G初期部分运营商的过渡方案 | 手机成本高、功耗高,射频干扰难做 |
| CSFB 回落 | 4G待机,打电话时先“回落”到2G/3G | 4G初期主流过渡方案 | 每次通话多几秒回落时延,体验割裂 |
| VoLTE | 语音变IP包,走IMS,配GBR专用承载 | 4G成熟期的目标方案 | 需要部署IMS,覆盖不足时靠SRVCC续命 |
| EPS Fallback | 5G待机,打电话回落到4G用VoLTE | 5G独立组网初期主流方案 | 通话瞬间图标变4G,切换有一次短暂顿挫 |
| VoNR | 语音全程走5G空口+5G核心网+IMS | 5G成熟期的目标方案 | 需要IMS与5G核心网打通、覆盖评估完善 |
看这张表会发现一个有趣的规律:每次换代,都先让语音“借道”老网络(CSFB、EPS Fallback),等新网络成熟后再搬回来(VoLTE、VoNR)。 这不是技术偷懒,而是工程理性:语音是命脉业务,宁可用体验上的小妥协(多几秒、图标变一下),也要保证“能打通”这个底线,同时给新网络留出成熟时间。
语音要上网,光有IP管道不够。传统电话局里有一整套业务能力:查号、路由、计费、彩铃、呼叫转移、和固定电话网互通……这些能力必须在数据网里找到对应物。这个对应物就是 IMS(IP Multimedia Subsystem,IP多媒体子系统)。
一个理解IMS的绝佳类比:IMS就是把一座传统电话局的各个岗位,数字化之后原样搬进了互联网。
flowchart TD
UE["手机"] --> RAN["无线接入网"]
RAN --> CORE["分组核心网"]
CORE --> P["P-CSCF 前台"]
P --> I["I-CSCF 问询台"]
I --> S["S-CSCF 管家"]
S --> H["HSS 档案库"]
S --> AS["业务服务器"]
S --> GW["电话网关"]
GW --> PSTN["传统电话网"]
注意一个关键设计:IMS不知道也不关心手机下面接的是4G还是5G。它只看见SIP信令从P-CSCF进来。这就是为什么从VoLTE到VoNR,IMS这座“电话局”原封不动——变的只是送信的路(接入网和核心网),局子里的组织架构一点没动。这种业务层与承载层解耦的设计,是IMS能成为“语音的最后一站”的根本原因。
手机要用IMS打电话,第一步是注册。这里用的语言叫SIP(会话初始协议)——如果你熟悉HTTP,会觉得它眼熟极了:同样是文本协议、同样的“方法+状态码”结构、甚至状态码的含义都高度相似(200成功、404找不到、403被拒绝)。SIP和HTTP算是同门兄弟,都继承了互联网“简单文本、易于扩展”的设计哲学。
SIP用REGISTER方法做注册,类似去前台登记入住。 但登记有个安全问题:前台怎么确认“你就是你”?互联网的经典答案是挑战—应答机制,IMS的注册因此分成两个来回:
sequenceDiagram
autonumber
participant U as 手机
participant P as P-CSCF 前台
participant I as I-CSCF 问询台
participant S as S-CSCF 管家
participant H as HSS 档案库
U->>P: REGISTER 自报家门
P->>I: 递送注册请求
I->>H: 他归哪位管家管
H-->>I: 指派管家 S
I->>S: 请求转给管家
S->>H: 领取鉴权数据
H-->>S: 返回鉴权向量
S-->>P: 401 附挑战令牌
P-->>U: 401 附挑战令牌
Note over U: USIM卡内算出应答和密钥
U->>P: 再次REGISTER 附应答
P->>S: 转交带应答的注册
S-->>P: 200 OK
P-->>U: 200 OK 注册成功
逐段拆解这个流程里“为什么这样设计”:
为什么第一次REGISTER注定失败(401)? 第一次注册手机只报了名字(身份标识),没带任何凭证。管家故意回一个“401未授权”,并附上一道挑战——一段随机数和运算参数。这就像酒店前台不直接信你报的名字,而是说“请出示身份证原件核验”。
为什么密钥永远不出卡? 手机收到挑战后,真正的计算发生在USIM卡里:卡内保存着只有自己和档案库知道的根密钥,用它算出应答值和会话密钥。根密钥从头到尾不离开卡片,即使手机操作系统被攻破,密钥也拿不走。这是“计算下放到安全边界”的经典设计。
为什么挑战必须带随机数? 如果应答值是固定的,窃听者录一次就能重放 forever。随机数保证每次注册的应答都不一样——录了也没用。这就是防重放攻击。
管家怎么验证? 管家手里有档案库发的同一套鉴权数据,自己也算一遍应答值,和手机交上来的一致,才发200 OK。之后双方用派生出的会话密钥保护后续信令。
注册成功后还有两件小事值得一提。一是隐式注册:你的号码往往同时有电话形式和SIP URI形式(类似 sip:手机号@运营商域名),一次注册全部生效,不用登记两遍。二是第三方注册:管家注册完成后,会代替你去业务服务器再登记一次,这样别人打你电话时,业务服务器才知道“该把彩铃挂到这个会话上”。整条链路环环相扣,都是为了让“路由”和“业务”各司其职。
注册只是拿到了“入住资格”。真正打电话时,信令的戏份更足。下面是一次典型呼叫的骨架流程:
sequenceDiagram
autonumber
participant A as 主叫手机
participant P as P-CSCF
participant S as S-CSCF
participant B as 被叫手机
A->>P: INVITE 找老王
P->>S: INVITE
S->>B: INVITE 转交被叫
B-->>S: 183 商定编解码
S-->>A: 183 商定编解码
Note over A: 网络为语音拉起专用承载
B-->>S: 180 振铃中
S-->>A: 180 听到回铃音
B-->>S: 200 OK 对方接听
S-->>A: 200 OK 通话建立
Note over A: RTP语音包开始双向流动
A->>P: BYE 挂断
P->>S: BYE
S->>B: BYE 拆线
三个环节藏着最精妙的设计,值得展开:
第一,编解码协商为什么放在183而不是200 OK? 双方手机支持的语音编解码器可能不同(有的支持高清,有的只支持普通音质),必须先“对暗号”,商定一个两边都会说的语言。这个协商结果随183消息提前带回来,而不是等到对方按下接听键。为什么?因为商定之后,网络要为语音铺一条专用通道——这就是下一点。
第二,为什么语音要单独拉一条专用承载? 手机上网用的默认承载是“尽力而为”的:网络忙时你可以被挤。但语音不行——丢一句“救命”都可能出人命。所以IMS会在通话建立时,为语音包专门激活一条保证比特率(GBR)的专用承载(4G里叫QCI=1,5G里叫5QI=1,机制一脉相承)。它的含义是:只要这条通道存在,网络调度器就保证给它留足带宽、给足优先级,拥塞时先挤别人。这也解释了一个现网现象:注册信令和语音包走的不是同一条通道——信令走默认承载,语音走专用承载。关于承载和5QI的完整机制,本系列此前已有专文展开,这里只需记住结论:语音的“承诺书”是单独签的。
第三,资源预留为什么必须在振铃之前? 注意顺序:183商定编码 → 铺专用承载 → 180振铃。如果先振铃、对方接了才发现通道没铺好,用户听到的就是接通后的死寂。所以流程强制“先把路修好,再让人接电话”。反过来若对方拒接,路还没白修多少时间——这是在用户体验和资源开销之间精心折中的次序。这套机制通常被称为“预条件协商”:每一方都确认资源就绪后,会话才真正放行。
IP语音的音质和时延,是可以算账的。
算账一:编解码。 语音先要变成比特流。这条技术线一路进化:
| 编解码 | 码率范围 | 音质定位 | 说明 |
|---|---|---|---|
| AMR-NB | 约 4.75~12.2 kbps | 窄带,传统2G/3G音质 | 只保留约 300~3400 Hz 人声频段 |
| AMR-WB | 约 6.6~23.85 kbps | 宽带,即"高清语音" | 采样率翻倍到16 kHz,高频成分保留,VoLTE普及的功臣 |
| EVS | 约 5.9~128 kbps | 超宽带到全带,可变 | VoLTE/VoNR的新一代编解码,向下兼容AMR-WB,同样码率下音质更好 |
编解码进化的本质是一笔“压缩比与音质的交易”:码率压得越低,占用的空口资源越少,但高频细节丢得越多。EVS的聪明之处在于可变档位——网络好时开高档吃满音质,信号差时自动降档保连续。
算账二:包头开销。 语音包很小(典型20毫秒打一包),但每个包都要套上IP、UDP、RTP三层“信封”,合计40字节。算一下:
$$40 \text{ 字节} \times 8 \text{ 位/字节} \times 50 \text{ 包/秒} = 16000 \text{ bps} = 16 \text{ kbps}$$
每秒50包、每包40字节信封,仅头部开销就16 kbps——和语音本身的码率(如AMR-WB约23.85 kbps)同一量级,等于运费比货还贵。这就是空口要引入鲁棒头压缩的原因:把40字节信封压缩到几个字节,空口效率成倍提升。
算账三:时延预算。 电话的“临场感”对时延极其敏感,国际电联的经典建议是单向端到端时延控制在150毫秒以内,超过400毫秒对话就会明显“抢话”。整条链路的时延构成是:
$$D_{端到端} = D_{编码} + D_{打包} + D_{传输} + D_{抖动缓冲} + D_{解码}$$
其中最容易被忽视的是抖动缓冲:IP网络里包裹到达忽快忽慢,接收端要先囤一小段(典型几十毫秒)再匀速播放,用固定的小延迟换取平滑。这是分组语音“用延迟换稳定”的底层交易——电路交换不存在这个问题(专车不会堵车),这是语音上IP后必须偿还的代价。剩下的时延份额,就靠GBR承载的调度优先级、编解码算法时延、传输路径共同挤压。之所以讲切换、讲承载、讲调度,最终都会落到这笔150毫秒的总账上。
还有一笔容易忽略的账:编解码级联。如果主叫用编解码A、被叫只支持编解码B,中间就得“翻译两次”(解码成模拟再重新编码),每次翻译都伤音质、加时延。现代网络尽量做到端到端免转码:通过前面讲的编解码协商,让两端直接用同一种语言,中间只搬运不翻译。
到了5G独立组网,故事几乎重演了4G初期的剧本,只是角色对调。
5G网络同样只有分组域,语音的归宿依然是IMS。但5G建设初期,IMS与5G核心网的对接、基于新空口的语音覆盖评估都需要时间。于是现网普遍先用EPS Fallback:手机注册在5G上,一发起通话,网络评估“这里打VoNR不靠谱”,就把手机切换或重定向回4G,用成熟的VoLTE完成通话,挂机后再回5G。这正是很多工程师被用户问到的问题的答案:为什么5G信号满格,一打电话图标就跳成4G?——因为你打的是EPS Fallback电话,不是网络坏了,是流程如此。
成熟之后转向VoNR:语音全程走5G空口和5G核心网,IMS不变,专用承载从QCI=1换成机制等价的5QI=1。两种方案的实际差异:
| 维度 | EPS Fallback | VoNR |
|---|---|---|
| 语音通话期间驻留网络 | 4G | 5G |
| 通话建立时延 | 多一次回落,明显更长 | 短,全流程在5G内完成 |
| 通话中是否有一次切换 | 有,5G到4G切换(瞬間顿挫) | 无 |
| 部署难度 | 低,IMS现成,只需覆盖评估 | 高,需端到端打通并持续优化覆盖 |
| 数据业务影响 | 通话期间数据也回落4G | 数据可继续走5G |
| 用户体验 | 可用,但细节有毛刺 | 目标形态,5G能力全量可用 |
注意EPS Fallback表里最容易被低估的一条:通话期间数据业务也跟着回落4G。用户感觉“打个电话网就慢了”,根因在此。这也是运营商加速推VoNR的商业动力之一。
另一个历史名词值得对照理解:SRVCC。VoLTE通话中手机走出4G覆盖,为了不断话,网络把语音从IMS“锚定”后接续到2G/3G电路域继续打。SRVCC和EPS Fallback方向相反——前者是从IP语音撤向老网络保命,后者是从5G借道老网络起跑。理解了“锚点”和“回落”这两个动词,整个语音演进史就串起来了。
抓包看注册: 在核心网侧或用测试手机抓SIP信令,注册类问题一眼分三类——收不到401(查IMS APN是否建立、P-CSCF地址有没有下发,它通过核心网信令在连接建立时带给手机);401之后没有第二次REGISTER(查卡、查终端鉴权算法,很多物联网卡没开IMS签约,必卡在这一步);第二次REGISTER后回403或404(查HSS签约数据和号码格式)。“注册卡在401”几乎是IMS排障的第一高频现象,理解了挑战应答流程,你看到401就不会当成故障。
抓包看呼叫: 呼叫不通时按状态码分段排查——488意味着编解码协商失败(两端语言对不上,查媒体能力配置);没有180说明根本没找到人或被叫侧拒绝;有180和200 OK但无语音,八成是专用承载没建起来或媒体地址不通——信令面通了、媒体面不通是VoLTE排障的经典分水岭。
现网高频误解三则: 其一,“5G手机打电话跳4G是故障”——大概率是EPS Fallback正常流程,先查运营商在该区域的VoNR开通状态。其二,“IMS注册成功就一定能打电话”——注册只是入住,呼叫还要过编解码协商、专用承载、被叫侧路由三道门。其三,“语音和数据抢的是同一条通道”——不是,语音有GBR专用承载的优先级豁免,拥塞时被挤的恰恰是普通数据。
一个调试陷阱: 复现语音问题时,很多人只盯SIP信令不看承载建立时序。专用承载激活完成若晚于200 OK,用户感知就是“接通后先哑一两秒”。信令全部正常但时序错了,照样是用户投诉——对语音而言,顺序就是正确性的一部分。
Q1:VoLTE和VoNR到底差在哪? A:差在“路”不在“局”。两者都用IMS做呼叫控制、都用GBR专用承载保语音、都用同样的编解码。区别是VoLTE的语音跑在4G空口+4G核心网上,VoNR跑在5G空口+5G核心网上。IMS这座电话局完全复用,这正是当初“业务与承载解耦”设计的红利。
Q2:SIP和HTTP为什么这么像?我应该按什么思路去学? A:它们是同一设计哲学的产物:文本协议、方法+URI+状态码、请求-响应模型、通过头部扩展能力。会看HTTP抓包的人学SIP几乎零门槛,重点补的只有三块:会话概念(对话、事务、标签)、预条件协商、注册与鉴权体系。
Q3:微信电话和VoLTE有什么本质区别? A:微信电话是OTT应用,走普通上网通道,尽力而为,卡了就卡了;VoLTE/VoNR是运营商业务,有GBR专用承载的调度承诺、有与固定电话网的互通、有紧急呼叫的法规义务。同样用IP包,一个是拼车乘客,一个是带专座的乘客。
Q4:为什么当年不直接在LTE上做VoIP,非要发明IMS这么重的一套东西? A:普通的VoIP只解决“把声音变成包”,解决不了电话局的其余职责:鉴权开户、路由寻址、计费、与老电话网互通、增值业务、紧急呼叫。IMS是把这整套电话局能力标准化地搬进IP世界的框架。没有它,语音上网就是一群孤岛应用;有了它,才有能与传统电信业务对等衔接的IP语音。
Q5:注册成功但打不出电话,最该先查什么? A:按呼叫时序倒查三道门:被叫寻址(S-CSCF能否找到被叫、被叫是否在线)、编解码协商(是否有488)、专用承载(是否激活成功、媒体地址是否可达)。现网经验里,被叫侧隐式注册异常和专用承载建立失败是两大主因。
说明:本文成稿环境无法进行在线搜索验证,以下为IMS/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 等场景全覆盖。
