【5G VoNR】VoNR流程简述

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!
博主链接

本人就职于国际知名终端厂商,负责modem芯片研发。
在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G技术研究。


博客内容主要围绕:
       5G/6G协议讲解
       高级C语言讲解
       Rust语言讲解



文章目录

  • 一、VoNR流程简述
    • 1.1 整体流程
    • 1.2 部分详细流程
    • 1.3 信令示例
  • 二、VoNR关键技术点

请添加图片描述

一、VoNR流程简述

1.1 整体流程

       VoNR呼叫流程与VoLTE呼叫非常相似。整个VoNR呼叫流程包括五个阶段,如下图所示。它从检测5G NR小区开始,注册到5G gNB和5GC,并通过5QI=6-9的非GBR QoS流和Data DNN 建立默认的PDU会话。

请添加图片描述
在此之后,UE与IMS DNN建立默认的Internet PDU会话。然后,UE通过默认IMS PDU注册到IMS,并建立专用的PDU会话用于建立VoNR MO/MT呼叫。

1.2 部分详细流程

       通过VoNR,可以在终端和NR网络上的IMS之间建立基于IP的专用语音承载,使NR终端可以直接在NR网络上进行语音业务。根据终端应用的不同,VoNR呼叫分为正常呼叫和紧急呼叫。正常呼叫和紧急呼叫在两个终端之间建立和释放语音承载的过程不同。

请添加图片描述

  1. 当终端发起呼叫时,在主叫终端和服务gNodeB之间建立RRC连接;
  2. 5G核心网建立5QI为5的QoS流,用于承载主叫终端的SIP信令,而gNodeB建立与此QoS流相应的DRB;
  3. 在被叫终端与其服务的gNodeB之间建立RRC连接;
  4. 5GC为被叫终端建立一个5QI为5的QoS流来承载SIP信令,而gNodeB建立与此QoS流相应的DRB;
  5. 主叫终端和被叫终端与IMS对编解码方案、IP地址、端口号、主叫终端和被叫终端信息以及其他语音业务信息进行SIP协商;
  6. SIP协商成功后,5GC建立一个5QI为1的QoS流,供主叫终端承载RTP (Real-Time Transport Protocol)和RTCP (Real-Time Transport Control Protocol)数据流,而gNodeB建立与此QoS流相应的DRB;
  7. 5GC为被叫终端建立一个5QI为1的QoS流来承载RTP和RTCP数据流,而gNodeB建立与此QoS流相应的DRB;
  8. 通话结束后,主叫终端和被叫终端分别释放5QI为1的QoS流,gNodeB释放相应的DRB。只有当终端进入空闲状态时,才会释放5QI为5的默认承载;

1.3 信令示例

  • 5G Registration
    请添加图片描述
  • 默认Internet和IMS PDU会话建立:
    请添加图片描述
  • IMS注册和VoNR呼叫:
    请添加图片描述
  • VoNR呼叫终止:
    请添加图片描述

二、VoNR关键技术点

  • VoNR依靠IP多媒体子系统(IMS)来管理语音呼叫连接的建立、维护和释放;
  • UE PDCP应支持RTP和RTCP、RoHC压缩和MAC层应支持DRX;
  • SIP用于终端与IMS之间的信令过程;
  • 5QI为5的QoS流是非GBR,但应该以高优先级处理,以确保SIP信令过程以最小的延迟和高可靠性完成;
  • 5QI为1的QoS流为GBR,该QoS流用于连接建立后语音报文的传输;
  • gNB对SIP信令采用RLC-AM模式DRB,对RTP(Voice Traffic)信令采用RLC-UM模式DRB;
  • 3GPP为5G推荐了EVS编解码器:
    • EVS编解码器支持一系列采样频率来捕获一系列音频带宽;
    • 这些采样频率分为窄带、宽带、超宽带和全带;
  • VoNR终端在NAS注册过程中提供能力信息,指示该终端的上层是否支持IMS语音业务;
  • AMF可以通过终端能力请求获得终端对IMS语音业务的支持。gNB可以通过UE Capability Enquiry来获取UE 能力;


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/868467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重写equals()方法为什么同时要重写hashcode()

equals()方法 equals()方法是Object类中的一个方法,在Object类中,equals等同于。 在不同的类中,往往会对equals()按需求进行重写。重写的目的都是:用于比较两个对象是否 "相等"。如果两个对象的内容相同,那…

fiddler移动端抓包

步骤 1、手机和电脑必须在同一个局域网: 1)手机和电脑连同一个WiFi; 2)手机连WiFi,电脑用网线连接开启这个WiFi的无线路由; 3)电脑开热点,手机连热点 2、开启fiddler代理&#xff…

faskapi好用的模板

在Web开发领域,FastAPI作为一个基于Python的高性能Web框架,因其快速、易用以及强大的功能而备受开发者青睐。关于FastAPI的好用模板,这里介绍几个不同角度的模板或项目框架,以帮助您更好地理解和选择适合自己的起点。 1. FastAPI…

第十一节 动态面板加密解密显示

在原型中我们经常会遇到文件加密与解密显示问题,下面以一个简单案例来说明实现怎么切换明文与密文不同显示方式案例说明; 1、添加动态面板 2、设置加密与不加密 3、添加动作事项 注意为可见时要设置面板状态向前循环,上一项,否则…

新闻第一线|随身WiFi市场乱象与破局者:格行以品质重塑行业信任、随身WiFi行业标杆!

