你拿起5G手机拨通一个电话,听到对方"喂"的那一刻,背后其实上演了一场精心编排的多方信令"会客厅"谈判——只是这场谈判发生在几百毫秒之内。在2G/3G时代,语音走的是电路交换(CS)这条"专列专线";而5G的核心网(5GC)从设计之初就只保留了分组交换(PS)这一条管道,CS域被彻底移除。那么问题来了:5G网络连一条"语音专线"都没有,电话是怎么打通的?
答案是一个被反复"搬家复用"的功臣——IMS(IP多媒体子系统)。无论是4G的VoLTE还是5G的VoNR,真正控制语音呼叫的都不是无线接入网,而是IMS这个业务控制层。本文我们就把5G语音的"会客厅"彻底拆开:从IMS注册、SIP信令协商、precondition资源预留,到5G覆盖不足时的EPS Fallback"逃生通道",讲清楚每个环节为什么这样设计。
先厘清一个根深蒂固的误解:很多人以为"语音"是无线技术的天然能力。其实从4G开始,业界就达成共识——所有业务都跑在IP上,语音不过是码率很低(几kbps到几十kbps)、对时延和抖动极敏感的实时IP流。
2G/3G时代,语音通过MSC(移动交换中心)走电路域,为每个通话独占一条64kbps的时隙通道。这种"独占式、面向连接"的方式很省心,但有一个致命缺点:它和分组数据网是两套完全独立的设备,运营商要维护两张核心网,成本高、演进慢。
5GC彻底抛弃了CS域,统一用UPF转发所有IP流量。语音怎么办?让IMS来当"业务大脑"。IMS本身和无线制式解耦:它通过一条专门的IMS PDU会话(5G)或IMS PDN连接(4G)与UE建立信令通道,再用SIP协议完成呼叫控制。
一句话记住:VoNR ≠ 一种新的语音技术,而是"5G无线 + 5GC承载 + IMS控制"的组合拳。 IMS是固定班底,无线和核心网是可替换的"舞台"。
把IMS想象成一个公司的"总机系统",UE要打通电话,必须先在这个总机里登记、找到对应的分机。这个总机里有四个关键角色:
| 网元 | 角色 | 通俗类比 | 核心职责 |
|---|---|---|---|
| P-CSCF | 代理CSCF | 公司前台 | UE接入IMS的第一个接触点,负责信令压缩、安全保护、QoS授权 |
| I-CSCF | 查询CSCF | 问询处 | 收到注册/呼叫请求后,问HSS该用户归谁管,分配S-CSCF |
| S-CSCF | 服务CSCF | 业务经理 | 真正的会话控制核心,负责注册鉴权、会话路由、业务触发 |
| HSS | 归属用户服务器 | 人事档案库 | 存储用户签约数据、鉴权向量、当前注册的S-CSCF |
CSCF = Call Session Control Function(呼叫会话控制功能),是IMS的信令处理引擎。P/I/S是三种逻辑分工,实际部署时常合并或分布式部署。P-CSCF在5G中通常与SBC(会话边界控制器)合设,负责网络边界安全。
为什么要拆成三个CSCF,而不是一个网元全包?这是典型的关注点分离(Separation of Concerns)思想:
把它们解耦后,任何一个角色的扩容都不影响另外两个,整个系统才有横向扩展的能力。
flowchart TD
UE[UE 终端] -->|SIP/SDP Gm接口| P[P-CSCF 前台]
P -->|Mw接口 转发注册/呼叫| I[I-CSCF 问询处]
I -->|Cx接口 UAR/MAR 查询| HSS[(HSS 档案库)]
I -->|分配并路由| S[S-CSCF 业务经理]
S -->|Cx接口 下载签约| HSS
S -->|呼叫路由| MGW[被叫网络/CS域 MGCF]
P -.->|与PCF交互 申请5QI=1语音承载| PCF[PCF 策略控制]
style P fill:#e1f5ff
style S fill:#fff4e1
style HSS fill:#f3e5f5
UE开机后,并不是立刻就能打电话。它必须先经历两个独立的"入住"过程:
注意,这是两次注册,两条PDU会话。上网用一条(DNN=internet),IMS信令和语音用另一条(DNN=ims)。为什么要分开设?因为语音承载的QoS要求(5QI=1,GBR)和普通上网(5QI=9,Non-GBR)完全不同,分开才能独立管控、优先保障。
当UE发起IMS PDU会话建立请求时,会在NAS消息里通过PCO(协议配置选项)字段向网络"要东西"——其中最关键的就是P-CSCF地址。网络(SMF)在应答里把P-CSCF的IP地址夹带返回给UE。这就是为什么UE明明不知道IMS网元在哪,却能找到"前台"——前台地址是网络"指派"的。
拿到P-CSCF地址后,UE才真正开始SIP注册。整个过程的核心是IMS AKA鉴权——一次"挑战-应答"的双向认证。
sequenceDiagram
participant UE
participant P as P-CSCF
participant I as I-CSCF
participant S as S-CSCF
participant H as HSS
Note over UE,H: 第1步: IMS PDU会话建立, 网络夹带返回P-CSCF地址
UE->>P: REGISTER (IMPU/IMPI, 无鉴权)
P->>I: 转发REGISTER
I->>H: Cx UAR (用户授权查询)
H-->>I: Cx UAA (返回是否需分配S-CSCF)
I->>S: 路由到选定的S-CSCF
S->>H: Cx MAR (请求鉴权向量)
H-->>S: Cx MAA (返回RAND/AUTN/XRES等)
S-->>I: 401 Unauthorized (携带nonce/AUTN挑战)
I-->>P: 透传401
P-->>UE: 401 Unauthorized (挑战)
Note over UE: 用USIM卡密钥计算RES, 重新构造鉴权响应
UE->>P: REGISTER (携带鉴权响应RES)
P->>I: 转发鉴权REGISTER
I->>S: 路由
S->>H: Cx SAR (服务器分配, 下载用户档案)
H-->>S: Cx SAA (用户签约/过滤规则)
S-->>UE: 200 OK (注册成功)
IMS鉴权基于和USIM卡深度绑定的AKA(认证与密钥协商)机制。HSS生成一个挑战向量(RAND、AUTN等)下发给UE,UE的USIM卡用内置的永久密钥K计算出一个应答RES返回。整个过程密钥K永远不出USIM卡,也不在网络上明文传输,因此即使信令被窃听也无法伪造。
鉴权响应的计算思路可简化为:
$$ \text{RES} = f_{2}(K, \text{RAND}) $$
$$ \text{期望值} = \text{XRES}, \quad \text{验证: } \text{RES} \stackrel{?}{=} \text{XRES} $$
其中 $f_2$ 是USIM卡内的密码学函数,K是永久共享密钥,RAND是随机挑战。S-CSCF比较UE返回的RES和HSS算出的XRES,一致则认证通过。
为什么用"挑战-应答"而不是直接传密码? 因为网络是无线的,信令随时可能被截获。挑战里的nonce(随机数)每次都变,即使攻击者录下上次的应答,也无法用于下一次注册——这叫抗重放攻击。
注册时你会看到两个容易混淆的标识:
这就像现实世界:身份证号(IMPI)用来证明"你是你",手机号(IMPU)用来让别人"找到你"。注册用IMPI鉴权,呼叫用IMPU寻址。
注册成功后,UE就拿到了IMS会客厅的"长期通行证"。真正打电话时,主角换成了SIP(会话发起协议)。
SIP本质上是一个文本协议,长得非常像HTTP——一行方法、若干头字段、一个消息体。它的核心使命是:建立、修改、终止多媒体会话。常见的SIP方法:
| SIP方法 | 含义 | 何时出现 |
|---|---|---|
| REGISTER | 注册 | 开机/周期性保活 |
| INVITE | 发起会话 | 主叫拨号 |
| 183 Session Progress | 临时响应(带SDP) | 被叫侧反馈媒体能力 |
| PRACK | 确认临时响应 | 可靠传输183 |
| UPDATE | 中途更新媒体协商 | 资源预留完成后 |
| 180 Ringing | 振铃 | 被叫手机响铃 |
| 200 OK | 成功 | 摘机/确认 |
| ACK | 确认会话建立 | 主叫最后确认 |
| BYE | 结束通话 | 挂断 |
而SDP(会话描述协议)则搭SIP的"顺风车"——它藏在SIP消息的body里,专门描述媒体的"规格":用什么编解码(AMR/EVS)、走哪个端口、采样率多少。INVITE里UE给出"我能支持哪些编解码"(offer),被叫侧从中挑一个自己也能支持的返回(answer),这就是媒体协商。
SDP的核心是几行关键字段:
m=audio 50000 RTP/AVP 96 97 # 媒体类型=音频, 端口50000, 编解码编号96/97
a=rtpmap:96 EVS/16000 # 编解码96 = EVS, 16kHz采样
a=rtpmap:97 AMR-WB/16000 # 编解码97 = AMR-WB, 16kHz
为什么要把信令(SIP)和媒体(RTP)分开? 因为两者对网络的要求天差地别:SIP是少量、可靠、需要按顺序到达的控制信令,走TCP/UDP都行;RTP是连续、实时、能容忍少量丢包但不能容忍时延的媒体流。分开后,信令走IMS网元链路,媒体流尽量在UPF/MGW就近转发,互不拖累。
一个典型的VoNR主叫流程远不止"INVITE过去、200 OK回来"那么简单。为了保障QoS,中间穿插了precondition资源预留的多次握手:
sequenceDiagram
participant A as 主叫UE
participant PA as 主叫P-CSCF
participant SA as 主叫S-CSCF
participant SB as 被叫S-CSCF
participant PB as 被叫P-CSCF
participant B as 被叫UE
A->>PA: INVITE (SDP offer, 支持的编解码)
Note over PA: 向PCF申请5QI=1语音专用承载(本地资源预留)
PA->>SA: 转发INVITE
SA->>SB: 跨域路由INVITE
SB->>PB: 路由到被叫
PB->>B: INVITE
B-->>PB: 183 Session Progress (SDP answer, 选定编解码)
Note over B,PB: 被叫侧本地资源预留
PB->>A: 183 (经S-CSCF链路返回, 标记远端资源未就绪)
A-->>PA: PRACK (确认183)
PA-->>B: 200(PRACK)
Note over A,B: 双方资源预留完成后
A->>B: UPDATE (确认资源就绪)
B-->>A: 200(UPDATE)
B-->>A: 180 Ringing (振铃)
B-->>A: 200 OK (摘机)
A->>B: ACK (会话正式建立)
Note over A,B: RTP双向语音流开始
这条流程看起来"啰嗦",但每一步都在回答一个关键问题。下一节我们就拆解其中最精妙的precondition机制。
仔细看上面的INVITE流程,你会发现一个反直觉的设计:为什么被叫明明回了183(带SDP),主叫却不立刻发ACK结束协商,反而要绕一大圈PRACK、UPDATE?
这背后是VoLTE/VoNR最核心的QoS保障机制——precondition(前提条件)。
想象你要和朋友开视频会议。如果按"老式电话"的逻辑:你拨过去,对方一接,会议立刻开始——结果发现带宽不够、卡成PPT,双方都很尴尬。
precondition的做法更像先占座再开会:
precondition通过SDP里的 a=des(期望)和 a=cur(当前)行表达资源状态。典型的演进过程:
# 初始INVITE: 本地和远端资源都"未就绪", 期望双向预留, 强度mandatory
a=curr:qos local none
a=curr:qos remote none
a=des:qos mandatory local sendrecv
a=des:qos mandatory remote sendrecv
# 资源预留完成后UPDATE: 标记已就绪
a=curr:qos local sendrecv
a=curr:qos remote sendrecv
为什么一定要mandatory(强制)而不是optional(可选)? 因为语音对QoS极其敏感。如果允许"软约束",主叫可能在专用承载还没建好时就摘机通话,导致前几秒没声音或断续——用户体验灾难。强制precondition确保通话接通的那一刻,双向GBR承载已经就位,避免"接通了却听不见"。
当P-CSCF收到带SDP的INVITE/183后,它会提取协商出的媒体参数(编解码、码率),通过Rx接口向PCF发起策略授权请求:我这个用户要打一个EVS 13.2kbps的语音电话,请给我一条保证带宽的管道。PCF据此向SMF下发5QI=1的GBR QoS规则,SMF再触发gNB和UE建立专用数据无线承载(DRB)。
5QI=1是语音的标准QoS标识,对应GBR(保证比特速率):
$$ \text{5QI}=1 \Rightarrow \begin{cases} \text{类型: GBR} \ \text{时延预算: 100ms} \ \text{丢包率: } 10^{-2} \end{cases} $$
这条管道的带宽是被独占预留的——即使小区拥塞,语音也要保证有路可走。这就是VoNR通话比微信语音电话更稳的根本原因:前者有网络层的硬保障,后者只能尽力而为。
VoNR要求UE始终驻留在5G NR上完成语音。但现实是:5G建网初期覆盖不可能一步到位,很多室内、边缘场景NR信号微弱。如果在这种地方来了一个电话,UE强行留在NR上通话,质量会极差甚至掉话。
于是工程上设计了一个务实的过渡方案——EPS Fallback(回落到EPS/4G):UE在5G发起或接收语音呼叫时,临时"撤"到4G网络,用成熟的VoLTE完成通话;通话结束后再返回5G。IMS架构4G/5G共用,所以回落后无需重新注册IMS。
flowchart TD
Start[UE在5G发起/接收语音呼叫] --> Q{gNB能否在5GC<br/>建立5QI=1语音承载?}
Q -->|能, NR覆盖良好| VoNR[直接VoNR通话<br/>全程驻留5G]
Q -->|不能, NR覆盖不足| FB[触发EPS Fallback]
FB --> Way{回落方式选择}
Way -->|方式A: 重定向| R[5G→4G重定向<br/>UE在4G重新接入并发起VoLTE<br/>实现简单, 接续稍慢]
Way -->|方式B: 切换| H[5G→4G切换<br/>基于Xn/S1-N2接口<br/>接续快, 需邻区完备]
R --> Volte[在4G进行VoLTE通话]
H --> Volte
Volte --> Done{通话结束}
Done --> Return[快速返回5G Fast Return]
style VoNR fill:#d4edda
style FB fill:#fff3cd
| 对比项 | 重定向(Redirection) | 切换(Handover) |
|---|---|---|
| 实现复杂度 | 低,UE自主重选 | 高,需网络侧协调 |
| 接续时延 | 较长(UE要重新接入4G) | 较短(无缝迁移) |
| 前提条件 | 只需知道4G频点 | 邻区关系完备、接口可用 |
| 用户体验 | 通话前有明显延迟 | 接近无缝 |
| 适用场景 | 网络初期、邻区不全 | 成熟网络、要求高质量 |
切换方式体验更好,但对网络配置要求高(需要完整的4G/5G邻区关系和接口);重定向实现简单,是建网初期的主流选择。很多运营商的策略是"先重定向打底,再逐步切换优化"。
为什么需要Fast Return(快速返回)? 通话结束后,如果没有机制把UE"赶回5G",它可能因为4G信号还行就一直赖在4G,导致5G分流比下降、用户体验降级。Fast Return在通话挂断时主动引导UE快速回到5G,保证数据业务的高速体验。
理解了原理,就能明白现网的演进路径:
这种"主力+兜底"的双轨设计,是工程上平衡覆盖、质量、成本的经典权衡——先用成熟的VoLTE保证"能打通",再用VoNR追求"打得好"。
虽然IMS控制层不变,但VoNR在无线和编码上做了关键升级:
| 维度 | VoLTE(4G) | VoNR(5G) |
|---|---|---|
| 无线接入 | LTE(eNB) | NR(gNB),空口时延更低 |
| 核心网 | EPC(MME/SGW/PGW) | 5GC(AMF/SMF/UPF) |
| QoS框架 | EPS Bearer + PCRF | 5QI + PCF/SMF |
| 主力编解码 | AMR-WB(23.85kbps) | EVS(增强语音,最高24.4kbps) |
| 空口时延 | ~10ms级别 | 可低至1ms(URLLC场景),语音建立更快 |
| 呼叫建立时延 | 相对较长 | 显著优化 |
| 数据并发 | 通话时数据走LTE | 通话时数据仍走NR高速通道 |
| 兜底机制 | SRVCC回3G | EPS Fallback回4G |
其中最值得说的是EVS(Enhanced Voice Services)编解码。它是VoNR的"好声音"功臣,相比AMR-WB:
语音质量常用MOS(Mean Opinion Score)评分,满分5分。EVS在良好无线条件下可达4.5以上的MOS分,逼近甚至超越传统固话音质。
纸上得来终觉浅。这些原理在现网调试中如何体现?以下是几个高频排查场景。
排查链路: 1. 检查IMS PDU会话:是否成功建立?DNN是否为ims?PCO里是否带回了P-CSCF地址? 2. 检查P-CSCF可达性:UE能否ping通/PING得到P-CSCF? 3. 抓SIP REGISTER:是否发出?是否收到401挑战?重发REGISTER后是否200 OK? 4. IMS AKA鉴权失败:常见于USIM卡未开通IMS签约、HSS签约数据不全。检查HSS里该用户的IMPI/IMPU和鉴权向量是否正确。
排查链路: 1. 看precondition状态:UPDATE是否正常交换?是否卡在资源预留? 2. 检查专用承载:5QI=1的GBR承载是否建立成功?这步失败会导致"接通了但没声音"。 3. 检查SDP协商:双方是否协商出共同编解码?编解码不匹配会导致媒体面无法建立。 4. 检查RTP流:用抓包确认RTP包是否双向流通。单向流通往往是NAT或防火墙问题。
排查链路: 1. 检查EPS Fallback触发:是否在弱场及时回落?回落方式是重定向还是切换? 2. 检查邻区配置:4G/5G邻区关系是否完整?这是切换型Fallback能否成功的前提。 3. Fast Return配置:通话结束后是否快速返回5G?否则影响数据业务体验。
Q: VoNR和VoWiFi(Wi-Fi Calling)是什么关系? A: 两者都由IMS控制语音业务,SIP信令流程几乎一致。区别在接入管道:VoNR通过5G NR+5GC接入IMS,VoWiFi通过Wi-Fi+ePDG/IPsec隧道接入IMS。对IMS而言,它们都是"不同的接入方式",业务层逻辑共享。这也是IMS架构解耦接入的设计红利——换个管道就能复用整套语音业务。
Q: 为什么IMS注册要专门建立一条PDU会话,不能复用上网的会话? A: 因为语音业务的QoS要求(5QI=1,GBR,低时延)与普通上网(5QI=9,Non-GBR)完全不同。单独的IMS PDU会话能独立申请和管控专用承载,确保语音在拥塞时优先保障。同时,IMS信令走5QI=5、媒体走5QI=1,与数据流隔离,互不干扰。
Q: precondition机制能不能去掉以加快呼叫建立? A: 理论上可以配成optional,但工程上不推荐。去掉mandatory约束后,可能在专用承载未建好时就接通通话,导致"接通前几秒没声音"或断续,用户体验极差。呼叫建立时延的优化应从空口时延(NR优势)、信令精简、并发处理入手,而不是牺牲QoS保障。
Q: EPS Fallback和SRVCC有什么区别? A: 都是为了语音连续性,但方向不同。EPS Fallback是5G→4G(在5G发起呼叫但回落到4G完成),解决5G初期NR覆盖不足以承载语音的问题。SRVCC是4G→3G/2G(在VoLTE通话中切换到CS域),解决4G初期LTE覆盖不连续的问题。两者都是过渡期方案,随着各自目标网络覆盖完善会被逐步边缘化。
Q: 一个手机能同时支持VoNR通话和5G高速上网吗? A: 能。这正是VoNR相对EPS Fallback的一大优势。VoNR通话时,语音走5QI=1专用承载,数据走5QI=9等其他承载,两者在同一5G连接里并行。而EPS Fallback通话时UE已退到4G,数据业务也跟着降速到LTE。所以VoNR用户通话时仍能享受5G高速下载,这是"全程驻留5G"的真正价值。
本文由「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 等场景全覆盖。
