Skip to content

页面迁移说明

VoLTE/VoNR 相关内容已迁移到新的 IMS 专题章节:

如你是从旧链接进入,请直接使用新地址:/ims/volte

VoLTE 与 IMS 系统集成

本文档介绍 VoLTE (Voice over LTE) 和 VoNR (Voice over NR) 的系统架构概念,以及如何与 Open5GS 集成。

什么是 VoLTE/VoNR

VoLTE 是在 4G LTE 网络上提供语音服务的技术,而 VoNR 是其 5G 对应版本。与传统电路交换 (CS) 语音不同,VoLTE/VoNR 将语音作为 IP 数据包在分组交换网络上传输。

传统语音 vs VoLTE

传统 2G/3G 语音架构:
┌──────┐     电路交换      ┌──────┐
│  UE  │ ───────────────▶ │ MSC  │ ───▶ PSTN
└──────┘                   └──────┘

VoLTE/VoNR 架构:
┌──────┐     分组交换      ┌──────┐     ┌─────┐
│  UE  │ ───────────────▶ │ EPC/ │ ──▶ │ IMS │ ───▶ SIP/PSTN
└──────┘   (IP packets)   │ 5GC  │     └─────┘

关键区别:

  • 全 IP 化: 语音被编码为 IP 数据包
  • QoS 保障: 通过专用承载 (Dedicated Bearer) 保证语音质量
  • 统一网络: 语音和数据共用同一网络基础设施

IMS 架构概述

IMS (IP Multimedia Subsystem) 是 VoLTE/VoNR 的核心,负责:

  • SIP 信令处理
  • 用户认证与注册
  • 会话建立与管理
  • 媒体协商

IMS 核心网元

                        ┌─────────────────────────────────────┐
                        │              IMS Core               │
                        │                                     │
┌──────┐    SIP    ┌────┴────┐    ┌─────────┐    ┌─────────┐ │
│  UE  │ ────────▶ │ P-CSCF  │───▶│ I-CSCF  │───▶│ S-CSCF  │ │
└──────┘           └─────────┘    └─────────┘    └────┬────┘ │
                        │                              │      │
                        │         ┌─────────┐    ┌────┴────┐ │
                        │         │  PCRF/  │    │   HSS   │ │
                        │         │  PCF    │    │ (FHoSS) │ │
                        │         └─────────┘    └─────────┘ │
                        └─────────────────────────────────────┘
网元全称功能
P-CSCFProxy CSCF第一接触点,处理 SIP 信令压缩、IPSec
I-CSCFInterrogating CSCF查询 HSS,选择 S-CSCF
S-CSCFServing CSCF核心处理,用户注册、会话控制
HSSHome Subscriber ServerIMS 用户数据库(可复用 Open5GS HSS 或独立部署 FHoSS)

Kamailio 的角色

Kamailio 是一个开源 SIP 服务器,在 VoLTE 部署中扮演 CSCF 角色:

  • 模块化架构: 支持 IMS 扩展模块 (ims_*)
  • 高性能: 可处理大量 SIP 事务
  • 灵活配置: 通过脚本语言定制路由逻辑

Kamailio 实现的 IMS 功能:

  • ims_registrar_pcscf / ims_registrar_scscf: 用户注册
  • ims_auth: 认证 (AKA)
  • ims_usrloc_*: 用户位置管理
  • ims_charging: 计费接口
  • ims_qos: QoS 策略 (与 PCRF 交互)

VoLTE vs VoNR 架构对比

虽然 VoLTE 和 VoNR 都使用 IMS 进行语音服务,但它们连接到不同的核心网:

架构差异

VoLTE (4G EPC):
┌──────┐    ┌─────┐    ┌─────────────────────────────┐    ┌───────────┐
│  UE  │───▶│ eNB │───▶│  EPC (MME, SGW, PGW, PCRF)  │───▶│    IMS    │
└──────┘ Uu └─────┘ S1 └─────────────────────────────┘ Rx └───────────┘

