IMS架构中的注册与会话流程:RTPEngine集成及消息路由详解

news2024/9/22 21:24:31

目录

S-CSCF 调用 RTPengine

整体路由

注意

IMS 注册流程 和 IMS 会话流程 的区别

IMS注册流程

IMS会话流程(如INVITE请求)

这种设计的原因

P-CSCF 调用 RTPengine


S-CSCF 调用 RTPengine

整体路由

UA a生成SDP offer,发送SIP INVITE请求(包含SDP offer),发送到P-CSCF,然后转发给S-CSCF(因为已经经过了IMS注册流程之后,就会直接P-CSCF到S-CSCF,不会经过I-CSCF询问了),然后到I-CSCF,然后I-CSCF通过HSS查询被叫的S-CSCF,然后转发SIP给他,然后调用RTPengine的offer函数,RTPengine解析SDP offer(然后分配媒体端口;修改SDP中的IP地址和端口信息,以确保媒体流经过RTPEngine;可能调整编解码器列表;创建内部会话状态)然后返回修改的SDP给被叫的S-CSCF,然后将SIP INVITE转发给被叫P-CSCF,P-CSCF转发给UA b,UA b基于收到的offer和自身能力生成SDP answer,然后发送SIP 200OK(包含SDP answer)给被叫P-CSCF,然后P-CSCF将消息转发给被叫S-CSCF,在转发之前再次调用RTPengine的answer函数,解析SDP answer(验证与之前offer的兼容性;可能进行必要的SDP调整;更新内部会话状态;准备RTP/RTCP处理器)返回可能修改过的SDP answer给S-CSCF,然后将包含可能修改后SDP的200 OK转发给呼叫方侧的S-CSCF(根据via头域),然后主叫S-CSCF将200 OK转发给P-CSCF再转给UA a,然后UA a接收200 OK响应之后发送ACK给其P-CSCF,然后到主叫S-CSCF,然后把ACK转发给被叫S-CSCF,再到被叫P-CSCF,再到UA b。此时媒体会话建立RTPengine准备就绪,开始处理RTP/RTCP数据包,UA a和UA b之间的媒体流通过RTPEngine中转。

注意

S-CSCF间的路由是基于SIP消息中的Via头域:每个SIP请求经过的节点都会在Via头域中添加自己的信息,响应消息会按照相反的顺序进行路由。

主叫的S-CSCF在用户注册IMS网络时就已确定:当用户进行IMS注册时,HSS会为其分配一个S-CSCF,并在后续的会话中使用这个S-CSCF。

I-CSCF确实参与了初始INVITE请求的路由,并且它的信息被添加到了Via头域中。

虽然I-CSCF主要用于初始路由,但它仍然会处理返回的响应,因为它的信息在Via头域中。 主叫S-CSCF的信息也在Via头域中,所以200 OK响应会经过它,而不是直接从I-CSCF到P-CSCF。

IMS 注册流程 和 IMS 会话流程 的区别

IMS注册流程

UA -> P-CSCF -> I-CSCF -> HSS -> S-CSCF

在注册过程中,I-CSCF确实先于S-CSCF接收请求,因为此时系统还不知道哪个S-CSCF负责该用户。

I-CSCF查询HSS以确定合适的S-CSCF,然后将注册请求转发给选定的S-CSCF。

IMS会话流程(如INVITE请求)

UA -> P-CSCF -> S-CSCF -> I-CSCF -> (被叫方的)S-CSCF

在已注册用户发起的会话中,请求首先到达用户的S-CSCF,然后才到I-CSCF。

这是因为在注册过程中,用户已经被分配了一个S-CSCF,所有后续的会话请求都会先经过这个已知的S-CSCF。

这种设计的原因

注册时,需要I-CSCF来帮助选择合适的S-CSCF。 会话时,用户已有指定的S-CSCF,可以直接处理请求,提高效率。 S-CSCF可以执行一些策略控制和路由决策,然后再将请求发送到I-CSCF以定位被叫方。

P-CSCF 调用 RTPengine

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

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

相关文章

MySql 数据库 - 下载安装

MySQL数据库 简单介绍 数据库 数据存储的仓库数据库管理系统 操作和管理数据库的大型软件SQL 操作关系型数据库的变成语言,是一套标准 版本 MySQL官方提供了两种不同的版本: 社区版 免费,MySQL不提供任何的技术支持商业版 收费&#xff0c…

数据结构(单链表(1))

前言 线性表中有着许多的结构,如顺序表和链表。而单链表则是链表的最基础的一种形式,下面就让我们对其做一个了解。 概念 概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次…

【python】Pandas中`ValueError: cannot reindex from a duplicate axis`错误分析

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

构建GitLab代码私有仓库

构建代码私有仓库 公司代码仓库一般都放在git上,但为了安全一般都不会放在开放的git上,都会搭建自己的仓库,今天就记录一下git搭建的过程。以下安装过程以centos7为例: 步骤一:安装并配置依赖项,同时打开ht…

解决gitlab报502的问题