在快速发展的移动互联网时代,随身WiFi凭借用网方便性价比高也随之爆火。然而,近年来,随身WiFi市场却陷入了“内卷”与“信任危机”的双重困境,消费者在选择时往往面临质量问题。在此背景下,格行以其独特的品牌理念和扎…

Linux网络配置管理

目录 一、网络配置 1. 网卡配置 2. 路由 二、 网络信息查看 1.netstat 2. ss 三、 额外的命令 time 一、网络配置 之前我们学过 ifconfig ,这个命令可以查看网络接口的地址配置信息,我们只知道它可以查看接口名称、IP 地址、子网掩码等。 但是&a…

笔记:Newtonsoft.Json 序列化接口集合

在使用 Newtonsoft.Json 序列化接口集合时,一个常见的挑战是如何处理接口的具体实现,因为接口本身并不包含关于要实例化哪个具体类的信息。为了正确序列化和反序列化接口集合,你需要提供一些额外的信息或使用自定义的转换器来指导 Newtonsoft…

【Unix/Linux】$bash-3.2是什么

bash-3.2 指的是Bourne Again Shell(Bash)的3.2版本。 Bash是一个广泛使用的Unix shell和命令语言,是GNU项目的一部分,也是许多Linux发行版和Unix系统的默认shell。 以下是一些关于Bash 3.2的要点: 1. 兼容性&#…

MySQL 进阶(二)【索引详解】

前言 程序员避不开和数据库打交道,大数据更是如此,不管是 MySQL、Oracle、SQL Server 这些 OLTP 数据库,还是Greeplum、StarRocks、Hive、Spark SQL、Flink SQL、ClickHouse 等 OLAP 数据库,SQL 都是最基础最重要的能力&#xff0…

DFS回溯剪枝|KMP通过数组记录减少判断子字符串|思路

KMP|DFS回溯剪枝 #1、NC149kmp 初步思路: 两层for循环,一个T的字符开始与 S的字符比较,挨个比较,遇到不同就continue当前T的字符,重复步骤》效率太低,超时 eg: TABSABABABD SABABD S!A时&#…

开发个人Go-ChatGPT--2 环境搭建

开发个人Go-ChatGPT–2 环境搭建 2.1 环境要求 Golang 1.22 Etcd Docker Redis Mysql 2.2Docker本地开发环境搭建 这里使用 Docker Compose 来编排管理我们的容器,docker-compose.yaml: version: 3.8services:mysql:image: mysql:8.0.18contain…

【目录】阅读须知!全博文、专栏大纲

首先要和大家说一下,博主的文章并不是想到哪里写到哪里,而是以整个大后端为主题,成体系的在写专栏,从和后端紧相关的计算机核心课程开始、到JAVA SE、JAVA EE、到数据库、MQ等各类中间件、再到业务场景、性能优化。当然也会涉及一…

七、构造函数与析构函数

七、构造函数与析构函数 构造函数析构函数调用机制构造函数的调用机制析构函数的调用机制总结 构造函数分类深拷贝与浅拷贝浅拷贝(Shallow Copy)深拷贝(Deep Copy)示例 初始化参数列表委托构造default、delete和 explicitdefaultd…

【Go】常见的变量与常量

变量 常见的变量声明方式 一、声明单个变量的多种方式 1.声明一个变量初始化一个值 //声明变量 默认值是0,var a int//初始化一个值a 1fmt.Println(a) 2. 在初始化的时候省去数据类型,通过值自动匹配当前的变量的数据类型 var b 2fmt.Println(&quo…

html+css+js随机验证码

随机画入字符、线条 源代码在图片后面 点赞❤️关注&#x1f60d;收藏⭐️ 互粉必回 图示 源代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"…

【java web 01】3小时快速学习前端知识(收藏备用)

3小时快速学习前端知识【全栈专用】 一、教程简介1.1 Java 开发为何学Web技术1.2 课程设计1.3 课前准备 二、HTML2.1 Html简介2.1.1 HTML、CSS、JS分别有什么作用2.1.2 什么是HTML2.1.3 什么是标记语言 2.2 Hello&#xff0c;Html2.2.1 HTML基础结构2.2.2 专业词汇2.2.3 语法细…

C++入门(C语言过渡)

文章目录 前言一、C关键字二、命名空间三、C输入&输出四、缺省参数五、函数重载六、引用七、inline八、nullptr总结 前言 C是一种通用的、高级的、静态类型的编程语言&#xff0c;它在20世纪80年代由丹尼斯里奇创建的C语言基础上发展而来。以下是C发展的一些重要里程碑。 1…

Updates were rejected because the tip of your current branch is behind

Git在push推送时&#xff0c;报错提示信息如下&#xff1a; hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. If you want to integrate the remote changes, hint: use git pull before pushing again. hint: …

[个人感悟] 消息队列应该考察哪些问题?

前言 消息队列. 不论是Java内部提供的LinkedBlockingQueue, 还是当下主流的中间件RabbitMQ, Kafka, RockMQ. 其本质上都是一个削峰填谷的工具. 我们都知道, 请求和流量都有可能瞬间很高, 或者很低. 所以, 很多时候, 我们需要请求存储起来, 或者使用异步的方式, 来匀速的处理过…

Go compress包

compress 包是 Go 标准库中的一个重要包&#xff0c;提供了对常见压缩格式&#xff08;如 gzip、zlib、bzip2 和 lzw&#xff09;的支持。这个包主要用于处理压缩和解压缩数据流。 compress 包的结构 compress 包包含以下子包&#xff1a; compress/gzip: 提供了对 gzip 格式的…