VoNR (5G SA):
┌──────┐    ┌─────┐    ┌─────────────────────────────┐    ┌───────────┐
│  UE  │───▶│ gNB │───▶│  5GC (AMF, SMF, UPF, PCF)   │───▶│    IMS    │
└──────┘ Uu └─────┘ N2 └─────────────────────────────┘ N5 └───────────┘
                       N3

网元映射

功能4G EPC (VoLTE)5G Core (VoNR)
接入管理MMEAMF
会话管理MME + SGW-C + PGW-CSMF
用户面SGW-U + PGW-UUPF
策略控制PCRFPCF
用户数据HSSUDM + UDR
IMS 连接接口Rx (Diameter)N5 (HTTP/2) 或 Rx (Diameter)

QoS 机制对比

特性VoLTE (4G)VoNR (5G)
QoS 标识QCI (QoS Class Identifier)5QI (5G QoS Identifier)
语音媒体QCI 1 (GBR)5QI 1 (GBR)
IMS 信令QCI 5 (Non-GBR)5QI 5 (Non-GBR)
承载概念EPS BearerQoS Flow

Open5GS 与 IMS 的集成

4G VoLTE 架构

┌─────────────────────────────────────────────────────────────────┐
│                         VoLTE System (4G EPC)                    │
│                                                                  │
│  ┌─────────────────────────────┐  ┌───────────────────────────┐ │
│  │        Open5GS (EPC)        │  │     IMS (Kamailio)        │ │
│  │                             │  │                           │ │
│  │  ┌─────┐ ┌─────┐ ┌─────┐   │  │  ┌───────┐ ┌───────────┐  │ │
│  │  │ MME │ │ SGW │ │ PGW │   │  │  │P-CSCF │ │ I/S-CSCF  │  │ │
│  │  └──┬──┘ └──┬──┘ └──┬──┘   │  │  └───┬───┘ └─────┬─────┘  │ │
│  │     │       │       │      │  │      │           │        │ │
│  │     └───────┴───────┘      │  │      │     ┌─────┴─────┐  │ │
│  │             │              │  │      │     │   FHoSS   │  │ │
│  │  ┌──────────┴──────────┐   │  │      │     └───────────┘  │ │
│  │  │       PCRF ◀────────┼───┼──┼──────┘                    │ │
│  │  └─────────────────────┘   │  │  Rx (Diameter)            │ │
│  │                             │  │                           │ │
│  │  ┌─────────────────────┐   │  │                           │ │
│  │  │    HSS (Open5GS)    │   │  │                           │ │
│  │  └─────────────────────┘   │  │                           │ │
│  └─────────────────────────────┘  └───────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘

5G VoNR 架构

┌─────────────────────────────────────────────────────────────────┐
│                         VoNR System (5G SA)                      │
│                                                                  │
│  ┌─────────────────────────────┐  ┌───────────────────────────┐ │
│  │        Open5GS (5GC)        │  │     IMS (Kamailio)        │ │
│  │                             │  │                           │ │
│  │  ┌─────┐ ┌─────┐ ┌─────┐   │  │  ┌───────┐ ┌───────────┐  │ │
│  │  │ AMF │ │ SMF │ │ UPF │   │  │  │P-CSCF │ │ I/S-CSCF  │  │ │
│  │  └──┬──┘ └──┬──┘ └──┬──┘   │  │  └───┬───┘ └─────┬─────┘  │ │
│  │     │       │       │      │  │      │           │        │ │
│  │     │    ┌──┴──┐    │      │  │      │     ┌─────┴─────┐  │ │
│  │     │    │ NRF │    │      │  │      │     │   FHoSS   │  │ │
│  │     │    └─────┘    │      │  │      │     └───────────┘  │ │
│  │  ┌──┴───────────────┴──┐   │  │      │                    │ │
│  │  │       PCF ◀─────────┼───┼──┼──────┘                    │ │
│  │  └─────────────────────┘   │  │  N5 (HTTP/2) 或 Rx        │ │
│  │                             │  │                           │ │
│  │  ┌─────────────────────┐   │  │                           │ │
│  │  │   UDM + UDR + AUSF  │   │  │                           │ │
│  │  └─────────────────────┘   │  │                           │ │
│  └─────────────────────────────┘  └───────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘

Kamailio 与 Open5GS 的连接

核心连接点:P-CSCF ↔ PCRF/PCF

Kamailio (P-CSCF) 与 Open5GS 的核心连接是通过策略控制接口,用于:

  • 请求 QoS 保障(创建专用承载/QoS Flow)
  • 通知媒体会话状态变化
  • 接收策略决策

4G 场景:Rx 接口 (Diameter)

┌───────────┐                              ┌───────────┐
│  P-CSCF   │         Rx Interface         │   PCRF    │
│(Kamailio) │◀────────Diameter────────────▶│ (Open5GS) │
└───────────┘        (TCP/SCTP)            └───────────┘
     │                                           │
     │  1. AAR (AA-Request)                      │
     │  ────────────────────────────────────────▶│
     │     - 请求语音媒体 QoS                      │
     │     - 携带 SDP 媒体信息                     │
     │                                           │
     │  2. AAA (AA-Answer)                       │
     │  ◀────────────────────────────────────────│
     │     - 确认 QoS 请求                        │
     │                                           │
     │                        ┌────────────────┐ │
     │                        │ PCRF 触发 SGW   │ │
     │                        │ 创建专用承载     │ │
     │                        │ (Gx → SGW/PGW) │ │
     │                        └────────────────┘ │

Kamailio 配置要点 (ims_qos 模块)

# P-CSCF 中的 Diameter Rx 配置
modparam("ims_qos", "rx_dest_realm", "epc.mnc001.mcc001.3gppnetwork.org")
modparam("ims_qos", "rx_forced_peer", "pcrf.epc.mnc001.mcc001.3gppnetwork.org")

5G 场景:N5 接口 (HTTP/2) 或 Rx 接口

5G 标准定义了 N5 接口使用 HTTP/2 + JSON (RESTful API),但实际部署中也可继续使用 Diameter Rx 接口:

选项 1: 继续使用 Rx (Diameter) - 更简单,兼容现有 IMS

┌───────────┐                              ┌───────────┐
│  P-CSCF   │         Rx Interface         │    PCF    │
│(Kamailio) │◀────────Diameter────────────▶│ (Open5GS) │
└───────────┘                              └───────────┘

Open5GS PCF 支持 Rx 接口,配置方式与 PCRF 类似。

选项 2: N5 接口 (HTTP/2) - 原生 5G 方式

┌───────────┐                              ┌───────────┐
│  P-CSCF   │         N5 Interface         │    PCF    │
│           │◀────────HTTP/2──────────────▶│ (Open5GS) │
└───────────┘        (RESTful)             └───────────┘
     │                                           │
     │  POST /npcf-policyauthorization/v1/...   │
     │  ────────────────────────────────────────▶│
     │     - 请求 AF Session                     │
     │                                           │
     │  201 Created                              │
     │  ◀────────────────────────────────────────│

注意: Kamailio 原生 IMS 模块主要支持 Diameter。使用 N5 需要额外开发或使用适配器。

关键接口汇总

接口连接4G 协议5G 协议用途
Rx/N5P-CSCF ↔ PCRF/PCFDiameterHTTP/2 或 DiameterQoS 请求
Gx/N7PCRF/PCF ↔ PGW/SMFDiameterHTTP/2策略下发
CxI/S-CSCF ↔ HSSDiameterDiameter用户认证
ShAS ↔ HSSDiameterDiameter用户数据
GmUE ↔ P-CSCFSIPSIPIMS 信令

