5G VoNR(Voice over New Radio)原生语音方案强制采用EVS(Enhanced Voice Services)编解码器,这不仅是AMR-WB的简单替代,而是一场从"固定参数语音管道"到"自适应多维协商"的范式转换。EVS支持5.9 kbps至128 kbps共13档编码速率、NB/WB/SWB/FB四档音频带宽、Primary与AMR-WB IO双模式——这些自由度全部需要在SIP INVITE的SDP Offer/Answer一次往返中锁定初始参数,再通过RTP层CMR帧级信令实现运行时动态适配。
本文聚焦 3GPP TS 26.114 Section 6.2(MTSI媒体处理与交互)和 TS 26.445 Section 5.2(EVS RTP净荷格式)定义的EVS SDP fmtp五维参数协商机制,逐步拆解从UE发起SDP Offer到最终EVS RTP流建立的完整信令链。
在分析SDP协商之前,必须理解EVS编解码器的内部架构。EVS并非单一编码算法,而是由两种工作模式组成的多层架构:
┌──────────────────────────────────────────────────┐
│ EVS Codec Architecture │
├──────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────┐ │
│ │ EVS Primary Mode (Mode 0) │ │
│ │ ┌───────┐ ┌───────┐ ┌──────┐ ┌──────┐ │ │
│ │ │ NB │ │ WB │ │ SWB │ │ FB │ │ │
│ │ │4 kHz │ │8 kHz │ │16kHz │ │20kHz │ │ │
│ │ │5.9-24.4│ │5.9-24.4│ │5.9-24.4│ │16.4-24.4│ │
│ │ └───────┘ └───────┘ └──────┘ └──────┘ │ │
│ └─────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────┐ │
│ │ EVS AMR-WB IO Mode (Mode 1) │ │
│ │ ┌──────────────────────────────────────┐ │ │
│ │ │ WB (8 kHz): 6.6, 8.85, 12.65, │ │ │
│ │ │ 14.25, 15.85, 18.25, 19.85, │ │ │
│ │ │ 23.05, 23.85 kbps │ │ │
│ │ └──────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────┘
| 带宽模式 | 缩写 | 采样率 | 可用编码速率(kbps) |
|---|---|---|---|
| 窄带 NB | nb | 8 kHz | 5.9, 7.2, 8.0, 9.6, 13.2, 16.4, 24.4 |
| 宽带 WB | wb | 16 kHz | 5.9, 7.2, 8.0, 9.6, 13.2, 16.4, 24.4 |
| 超宽带 SWB | swb | 32 kHz | 5.9, 7.2, 8.0, 9.6, 13.2, 16.4, 24.4, 32.0, 48.0 |
| 全带 FB | fb | 48 kHz | 16.4, 24.4, 32.0, 48.0, 64.0, 96.0, 128.0 |
关键设计意图:EVS Primary Mode的NB/WB/SWB共享5.9-24.4 kbps的低速率区间,而FB独占高速率区间。这意味着SDP协商时br和bw参数存在隐含约束——FB模式不可能协商出5.9 kbps的速率。
根据 TS 26.114 Section 6.2.4 和 RFC 8791 Section 4.4,EVS在SDP中通过fmtp属性定义了五个核心协商维度:
| 参数 | 类型 | 取值范围 | 默认值 | 协商角色 | TS章节 |
|---|---|---|---|---|---|
evs-mode-switch |
整数 | 0或1 | 0 | 声明性 | TS 26.114 §6.2.4.1 |
br |
字符串 | 单值或范围 | 5.9-24.4 | Offer限定 | TS 26.114 §6.2.4.2 |
bw |
字符串 | nb/wb/swb/fb组合 | nb-wb-swb | Offer限定 | TS 26.114 §6.2.4.3 |
ch-recv |
整数 | 1-2 | 1 | Answer限定 | TS 26.114 §6.2.4.4 |
cmr |
字符串 | 单值或范围 | 无 | 声明性 | TS 26.114 §6.2.4.5 |
max-red |
整数 | 0-1000(ms) | 0 | 声明性 | TS 26.114 §6.2.4.6 |
dtx |
字符串 | on/off | off | 声明性 | TS 26.114 §6.2.4.7 |
hf-only |
整数 | 0或1 | 0 | 声明性 | TS 26.114 §6.2.4.8 |
┌───────────────────────────────────────────────────────────┐
│ SDP Offer/Answer 五维协商博弈空间 │
│ │
│ Dim-1: evs-mode-switch ──→ 双模式开关 │
│ 0 = 仅EVS Primary │
│ 1 = Primary + AMR-WB IO │
│ │
│ Dim-2: br (bitrate) ──→ 速率范围约束 │
│ Offer: br=5.9-24.4 (允许范围) │
│ Answer: br=13.2 (锁定值) │
│ │
│ Dim-3: bw (bandwidth) ──→ 带宽模式组合 │
│ Offer: bw=nb-wb-swb (多选) │
│ Answer: bw=swb (单选) │
│ │
│ Dim-4: cmr (codec mode request) ──→ 运行时适配范围 │
│ cmr=5.9-24.4 (允许CMR切换范围) │
│ │
│ Dim-5: max-red + dtx ──→ 抗丢包策略 │
│ max-red=220; dtx=on │
│ │
│ 约束: br范围 ∩ bw支持的速率 = 有效协商空间 │
└───────────────────────────────────────────────────────────┘
evs-mode-switch=1的含义:这并非简单地"启用双模式",而是告知对端本端RTP栈可以在EVS Primary帧和AMR-WB IO帧之间逐帧切换。这在VoNR→VoLTE互操作场景中至关重要——当呼叫从NR覆盖区移动到仅LTE覆盖区时,编解码器可以无缝切换到AMR-WB IO模式而无需SIP re-INVITE。
br参数的范围语义:br=5.9-24.4表示Offer端可以在5.9到24.4 kbps之间接受任何EVS Primary速率。Answer端必须从这个范围内选择一个子集或单值返回。如果Answer返回br=13.2,则双方锁定在13.2 kbps;如果返回br=5.9-24.4,则双方可通过CMR在此范围内动态调整。
bw参数的组合语义:bw=nb-wb-swb表示Offer端同时支持NB、WB、SWB三种带宽模式。Answer端必须从中选择一个子集返回(不能添加新的带宽模式)。实际协商中,如果双方UE都支持SWB且NR无线条件允许,P-CSCF/SBC通常会引导选择SWB。
以下是基于 TS 24.229 Section 5.4.3.2(IMS SIP会话建立)和 TS 26.114 Section 6.2(MTSI媒体协商)的完整VoNR MO呼叫EVS编解码协商信令流:
sequenceDiagram
participant UE-A as 主叫UE-A<br/>(VoNR)
participant gNB as gNB
participant PCSCF_A as P-CSCF/SBC-A
participant SCSCF as S-CSCF
participant TAS as TAS/MMTel AS
participant PCSCF_B as P-CSCF/SBC-B
participant UE-B as 被叫UE-B<br/>(VoNR)
Note over UE-A,UE-B: 阶段1: SDP Offer上行(EVS能力宣告)
UE-A->>PCSCF_A: SIP INVITE<br/>SDP Offer: EVS Primary+AMR-WB IO<br/>a=rtpmap:96 EVS/16000/1<br/>a=fmtp:96 evs-mode-switch=1;<br/>br=5.9-24.4; bw=nb-wb-swb;<br/>cmr=5.9-24.4; max-red=220
PCSCF_A->>PCSCF_A: ①P-CSCF策略检查<br/>授权b=AS带宽<br/>检查5QI=1 QoS Flow
PCSCF_A->>SCSCF: INVITE(转发)<br/>SDP可能被SBC修改
SCSCF->>TAS: INVITE(iFC触发)<br/>MMTel业务触发
TAS->>SCSCF: INVITE(转发)
SCSCF->>PCSCF_B: INVITE(路由)
PCSCF_B->>PCSCF_B: ②被叫侧策略检查<br/>带宽授权
PCSCF_B->>UE-B: INVITE(最终下发)<br/>SDP Offer可能被裁剪
Note over UE-A,UE-B: 阶段2: SDP Answer下行(编解码锁定)
UE-B->>PCSCF_B: 180 Ringing<br/>SDP Answer: 选择EVS SWB<br/>a=fmtp:96 evs-mode-switch=1;<br/>br=13.2; bw=swb;<br/>cmr=5.9-24.4; max-red=220
PCSCF_B->>PCSCF_B: ③Answer策略验证<br/>确认QoS Flow建立
PCSCF_B->>SCSCF: 180 Ringing(转发)
SCSCF->>TAS: 180 Ringing(iFC路径)
TAS->>SCSCF: 180 Ringing(转发)
SCSCF->>PCSCF_A: 180 Ringing(路由)
PCSCF_A->>PCSCF_A: ④主叫侧QoS确认<br/>触发N2 SMF/PCF交互
PCSCF_A->>UE-A: 180 Ringing<br/>SDP Answer(最终确认)
UE-A->>PCSCF_A: PRACK(可靠性确认)
PCSCF_A->>UE-B: PRACK(端到端)
Note over UE-A,UE-B: 阶段3: 200 OK与RTP流建立
UE-B->>UE-A: 200 OK(INVITE确认)
UE-A->>UE-B: ACK
Note over UE-A,UE-B: 阶段4: RTP流建立+CMR动态适配
UE-A->>UE-B: RTP EVS SWB 13.2kbps<br/>CMR=24.4(请求升速)
UE-B->>UE-A: RTP EVS SWB 24.4kbps<br/>CMR=13.2(请求降速)
UE-A->>UE-B: RTP EVS SWB 13.2kbps<br/>CMR=13.2(保持)
主叫UE-A构造SDP Offer时,遵循 TS 26.114 Section 6.2.4 的MTSI终端能力要求:
完整SDP Offer示例:
m=audio 49152 RTP/AVPF 96 97 98
a=rtpmap:96 EVS/16000/1
a=fmtp:96 evs-mode-switch=1; br=5.9-24.4; bw=nb-wb-swb;
cmr=5.9-24.4; max-red=220; dtx=on; hf-only=0
a=rtpmap:97 AMR-WB/16000/1
a=fmtp:97 mode-set=0,1,2; mode-change-capability=2; max-red=220
a=rtpmap:98 telephone-event/16000
a=ptime:20
a=maxptime:240
b=AS:49
b=RS:0
b=RR:0
a=sendrecv
关键设计要点:
1. Payload Type 96 = EVS Primary,同时evs-mode-switch=1隐含支持AMR-WB IO模式
2. Payload Type 97 = AMR-WB,作为互操作回退方案
3. Payload Type 98 = telephone-event,用于DTMF透传
4. b=AS:49声明应用层总带宽需求(包含IP/UDP/RTP头开销约36kbps + EVS最高24.4kbps)
5. 使用RTP/AVPF(RFC 4585)而非RTP/AVP,支持RTCP反馈报告增强
P-CSCF/SBC是EVS协商中最关键的策略执行点。根据 TS 29.514 Section 4.2(P-CSCF与PCF的Rx接口交互),P-CSCF执行以下操作:
P-CSCF SDP裁剪逻辑:
| 场景 | P-CSCF动作 | SDP修改 |
|---|---|---|
| 运营商限制SWB | 移除bw中的swb | bw=nb-wb |
| 运营商限制最大速率 | 收窄br范围 | br=5.9-13.2 |
| 禁用EVS(回退AMR-WB) | 删除PT=96行 | 仅保留AMR-WB |
| 禁用AMR-WB IO模式 | 设置evs-mode-switch=0 | evs-mode-switch=0 |
| 带宽策略 | 修改b=AS值 | b=AS:32(降低) |
这就是为什么实际抓包中看到的SDP经常与UE原始Offer不同——P-CSCF根据运营商策略和当前无线资源状况做了中间裁剪。
被叫UE-B收到SDP Offer后,执行 RFC 3264 Section 6.1 定义的Answer生成规则:
SDP Answer生成规则(TS 26.114 §6.2.5):
br=5.9-24.4,Answer可以选择br=13.2(锁定单速率)或br=5.9-24.4(保持范围,允许CMR动态调整)bw=nb-wb-swb,Answer只能返回bw=swb(最优选)或bw=nb-wb等SDP Answer示例:
m=audio 49170 RTP/AVPF 96 98
a=rtpmap:96 EVS/16000/1
a=fmtp:96 evs-mode-switch=1; br=13.2; bw=swb;
cmr=5.9-24.4; max-red=220; dtx=on
a=rtpmap:98 telephone-event/16000
a=ptime:20
b=AS:49
a=sendrecv
注意:Answer中Payload Type列表只保留了96(EVS)和98(telephone-event),删除了97(AMR-WB)——因为evs-mode-switch=1已经隐含了AMR-WB IO兼容能力。
SDP协商锁定初始参数后,EVS通过CMR(Codec Mode Request)机制在RTP层实现无需SIP信令的动态速率调整。这是EVS相对于AMR-WB最重要的增强之一。
flowchart TB
subgraph RTP_Payload["EVS RTP Payload结构"]
CMR_Field["CMR字段 (4 bits)"]
TOC_Field["TOC字段 (Table of Contents)"]
Frame_Data["EVS帧数据"]
end
subgraph CMR_Mapping["CMR值→速率映射"]
CMR_0["CMR=0: 5.9 kbps"]
CMR_1["CMR=1: 7.2 kbps"]
CMR_2["CMR=2: 8.0 kbps"]
CMR_3["CMR=3: 9.6 kbps"]
CMR_4["CMR=4: 13.2 kbps"]
CMR_5["CMR=5: 16.4 kbps"]
CMR_6["CMR=6: 24.4 kbps"]
CMR_7["CMR=7: 32.0 kbps"]
CMR_8["CMR=8: 48.0 kbps"]
CMR_15["CMR=15: 无请求/保持"]
end
subgraph Adaptation_Logic["CMR自适应决策逻辑"]
PLR["丢包率↑ → 请求降速<br/>(更多冗余空间)"]
BW_Avail["带宽充裕 → 请求升速<br/>(更高质量)"]
Delay["时延敏感 → 请求降速<br/>(减小帧大小)"]
Jitter["抖动增大 → 请求降速<br/>(降低缓冲压力)"]
end
RTP_Payload --> CMR_Mapping
CMR_Mapping --> Adaptation_Logic
| CMR值 | 编码速率(kbps) | 适用带宽模式 | 典型场景 |
|---|---|---|---|
| 0 | 5.9 | NB/WB/SWB | 极差无线条件 |
| 1 | 7.2 | NB/WB/SWB | 差无线条件 |
| 2 | 8.0 | NB/WB/SWB | 一般无线条件 |
| 3 | 9.6 | NB/WB/SWB | 中等无线条件 |
| 4 | 13.2 | NB/WB/SWB | 良好无线条件(默认) |
| 5 | 16.4 | NB/WB/SWB/FB | 优秀无线条件 |
| 6 | 24.4 | NB/WB/SWB/FB | 极佳无线条件 |
| 7 | 32.0 | SWB/FB | 超宽带高质量 |
| 8 | 48.0 | SWB/FB | 超宽带极高质量 |
| 9-14 | 64/96/128 | FB | 全带音乐级 |
| 15 | 无请求 | 全部 | 保持当前速率 |
关键约束:CMR请求的速率必须在SDP协商的cmr参数范围内。如果SDP Answer锁定cmr=5.9-24.4,则UE只能发出CMR 0-6的请求,CMR 7-8将被忽略。
根据 TS 26.445 Section 5.1 和 RFC 8791 Section 3,EVS定义了两种RTP净荷格式:
| 特性 | Header-Full格式 | Compact格式 |
|---|---|---|
| 用途 | EVS Primary + AMR-WB IO | 仅EVS Primary |
| CMR字段 | 4 bits (TOC前) | 3 bits (帧头) |
| TOC字段 | 有(每帧一个) | 无 |
| 帧大小指示 | TOC中明确编码 | 由帧大小推断 |
| 兼容性 | 与AMR-WB RTP格式兼容 | 更高带宽效率 |
| 多帧打包 | 支持 | 支持 |
| 开销 | 较大(~2-3字节/帧) | 较小(~1字节/帧) |
| SDP指示 | hf-only=0 |
hf-only=1 |
Header-Full格式RTP净荷结构:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CMR (4bits) |R| TOC (7bits)| EVS Frame Data ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Compact格式RTP净荷结构:
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CMR (3bits) | EVS Frame |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
设计意图:Header-Full格式保留了与AMR-WB相同的TOC结构,使得在网络设备(如Transcoder-Free Operation, TrFO)中可以无需解帧就判断编码模式。Compact格式减少了开销,更适合VoNR的带宽敏感场景。
EVS编解码协商不仅是IMS层面的SDP交换,还涉及5G核心网的QoS资源预留。这是VoNR相对于VoLTE新增的关键差异点。
sequenceDiagram
participant UE as UE
participant PCSCF as P-CSCF
participant PCF as PCF
participant SMF as SMF
participant UPF as UPF
participant gNB as gNB
UE->>PCSCF: SIP INVITE(SDP Offer)<br/>b=AS:49, EVS SWB
PCSCF->>PCF: N7/Rx: AAR<br/>Media-Type=Audio<br/>Bandwidth=49kbps<br/>Codec=EVS SWB 24.4kbps
PCF->>PCF: 策略决策:<br/>5QI=1(GBR)<br/>ARP=优先级<br/>MBR=49kbps<br/>GBR=32kbps
PCF->>SMF: N7: PCC Rule<br/>5QI=1, Flow=RTP
SMF->>SMF: QoS Flow创建:<br/>QFI=1, GBR=32kbps
SMF->>UPF: N4: PDR/FAR<br/>QoS Flow规则
SMF->>gNB: N2: PDU Session<br/>Resource Setup<br/>5QI=1, GBR
gNB->>gNB: DRB配置:<br/>RLC-UM, PDCP<br/>逻辑信道优先级
gNB-->>SMF: N2: Resource Setup Response
SMF-->>PCF: N7: 确认
PCF-->>PCSCF: N7/Rx: AAA<br/>QoS授权确认
PCSCF->>UE: 180 Ringing(SDP Answer)
| QoS参数 | 取值 | 与EVS的关系 |
|---|---|---|
| 5QI | 1 | 对话语音,GBR,默认对应EVS |
| GBR-UL | 32 kbps | 覆盖EVS SWB 24.4kbps + 开销 |
| GBR-DL | 32 kbps | 同上 |
| MBR-UL | 49 kbps | b=AS值 |
| MBR-DL | 49 kbps | b=AS值 |
| ARP | 优先级 | 语音会话高优先级 |
| PDB | 100ms | 分组时延预算 |
| PER | 10^-2 | 误包率要求 |
当P-CSCF收到SDP Answer确认最终编解码参数后,会通过Rx接口向PCF发送AAR(AF-Application-Request)更新授权带宽。如果SDP协商结果是EVS SWB 13.2kbps,则GBR可能降低到约24kbps(含开销),释放的无线资源可供其他UE使用。
正常EVS协商(成功):
# INVITE中的SDP Offer
m=audio 49152 RTP/AVPF 96 97 98
a=rtpmap:96 EVS/16000/1 ← EVS Payload Type
a=fmtp:96 evs-mode-switch=1; br=5.9-24.4; bw=nb-wb-swb; max-red=220
# 180 Ringing中的SDP Answer
m=audio 49170 RTP/AVPF 96 98
a=rtpmap:96 EVS/16000/1 ← 确认选择EVS
a=fmtp:96 evs-mode-switch=1; br=13.2; bw=swb; max-red=220
← 锁定SWB 13.2kbps
EVS协商失败回退AMR-WB:
# INVITE中的SDP Offer(包含EVS)
m=audio 49152 RTP/AVPF 96 97 98
a=rtpmap:96 EVS/16000/1
a=fmtp:96 evs-mode-switch=1; br=5.9-24.4; bw=nb-wb-swb
a=rtpmap:97 AMR-WB/16000/1 ← 回退候选
# 200 OK中的SDP Answer(选择AMR-WB)
m=audio 49170 RTP/AVPF 97 98
a=rtpmap:97 AMR-WB/16000/1 ← 被叫选了AMR-WB!
a=fmtp:97 mode-set=0,1,2; max-red=220
# EVS PT=96被移除 → 协商失败
| 故障现象 | 可能原因 | 排错方法 |
|---|---|---|
| 双方SDP都有EVS但实际使用AMR-WB | P-CSCF裁剪了EVS行 | 检查P-CSCF策略配置和SDP日志 |
| EVS协商成功但语音质量差 | CMR范围被SDP过度限制 | 检查cmr参数范围是否过窄 |
| 仅NB编码,无法SWB | bw参数被裁剪或UE能力不足 |
检查UE的MMTel能力指示 |
| 通话中速率不切换 | CMR=15(保持)或SDP锁定单速率 | 检查Answer中br是否为范围值 |
| 互操作失败(EPS Fallback) | evs-mode-switch=0禁用IO模式 |
检查UE和P-CSCF的mode-switch设置 |
# 过滤SIP INVITE中的SDP
sip.Request-Line contains "INVITE" && sdp.payload_type == "96"
# 过滤EVS RTP流
rtp.payload_type == 96
# 检查CMR变化(需要解析EVS payload)
rtp.payload_type == 96 && frame.len > 100
# 过滤SDP fmtp参数
sdp.fmtp contains "evs-mode-switch"
| 对比维度 | EVS | AMR-WB |
|---|---|---|
| SDP fmtp复杂度 | 8个参数 | 3个参数 |
| 速率范围 | 5.9-128 kbps | 6.6-23.85 kbps |
| 带宽模式 | NB/WB/SWB/FB | 仅WB |
| 动态切换 | CMR+SDP双机制 | 仅mode-set |
| 互操作模式 | AMR-WB IO(evolutionary) | 原生 |
| RTP打包 | HF+Compact双格式 | 单一格式 |
| 默认编码速率 | 13.2 kbps | 12.65 kbps |
| DTX支持 | EVS DTX(2.8kbps SID) | AMR-WB SID |
| 冗余机制 | max-red + CMR联合 | max-red |
| SDP典型b=AS | 49 kbps | 38 kbps |
EVS的fmtp参数复杂度是AMR-WB的近3倍,这意味着IMS网络设备(P-CSCF/SBC/IBCF)需要更强大的SDP解析和策略处理能力。
stateDiagram-v2
[*] --> Idle: UE空闲态
Idle --> SDP_Offer_Sent: SIP INVITE<br/>(构造SDP Offer)
SDP_Offer_Sent --> Wait_Answer: P-CSCF转发
Wait_Answer --> EVS_Negotiated: 180/200 OK<br/>SDP Answer选择EVS
Wait_Answer --> AMRWB_Fallback: SDP Answer<br/>选择AMR-WB
Wait_Answer --> Codec_Mismatch: 488 Not Acceptable<br/>无公共编解码
Wait_Answer --> SDP_Offer_Sent: 重发INVITE<br/>(超时重试)
EVS_Negotiated --> RTP_Active: ACK确认<br/>RTP流建立
AMRWB_Fallback --> RTP_Active: ACK确认<br/>AMR-WB RTP流
RTP_Active --> CMR_Adaptation: RTP流中<br/>CMR动态调整
CMR_Adaptation --> CMR_Adaptation: 速率升降<br/>(在SDP范围内)
CMR_Adaptation --> Mode_Switch: EVS Primary↔<br/>AMR-WB IO切换
Mode_Switch --> CMR_Adaptation: 继续适配
RTP_Active --> Reinvite: SIP re-INVITE/<br/>UPDATE<br/>(重大参数变更)
Reinvite --> EVS_Negotiated: 新SDP协商
Reinvite --> AMRWB_Fallback: 降级协商
RTP_Active --> Session_End: BYE
Codec_Mismatch --> Idle: 会话终止
Session_End --> Idle: 回到空闲
Q1: evs-mode-switch=1和evs-mode-switch=0在实际部署中有什么区别?
A: evs-mode-switch=1允许UE在EVS Primary和AMR-WB IO模式之间逐帧切换,这是VoNR→VoLTE互操作的关键能力。当evs-mode-switch=0时,UE只能使用EVS Primary模式,如果对端仅支持AMR-WB,则必须回退到独立的AMR-WB编码器(通过SDP中的另一个m=audio行协商),而不能利用EVS的AMR-WB IO兼容模式。实际部署中,运营商通常要求UE默认设置evs-mode-switch=1以确保互操作兼容性。
Q2: SDP Answer中br=13.2(单值)和br=5.9-24.4(范围)有什么影响?
A: br=13.2锁定固定编码速率,双方在整个通话过程中始终使用13.2kbps,CMR的速率切换功能实际被禁用(因为SDP Answer只允许一个速率值)。br=5.9-24.4则保持范围,允许通过CMR在5.9-24.4kbps之间动态调整。前者简化了QoS管理(固定GBR),后者提供了更好的无线适应能力但要求5GC支持动态GBR调整。部分运营商策略倾向于锁定br=13.2以简化资源管理。
Q3: 为什么有时P-CSCF会修改SDP中的bw参数?
A: P-CSCF根据运营商策略和当前网络负载状况可能裁剪bw参数。例如,当NR小区负载高时,P-CSCF可能将bw=nb-wb-swb修改为bw=nb-wb,强制降级到WB模式以节省空口资源(SWB的32kHz采样率比WB的16kHz需要更多空口资源)。这通过与PCF的N7/Rx接口交互获得授权——PCF根据当前小区负载和AMF报告的用户数信息决定是否限速。
Q4: VoNR中EVS的CMR适配与NR物理层的AMBR/GBR有什么关系?
A: CMR适配工作在应用层(EVS编码器内部),而5QI=1的GBR/MBR工作在5GC QoS层。两者是协同关系:CMR在SDP协商的速率范围内微调编码速率(如从13.2kbps调到24.4kbps),而5QI=1的GBR确保空口有足够资源承载这个速率范围。如果CMR请求升速但GBR资源不足,gNB会通过MAC层调度限制实际上行速率,UE编码器端会感知到发送缓冲区积压,从而触发CMR降速——形成一个闭环的自适应机制。
Q5: Header-Full格式和Compact格式什么时候用哪个?
A: 根据 TS 26.114 Section 6.2.3,当evs-mode-switch=1(即支持AMR-WB IO模式)时必须使用Header-Full格式,因为需要在TOC中标识当前帧是EVS Primary还是AMR-WB IO。当evs-mode-switch=0且hf-only=1时可以使用Compact格式以节省带宽。实际VoNR部署中,由于大多数运营商要求evs-mode-switch=1以支持互操作,因此Header-Full格式是主流选择。
本文由「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 等场景全覆盖。