external_url http://10.7.24.6:10002 puma[port] 8091 sudo gitlab-ctl reconfigure sudo gitlab-ctl restart 设置管理员密码: 1. 切换目录:cd 安装目录gitlab的bin目录下 2. 以root执行 :gitlab-rails console命令,等待…

HTTP背后的故事:理解现代网络如何工作的关键(一)

一.HTTP是什么 概念 : 1.HTTP ( 全称为 " 超文本传输协议 ") 是一种应用非常广泛的 应用层协议。 2.HTTP 诞生与1991年. 目前已经发展为最主流使用的一种应用层协议. 3.HTTP 往往是基于传输层的 TCP 协议实现的 . (HTTP1.0, HTTP1.1, HTTP2.0 均为 T…

Linux离线安装Mysql5.7

Linux之Mysql安装配置 第一种:Linux离线安装Mysql(提前手动下载好tar.gz包) 第二种:通过yum安装配置Mysql(服务器有网络) 之前在阿里云上采用yum安装过一次(请看这里),…

文心一言 VS 讯飞星火 VS chatgpt (303)-- 算法导论22.2 1题

一、请计算出在有向图22-2(a)上运行广度优先搜索算法后的d值和π值。这里假定结点3为算法所用的源结点。如果要写代码,请用go语言。 文心一言: 在Go语言中实现广度优先搜索(BFS)以计算有向图上的距离(d值&#xff09…

【Java--数据结构】队列与栈的相互成就

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 用队列实现栈 用栈实现队列 用队列实现栈 oj链接 一个队列是无法实现栈的 入栈push:把数据放到不为空的队列当中。 注意:第一次入栈时&…

【K8s】专题七(2):Kubernetes 服务发现之 Ingress

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号! 目录 一、基本介绍 二、工作原理 三、资源清单(示例) 1、Ingress Cont…

为什么要使用加密软件?

一、保护数据安全:加密软件通过复杂的加密算法对敏感数据进行加密处理,使得未经授权的人员即使获取了加密数据,也无法轻易解密和获取其中的内容。这极大地提高了数据在存储、传输和使用过程中的安全性。 二、遵守法律法规:在许多国…

MMLab-dataset_analysis

数据分析工具 这里写目录标题 数据分析工具dataset_analysis.py数据可视化分析 benchmark.pybrowse_coco_json.pybrowse_dataset.pyOptimize_anchors mmyolo、mmsegmentation等提供了数据集分析工具 dataset_analysis.py 数据采用coco格式数据 根据配置文件分析全部数据类型或…

方便好用的C#.Net万能工具库Masuit.Tools

文章目录 简介开发环境安装使用特色功能示例代码1. 检验字符串是否是Email、手机号、URL、IP地址、身份证号等2.硬件监测(需要管理员权限,仅支持Windows,部分函数仅支持物理机模式)3.html的防XSS处理:4.整理Windows系统的内存:5.任…

STM32智能停车场管理系统教程

目录 引言环境准备智能停车场管理系统基础代码实现:实现智能停车场管理系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:停车场管理与优化问题解决方案与优化收尾与总结 1. 引言 智能停车场管…

【LeetCode 链表合集】

文章目录 1. LeetCode 206 反转链表2. NC40 链表相加 1. LeetCode 206 反转链表 题目链接🔗 解题思路: 🔍 🐧创建一个新的节点,使用链表头插的方法; 2. NC40 链表相加 题目链接🔗 解题思路…

基于JAVA+SpringBoot+Vue+uniapp+协同过滤算法+爬虫+AI的减肥小程序

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 小程序用户登录&#…

浅谈数学模型在UGC/AIGC游戏数值调参中的应用(AI智能体)

浅谈数学模型在UGC/AIGC游戏数值调参中的应用 ygluu 卢益贵 关键词:UGC、AIGC、AI智能体、大模型、数学模型、游戏数值调参、游戏策划 一、前言 在策划大大群提出《游戏工厂:AI(AIGC/ChatGPT)与流程式游戏开发》讨论之后就已完…

算法篇 滑动窗口 leetcode 长度最小的子数组

长度最小的子数组 1. 题目描述2. 算法图分析2.1 暴力图解2.2 滑动窗口图解 3. 代码演示 1. 题目描述 2. 算法图分析 2.1 暴力图解 2.2 滑动窗口图解 3. 代码演示

因胖得福?Nature:肥胖竟能提高肿瘤免疫疗效,但也会增加患癌风险!从多国自然热点角度切入,发现肥胖是“双刃剑”

2024年度国自然医学部50大科研热点中标数统计排名出炉,免疫调控以中标书985项依旧是稳居第一。此外,同样值得我们关注的是巨噬细胞,较2023年度中标数激增,以706项中标数名列第二名。事实上,第一名的“免疫调控”与第二…

《python程序语言设计》2018版第5章第55题利用turtle黑白棋盘。可读性还是最重要的。

今天是我从2024年2月21日开始第9次做《python程序语言设计》作者梁勇 第5章 从2019年夏天的偶然了解python到2020年第一次碰到第5章第一题。彻底放弃。再到半年后重新从第一章跑到第五章,一遍一遍一直到今天2024.7.14日第9次刷第五章。 真的每次刷完第五章感觉好像…