数据流:VoNR 呼叫建立

    UE         gNB        AMF/SMF       PCF        P-CSCF      S-CSCF
     │          │           │            │           │           │
     │──────────┼───────────┼────────────┼───────────┼──────────▶│
     │          │           │            │           │  REGISTER │
     │          │           │            │           │           │
     │──────────┼───────────┼────────────┼───────────┼──────────▶│
     │          │           │            │           │  INVITE   │
     │          │           │            │           │           │
     │          │           │            │◀──────────│           │
     │          │           │            │  Rx AAR   │           │
     │          │           │            │  (请求 QoS)│           │
     │          │           │            │           │           │
     │          │           │◀───────────│           │           │
     │          │           │   N7       │           │           │
     │          │           │ (Policy)   │           │           │
     │          │           │            │           │           │
     │◀─────────│           │            │           │           │
     │  QoS Flow Creation   │            │           │           │
     │  (5QI=1 for voice)   │            │           │           │
     │          │           │            │           │           │
     │══════════════════════════════════════════════════════════▶│
     │                    RTP Media (via UPF)                    │

HSS 选择

部署 IMS 时有两种 HSS 策略:

  1. 独立 IMS HSS (FHoSS)

    • 完整的 IMS HSS 实现
    • 需要同步用户数据
    • 更完整的 IMS 功能支持
  2. 复用 Open5GS HSS

    • 简化部署
    • 用户数据统一管理
    • 需要配置 Cx 接口

APN 配置

VoLTE 需要配置专用的 IMS APN:

yaml
# SMF/PGW 配置示例
session:
  - subnet: 10.45.0.1/16
    dnn: internet
    
  - subnet: 10.46.0.1/16
    dnn: ims
    # IMS APN 关键配置
    # - QCI 5 (IMS signaling)
    # - 专用承载用于语音 (QCI 1)

UE 需要配置两个 APN:

  • internet: 默认数据连接
  • ims: IMS 信令连接

DNS 在 VoLTE/VoNR 中的作用

DNS 在 IMS 系统中至关重要,用于服务发现和域名解析。

3GPP 域名格式

IMS/EPC 使用标准化的域名格式,根据 MCC/MNC 构建:

bash
# 2 位 MNC 需要补零
[ ${#MNC} == 3 ] && IMS_DOMAIN="ims.mnc${MNC}.mcc${MCC}.3gppnetwork.org" \
                 || IMS_DOMAIN="ims.mnc0${MNC}.mcc${MCC}.3gppnetwork.org"

# 示例 (MCC=001, MNC=01):
# ims.mnc001.mcc001.3gppnetwork.org
# epc.mnc001.mcc001.3gppnetwork.org
# mnc001.mcc001.pub.3gppnetwork.org

VoLTE 系统通常需要配置以下 DNS Zone:

Zone 类型域名格式用途
IMS Zoneims.mncXXX.mccXXX.3gppnetwork.orgIMS 网元发现 (CSCF, HSS)
EPC Zoneepc.mncXXX.mccXXX.3gppnetwork.orgEPC 网元 (PCRF, ePDG AAA)
Pub 3GPP ZonemncXXX.mccXXX.pub.3gppnetwork.org公共服务 (ePDG, AES)
E164 Zonee164.arpaENUM 电话号码映射

完整的 DNS Zone 配置示例

以下示例基于 BIND DNS 服务器,展示实际的 VoLTE DNS 配置。

IMS Zone 文件

dns
$ORIGIN ims.mnc001.mcc001.3gppnetwork.org.
$TTL 1W
@                       1D IN SOA       localhost. root.localhost. (
                                        1               ; serial
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                        1D IN NS        ns
ns                      1D IN A         10.0.0.2

; P-CSCF - 用户第一接触点 (端口 5060)
pcscf                   1D IN A         10.0.0.10
_sip._udp.pcscf         1D SRV 0 0 5060 pcscf
_sip._tcp.pcscf         1D SRV 0 0 5060 pcscf

; I-CSCF - 入口控制 (端口 4060)
icscf                   1D IN A         10.0.0.11
_sip._udp               1D SRV 0 0 4060 icscf
_sip._tcp               1D SRV 0 0 4060 icscf

; S-CSCF - 服务控制 (端口 6060)
scscf                   1D IN A         10.0.0.12
_sip._udp.scscf         1D SRV 0 0 6060 scscf
_sip._tcp.scscf         1D SRV 0 0 6060 scscf

; HSS (IMS 用户数据库)
hss                     1D IN A         10.0.0.13

; SMSC - 短信中心 (端口 7090)
smsc                    1D IN A         10.0.0.14
_sip._udp.smsc          1D SRV 0 0 7090 smsc
_sip._tcp.smsc          1D SRV 0 0 7090 smsc

; IBCF - 互联边界控制 (端口 5090)
ibcf                    1D IN A         10.0.0.15
_sip._udp.ibcf          1D SRV 0 0 5090 ibcf
_sip._tcp.ibcf          1D SRV 0 0 5090 ibcf

; Voicemail 服务
voicemail               1D IN A         10.0.0.15
_sip._udp.voicemail     1D SRV 0 0 5090 voicemail
_sip._tcp.voicemail     1D SRV 0 0 5090 voicemail

EPC Zone 文件

dns
$ORIGIN epc.mnc001.mcc001.3gppnetwork.org.
$TTL 1W
@                       1D IN SOA       localhost. root.localhost. (
                                        1               ; serial
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                        1D IN NS        epcns
epcns                   1D IN A         10.0.0.2

; PCRF - 策略控制 (Rx 接口)
pcrf                    1D IN A         10.0.0.20

; ePDG AAA 服务 (VoWiFi)
aaa                     1D IN A         10.0.0.21

Pub 3GPP Zone 文件 (VoWiFi 相关)

dns
$ORIGIN mnc001.mcc001.pub.3gppnetwork.org.
$TTL 1W
@                       1D IN SOA       localhost. root.localhost. (
                                        1               ; serial
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

                        1D IN NS        pubns
pubns                   1D IN A         10.0.0.2

; AES - Access Entitlement Server (VoWiFi 授权)
aes                     1D IN A         10.0.0.22

; ePDG 入口点
epdg.epc                1D IN A         10.0.0.23

ENUM Zone 文件 (E.164)

ENUM 用于将电话号码转换为 SIP URI:

dns
$TTL 1h
@ IN SOA ns.e164.arpa. root.e164.arpa. (
                                        2009010918      ; serial
                                        3600            ; refresh
                                        3600            ; retry
                                        3600            ; expire
                                        3600            ; minimum TTL
)
@ IN NS e164.arpa.
@ IN A 10.0.0.2

; 通配符 - 将任意 tel:+xxxx 转换为 sip:xxxx@ims.domain
* IN NAPTR 10 100 "u" "E2U+sip" "!(^.*$)!sip:\\1@ims.mnc001.mcc001.3gppnetwork.org!" .

; 特定国家代码路由到 IBCF (例如德国 +49)
*.9.4 IN NAPTR 20 100 "u" "E2U+sip" "!(^.*$)!sip:\\1@ibcf.ims.mnc001.mcc001.3gppnetwork.org!" .

; 英国 +44 路由示例
; *.4.4 IN NAPTR 20 100 "u" "E2U+sip" "!(^.*$)!sip:\\1@ibcf.ims.mnc001.mcc001.3gppnetwork.org!" .

BIND 配置文件 (named.conf)

options {
    directory "/var/cache/bind";
    
    forwarders {
        8.8.8.8;        # 公网 DNS 转发
    };

    dnssec-validation no;
    allow-query { any; };
    auth-nxdomain no;
    listen-on-v6 { any; };
};

zone "ims.mnc001.mcc001.3gppnetwork.org" {
    type master;
    file "/etc/bind/ims_zone";
};

zone "epc.mnc001.mcc001.3gppnetwork.org" {
    type master;
    file "/etc/bind/epc_zone";
};

zone "mnc001.mcc001.pub.3gppnetwork.org" {
    type master;
    file "/etc/bind/pub_3gpp_zone";
};

zone "e164.arpa" {
    type master;
    file "/etc/bind/e164.arpa";
};

IMS 组件端口汇总

组件默认端口协议说明
P-CSCF5060SIP (UDP/TCP)UE 第一接触点
I-CSCF4060SIP (UDP/TCP)域间入口
S-CSCF6060SIP (UDP/TCP)核心会话控制
SMSC7090SIP (UDP/TCP)短信服务
IBCF5090SIP (UDP/TCP)互联边界控制

DNS 配置要点

  1. 内网 DNS 服务器: 需要部署专用 DNS 服务器(如 dnsmasq, BIND)
  2. PCO 传递: EPC/5GC 通过 PCO (Protocol Configuration Options) 将 DNS 服务器地址传递给 UE
  3. 分离解析: IMS 域名和公网域名可能需要不同的解析策略
  4. SRV 记录: 必须配置 SRV 记录以支持 SIP 服务发现
  5. ENUM 配置: 如需支持传统电话号码呼叫,需配置 e164.arpa zone

VoNR 的 DNS 差异

VoNR 与 VoLTE 的 DNS 配置类似,但:

  • 使用 5G 核心网的 DNS 配置机制
  • 可能使用不同的域名后缀
  • 支持 IPv6 (AAAA 记录)

通话建立流程

简化的 VoLTE 呼叫流程

    UE-A              IMS              UE-B
      │                │                │
      │  1. INVITE     │                │
      │ ──────────────▶│                │
      │                │  2. INVITE     │
      │                │ ──────────────▶│
      │                │                │
      │                │  3. 180 Ringing│
      │  4. 180 Ringing│◀────────────── │
      │◀────────────── │                │
      │                │                │
      │                │  5. 200 OK     │
      │  6. 200 OK     │◀────────────── │
      │◀────────────── │                │
      │                │                │
      │  7. ACK        │                │
      │ ──────────────▶│  8. ACK        │
      │                │ ──────────────▶│
      │                │                │
      │◀═══════════════════════════════▶│
      │         RTP 媒体流               │

QoS 专用承载

语音通话需要建立 QoS 保障的专用承载/QoS Flow:

4G QCI5G 5QI类型用途
11GBR语音媒体 (RTP)
55Non-GBRIMS 信令 (SIP)

4G 流程:PCRF 通过 Rx 接口接收 P-CSCF 的请求,然后通过 Gx 接口指示 PGW 创建专用承载。

5G 流程:PCF 通过 Rx/N5 接口接收 P-CSCF 的请求,然后通过 N7 接口指示 SMF 创建 QoS Flow。

5G SA 下的语音方案选择

在 5G SA 部署中,有多种语音实现方案:

方案 1: VoNR (原生)

┌──────┐    ┌─────┐    ┌─────────┐    ┌─────────┐
│  UE  │───▶│ gNB │───▶│   5GC   │───▶│   IMS   │
└──────┘    └─────┘    └─────────┘    └─────────┘
              5G NR        ↑               ↑
                     PCF + SMF + UPF    Kamailio
  • 优点: 纯 5G 体验,低延迟
  • 要求: UE、gNB、5GC、IMS 全部支持 VoNR

方案 2: EPS Fallback (EPSFB)

当发起语音呼叫时,UE 回落到 4G 使用 VoLTE:

                           呼叫发起
┌──────┐    ┌─────┐         │          ┌─────┐    ┌─────────┐
│  UE  │───▶│ gNB │─────────┼─────────▶│ eNB │───▶│   EPC   │───▶ IMS
└──────┘    └─────┘         │          └─────┘    └─────────┘
              5G NR    Handover to 4G    4G LTE      VoLTE
  • 优点: 复用现有 VoLTE 基础设施
  • 缺点: 呼叫建立延迟增加 (需要网络切换)
  • 适用: 5G 初期部署,VoNR 未就绪时

方案 3: VoWiFi (Voice over WiFi)

通过 WiFi 接入 IMS:

┌──────┐    ┌──────┐    ┌─────────┐    ┌─────────┐
│  UE  │───▶│ WiFi │───▶│  ePDG   │───▶│   IMS   │
└──────┘    └──────┘    └─────────┘    └─────────┘
  • 优点: 不依赖蜂窝覆盖
  • 要求: ePDG (Evolved Packet Data Gateway)

SMS 在 LTE/5G 中的处理

SMS 与语音是独立的服务,VoLTE/VoNR 解决了语音问题,但 SMS 需要单独处理。

传统 SMS vs LTE/5G SMS

传统 2G/3G SMS:
┌──────┐    电路交换信令    ┌──────┐    ┌──────┐
│  UE  │ ─────────────────▶│ MSC  │───▶│ SMSC │
└──────┘     (SS7/MAP)     └──────┘    └──────┘

LTE/5G 没有电路交换,需要其他方案!

LTE/5G 中的 SMS 方案

方案 1: SMS over IMS (SMSoIP)

SMS 通过 IMS 以 SIP MESSAGE 方式传输:

┌──────┐         ┌─────────┐         ┌───────────┐         ┌──────┐
│  UE  │──SIP───▶│ P-CSCF  │────────▶│ IP-SM-GW  │────────▶│ SMSC │
└──────┘ MESSAGE └─────────┘         └───────────┘  MAP    └──────┘
                   (IMS)            (SIP ↔ MAP 转换)

组件:

  • IP-SM-GW (IP Short Message Gateway): 将 SIP MESSAGE 转换为传统 SMSC 协议
  • SMSC: 短信中心,存储转发短信

优点: 复用 IMS 基础设施 Kamailio 支持: 需要配置 SIP MESSAGE 路由到 IP-SM-GW

方案 2: SMS over NAS (SMSoNAS)

SMS 通过 NAS 信令传输(不经过 IMS):

4G:
┌──────┐    NAS     ┌──────┐    SGd     ┌──────┐
│  UE  │──────────▶│ MME  │───────────▶│ SMSC │
└──────┘           └──────┘  (Diameter) └──────┘

5G:
┌──────┐    NAS     ┌──────┐    N21     ┌──────┐
│  UE  │──────────▶│ AMF  │───────────▶│ SMSF │───▶ SMSC
└──────┘           └──────┘            └──────┘

5G 特有网元:

  • SMSF (SMS Function): 5G 核心网中的短信功能网元

优点: 不依赖 IMS Open5GS: 目前 SMSoNAS 支持有限

方案 3: CSFB for SMS (仅 4G)

回落到 2G/3G 网络发送 SMS(过时方案)

SMS 方案对比

方案依赖 IMS需要额外组件Open5GS 支持
SMSoIP✅ 是IP-SM-GW, SMSC需要配置 Kamailio
SMSoNAS (4G)❌ 否SMSC有限
SMSoNAS (5G)❌ 否SMSF, SMSC开发中
CSFB❌ 否2G/3G 网络N/A

实际部署建议

对于实验环境:

  1. 最简方案: 暂不实现 SMS(仅测试语音)
  2. SMSoIP: 如果已有 IMS (Kamailio),添加 IP-SM-GW
  3. 开源 SMSC: 可考虑使用 Osmocom 项目的 OsmoMSC

注意: SMS 功能在私有 LTE/5G 网络中通常不是必须的,许多部署选择跳过 SMS,使用 OTT 消息应用(如微信、WhatsApp)替代。

部署考虑

系统组件清单

组件实现用途
EPC/5GCOpen5GS核心网
P-CSCFKamailioSIP 代理
I-CSCFKamailio入口控制
S-CSCFKamailio服务控制
HSSOpen5GS / FHoSS用户数据
DNSdnsmasq / BIND域名解析
RTPProxyrtpproxy媒体中继

网络要求

  • 延迟: 语音对延迟敏感,网络延迟应 < 100ms
  • QoS: 需要正确配置 QoS 承载
  • IP 连通性: UE 需要能够访问 P-CSCF

UE 要求

  • 支持 VoLTE/VoNR
  • 正确的 IMS APN 配置
  • 匹配的 USIM 配置(ISIM 或配置在 USIM 中)

调试工具

bash
# 抓包分析
wireshark -f "sip or diameter or gtpv2 or s1ap or ngap"

# Wireshark 过滤器
# VoLTE 相关协议
sip || diameter || diameter.3gpp || gtpv2

# 5G VoNR
sip || diameter || pfcp || ngap

参考资料

下一步

Released under the MIT License.