首页 › deep-tech › 图解IMS:把电话局搬进IP网

图解IMS:把电话局搬进IP网

你在4G/5G手机上按下拨号键的那一刻,这个电话走的路和二十年前的电话完全是两回事:它不再是一条独占的“电路”,而是变成了一堆IP数据包,混在微信消息和视频流量里一起跑。但电话又不能真的退化成“一个会响的App”——它得有号码、有振铃、有计费、能打通固话和别家运营商的用户。IMS(IP多媒体子系统)就是为了完成这件事而生的:在纯IP的网络上,重新建一座“电话局”。

本文带你把这座“电话局”从大堂走到诊室:IMS为什么这样设计、注册时那一下“401挑战”是怎么回事、打电话前的“先修路后说话”是什么机制,以及5G时代VoNR和EPS Fallback的分岔口。

一、电话不只是“传数据”:为什么需要一座新电话局

把语音变成IP包很容易,任何一个网络电话软件都能做到。难的是“电话”这个业务本身自带的一堆老规矩:

  1. 有状态。微信语音断了就断了,但电话有“振铃中”“通话中”“挂机中”的状态,网络得全程盯着这场会话,随时准备计费、转接、放彩铃。
  2. 有身份。电话靠号码寻址,全球互联互通,不是靠“用户名+服务器”。
  3. 有资源。语音对丢包和时延极其敏感,不能和隔壁正在下载电影的人挤一条“尽力而为”的车道。
  4. 有历史包袱。新建的网络必须能打通还活着的2G/3G网络和全球固网。

传统电话局靠“电路交换”天然满足这些要求——每通电话独占一条物理电路,状态、资源、互通全是天生的。但LTE从设计之初就是全IP网络,没有给电路交换留位置。IMS的使命,就是用纯IP的方式把这四样老规矩重新实现一遍:用SIP协议管理会话状态,用号码到SIP地址的映射维持身份,用专用承载保证资源,用网关实现与旧网络的互通。

可以这么类比:CS时代的电话是“专线对讲机”,接通前先给你焊一条专线;IMS时代的电话是“特快专递”,快递网络(IP网)人人共用,但电话这个业务在快递网络里享有一套VIP流程——专用通道、签收确认、全程追踪。

二、为什么选SIP:一套用文本写的“电话礼仪”

IMS选的会话控制协议是SIP(会话发起协议),它由IETF制定,原本是为互联网多媒体会话设计的。选它有几个很实际的理由:

SIP的基本“礼仪”和人类打电话惊人地相似:INVITE相当于“喂,我想找某人通话”,180 Ringing是“响铃了”,200 OK是“喂?”,ACK确认后开始说话,BYE是“挂了啊”。IMS做的事情,就是给这套自由散漫的互联网礼仪,配上运营商级的身份认证、资源预留和业务触发机制。

三、IMS的三台一库:一座电话局的组织架构

IMS的核心节点名字都带CSCF(呼叫会话控制功能),按分工可以记住“三台一库”:

角色 通俗类比 干什么活 关键细节
P-CSCF 小区前台接待 终端接入IMS联系的第一个也是唯一的节点 所有SIP信令都经过它,它与终端之间建立安全保护通道
I-CSCF 医院分诊台 来了个陌生号码,先查档案:该归哪台S-CSCF管 每次注册时动态指派,对外隐藏网络内部结构
S-CSCF 主治医生 真正管你的人:执行鉴权判决、维护注册状态、触发业务 注册成功后,你这个用户的所有会话都由它经手
HSS 档案室 存签约数据、鉴权密钥材料、“某某用户归哪台S-CSCF管”的指派记录 是IMS的信任根,密钥材料永远不出档案室

它们的连接关系是这样的:

flowchart TD
    UE["手机终端<br/>自带SIP用户代理"]
    subgraph HOME["归属网络的IMS电话局"]
        P["P-CSCF<br/>前台接待"]
        I["I-CSCF<br/>分诊台"]
        S["S-CSCF<br/>主治医生"]
        HSS["HSS<br/>档案室"]
        AS["应用服务器<br/>彩铃与呼叫转移"]
    end
    MGCF["媒体网关控制<br/>通往旧电话局的大门"]
    CS["2G/3G及固网"]

    UE -->|"SIP信令"| P
    P -->|"首次注册转交"| I
    I -->|"查询该归谁管"| HSS
    I -->|"转交注册"| S
    S -->|"取鉴权与签约"| HSS
    S -->|"触发业务"| AS
    S -->|"拨打旧网用户"| MGCF
    MGCF -->|"电路交换互通"| CS

注意两个设计巧思:第一,终端永远只认识P-CSCF,归属网络内部怎么绕、S-CSCF有几台,对外全部隐藏——这让运营商可以随意扩容;第二,S-CSCF通过MGCF网关与旧网络互通,所以你用5G手机打你爸的老年机,中间就是在这里完成的“翻译”。

四、开机第一件事:两层注册,别混为一谈

手机开机后其实经历了两次完全不同的注册,这是新手最容易混淆的点:

第一层注册完成后,手机通过默认承载里的配置参数拿到P-CSCF的地址(也可以通过DNS查询归属域名获得),随后开始IMS注册。整个流程最精彩的部分,是那一次刻意的"401":

sequenceDiagram
    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: 转交REGISTER
    I->>H: 这个号码归谁管
    H-->>I: 指派给某台S-CSCF
    I->>S: 转交REGISTER
    S->>H: 取该用户鉴权数据
    H-->>S: 返回挑战材料
    S-->>I: 401 先验证身份
    I-->>P: 401
    P-->>U: 401 附挑战值
    Note over U,P: 手机用卡内密钥算出应答
    U->>P: REGISTER 带鉴权应答
    P->>I: 转交
    I->>S: 转交
    S->>S: 校验应答是否正确
    S-->>U: 200 OK 注册成功

这个“先发401、再收应答”的挑战-应答机制,就是移动通信鉴权思想的延续:密钥永远不会在网络上传输。手机卡里存着根密钥,HSS档案室里也存着同一把,双方各自用挑战值做运算,S-CSCF比对结果——对得上,你就是真身。整个运算在卡的加密模块里完成,即使有人全程抓包,也推不出密钥本身。

还有一个常被忽略的细节:401之后,手机与P-CSCF之间会建立一条安全保护通道,之后的SIP信令全部加密加完整性保护。这意味着——你抓包调试IMS,第一笔REGISTER能看到,后面的REGISTER可能全是密文。这是IMS调试的第一大坑,后面实战篇再说。

注册成功还有一步“隐藏剧情”:S-CSCF会代替你向应用服务器做第三方注册,相当于主治医生把你介绍给各专科诊室——“这位用户的彩铃归你管、呼叫转移归你管”。之后任何来电,S-CSCF按用户签约的业务清单逐个过一遍服务器,这就是IMS能灵活叠加增值服务的机关。

五、注册完才敢打电话:先把路修好,再开口说话

IMS注册只解决“我在网上”。真正拨号时,SIP的INVITE流程里藏着一个互联网电话软件通常不做、电话却必须做的机制——资源预留(预置条件)。

想象一个场景:INVITE发出去了、对方手机都开始振铃了,结果主叫的无线信道拥堵,语音专载建不起来——对方接起来却听不见你。为杜绝这种尴尬,IMS的标准呼叫流程强制要求:双方都确认“语音专用通道已就绪”之前,不许振铃。

sequenceDiagram
    participant A as 主叫手机
    participant X as 主叫侧IMS
    participant Y as 被叫侧IMS
    participant B as 被叫手机
    A->>X: INVITE 请求通话
    X->>Y: 转发INVITE
    Y->>B: 转发INVITE
    B-->>Y: 183 带媒体参数
    Y-->>X: 183
    X-->>A: 183
    Note over A,X: 主叫侧激活语音专载
    A->>X: UPDATE 资源已就绪
    X->>Y: UPDATE
    Y->>B: UPDATE
    Note over B,Y: 被叫侧激活语音专载
    B-->>Y: 180 振铃
    Y-->>X: 180
    X-->>A: 180
    B-->>Y: 200 OK 接听
    Y-->>X: 200 OK
    X-->>A: 200 OK
    A->>X: ACK
    X->>Y: ACK
    Y->>B: ACK

那个“语音专载”,在4G里叫QCI 1的GBR专用承载,在5G里对应5QI 1——它是一条由网络保证带宽和时延的语音快车道,与刷网页用的默认承载物理隔离。信令走信令承载,语音包走语音专载,互不干扰。

那么一条20毫秒的语音包到底多大?可以用一个简单的公式估算:

$$L_{负载} = R_{编码} \times T_{打包}$$

以宽带语音编码AMR-WB的12.65 kbps档位、20毫秒打包周期计算:

$$L_{负载} = 12.65\ \text{kbps} \times 0.02\ \text{s} = 253\ \text{bit} \approx 32\ \text{字节}$$

32字节的语音负载,要套上RTP/UDP/IP一共约40字节的协议头才能跑IP网——头比肉还重。所以移动网络普遍启用头压缩,把40字节压到几个字节。这也是“为什么电话要用专门承载、专门优化”的又一例证:它对时延、抖动、开销都苛刻到普通数据业务无法想象。业界通行的经验值是:语音单向时延超过150毫秒,通话体验就会明显变差——这约等于要求你说完话150毫秒内对方耳朵必须收到。

六、5G时代的一通电话:三条路怎么选

到了5G,IMS这座“电话局”原封不动地搬了过来——VoNR和VoLTE用的其实是同一套IMS,变的只是底下:接入网从LTE换成NR,核心网从EPC换成5GC,语音专载从QCI 1换成5QI 1。但现实中,很多5G手机打电话时信号图标会掉回4G,原因就是下面这个分岔口:

flowchart TD
    A["手机发起语音呼叫"] --> B{"所在网络是否支持<br/>VoNR端到端打通"}
    B -->|"是"| C["VoNR<br/>语音留在5G<br/>走5QI1专载"]
    B -->|"否"| D["EPS Fallback<br/>先把手机切回4G"]
    D --> E["回落完成后<br/>按VoLTE方式通话<br/>走QCI1专载"]
    C --> F["通话结束"]
    E --> F
维度 CS域语音(2G/3G) VoLTE VoNR
承载方式 独占电路 IP包 IP包
接入网 GSM/WCDMA等 LTE NR(5G)
核心网 传统CS核心 EPC + IMS 5GC + IMS
信令协议 电话局内部信令 SIP SIP
语音专用通道 物理电路 QCI 1专载 5QI 1专载
打电话时能上网 勉强甚至不能 可以 可以
离开覆盖时 原生电路 SRVCC切回2G/3G 回落机制衔接

两个容易搞混的机制放在一起说清楚:

标准允许多种回落与组网实现,具体行为以各运营商和厂家的官方说明为准。

七、实战连接:IMS注册排障的五个抓手

在现网和实验室里,语音问题最后八成会落到IMS注册和呼叫建立上。下面是调试时真正会用到这张知识地图的场景:

  1. 第一层注册成功、IMS注册失败。典型症状:能上网、刷视频正常,就是不能打电话。排查顺序:① 手机是否建起了IMS专用的APN连接(很多人误以为默认上网连接就够了——IMS注册必须走IMS接入点);② P-CSCF地址有没有随连接配置正确下发;③ 终端卡的ISIM数据是否开通。
  2. 抓包“看不到”SIP信令。第一笔REGISTER可见,之后全没了?别慌,注册成功后信令走保护通道加密了。要么在P-CSCF内侧解密点抓,要么用网络侧跟踪工具看,不要误判成“手机没发信令”。
  3. 401之后没有第二次REGISTER。多半是卡内鉴权数据与HSS不一致,或终端时钟偏差导致挑战值校验失败,S-CSCF会拒绝并可能触发临时封禁。
  4. SIP消息里的地址被改坏。终端经过NAT或某些网关时,SIP消息体内的联系地址与实际IP对不上,会导致后续请求被拒——这正是现网部署SBC(会话边界控制器)的原因之一:由它统一做NAT穿越和拓扑隐藏。
  5. 5G下打不出电话。先确认是EPS Fallback未配置、还是VoNR未开通,还是手机设置里关掉了“5G通话/VoNR开关”——用户侧一个开关,网络侧一套配置,三者都可能。

对应到现网运维指标,运营商紧盯的就是:IMS注册成功率、呼叫建立时长、EPS Fallback成功率、SRVCC切换成功率。这四个数字,每一个背后都是本文的一张时序图。

八、三个常见误解

常见问题

Q1: VoLTE和微信语音到底差在哪? A: 微信语音是OTT应用,走“尽力而为”的普通数据通道,网络拥堵时卡顿、丢字;VoLTE由网络专门批准一条有质量保证的语音专载,且有号码体系全球互通、支持紧急呼叫、有运营商级计费与可靠性。一句话:一个是快递 economy 舱,一个是打电话专机。

Q2: IMS注册和手机开机注册是一回事吗? A: 不是。开机注册解决“终端接入网络、拿到IP”;IMS注册解决“号码在电话局报到、可以收发呼叫”。只做了前者你能上网但不能接打电话,这是排障时最常用的分界线。

Q3: VoNR和VoLTE对用户的区别大吗? A: 对用户几乎透明——同一套IMS、同一套号码、通常同样的EVS宽带编码。区别在网络侧:接入网与核心网都换成5G体系后,空口时延更低、语音专载由5G QoS框架管理,理论上呼叫建立更快、通话抗抖动更好。

Q4: 为什么我的5G手机一打电话就跳到4G? A: 大概率是EPS Fallback:所在区域尚不具备VoNR端到端条件,网络主动把手机送回4G用VoLTE接通。等运营商逐步开通VoNR,这个现象会减少。

Q5: SRVCC和EPS Fallback的区别是什么? A: 时机不同。EPS Fallback发生在通话建立前——“5G打不了,先回4G再打”;SRVCC发生在通话进行中——“4G上正说着,快出覆盖了,把通话无缝挪到2G/3G”。一个防尴尬,一个防掉话。

参考来源

  1. IP Multimedia Subsystem - Wikipedia — IMS架构、P/I/S-CSCF与HSS角色、注册与安全机制的权威概述
  2. Voice over LTE - Wikipedia — VoLTE定义、专载与高清语音、SRVCC连续性说明
  3. Session Initiation Protocol - Wikipedia — SIP消息礼仪与INVITE/183/PRACK/UPDATE/200流程
  4. Enhanced Voice Services - Wikipedia — EVS语音编码在VoLTE/VoNR中的位置
  5. Single Radio Voice Call Continuity - Wikipedia — SRVCC锚点与语音连续性原理

本文由「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 等场景全覆盖。

51学通信知识星球海报-扫码加入