SIP Call Flow - Initiation of IMS Session

2024-02-13 17:59

本文主要是介绍SIP Call Flow - Initiation of IMS Session,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里在 IMS 网络中,手机 abc会与另一部手机xyz建立起会话。
基本步骤:

  • 手机abc构造了一个INVITE消息,其中包含另一部手机xyz的 public user identity。
  • 所有的SIP消息需要通过P-CSCF和S-CSCF的转发
  • 手机和P-CSCF间的SIP消息都是通过IPSec完整性保护的
  • 手机和P-CSCF间的SIP都是经过压缩的
  • 手机间交互/协商媒体流的属性
  • UE各自按照协商结果分配资源
  • 响铃/接听电话
  • 通话开始

Call Flow
pic_01

路由建立

Routing of IMS INVITE Requests

当手机abc想和手机xyz通话时,它并不清楚消息如何到达手机xyz。手机abc只有下面的信息:
  • 手机xyz的SIP URI
  • 手机abc相关的P-CSCF地址
  • 手机abc相关的S-CSCF地址

手机abc首先将INVITE通过P-CSCF发到S-CSCF,但这时S-CSCF也并不清楚手机xyz的具体位置。 但是通过地址解析 (DNS) abc的S-CSCF可以找到手机xyz的 I-CSCF,并将INVITE消息转发给 xyz的I-CSCF。 I-CSCF会向HSS查询手机xyz相关的S-CSCF的地址,并将INVITE消息转发到xyz的S-CSCF。 最后,手机xyz的P-CSCF会将INVITE通过IP Sec发送给手机xyz。

关于路由信息
所有的CSCF都会将他们的地址放在INVITE消息的Via头中,以便应答消息可以按照同样路径返回。 除了手机xyz的 I-CSCF,其他的CSCF都会将他们的地址加在Route-Record Header的最上面。 因为I-CSCF是负责第一次找到S-CSCF的,所以后面并不需要它将消息转发,所以也不需要将它的地址存入INVITE消息中。

The Route header field is used to force routing for a request through the listed set of proxies.

The Via header field indicates the path taken by the request so far  and indicates the path that should be followed in routing responses.
The branch ID parameter in the Via header field values serves as a  transaction identifier, and is used by proxies to detect loops.

The Record-Route header field is inserted by proxies in a request to  force future requests in the dialog to be routed through the proxy.


From abc UE to the P-CSCF

INVITE sip: xyz@home2.hu SIP/2.0
Via: SIP/2.0/UDP [5555::1:2:3:4]:1357;branch=8uetb
Route: <sip:[5555::a:b:c:d]:7531;lr>
Route: <sip: orig@scscf1.home1.fr;lr>
Contact: sip:[5555::1:2:3:4]:1357

<=
手机abc向它自身的P-CSCF发送INVITE消息
Request-URI是对端手机 xyz 的UR

这篇关于SIP Call Flow - Initiation of IMS Session的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/706217

相关文章

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

SpringBoot项目中Redis存储Session对象序列化处理

《SpringBoot项目中Redis存储Session对象序列化处理》在SpringBoot项目中使用Redis存储Session时,对象的序列化和反序列化是关键步骤,下面我们就来讲讲如何在Spri... 目录一、为什么需要序列化处理二、Spring Boot 集成 Redis 存储 Session2.1

GNSS CTS GNSS Start and Location Flow of Android15

目录 1. 本文概述2.CTS 测试3.Gnss Flow3.1 Gnss Start Flow3.2 Gnss Location Output Flow 1. 本文概述 本来是为了做Android 14 Gnss CTS 的相关环境的搭建和测试,然后在测试中遇到了一些问题,去寻找CTS源码(/cts/tests/tests/location/src/android/locat

AutoGen Function Call 函数调用解析(一)

目录 一、AutoGen Function Call 1.1 register_for_llm 注册调用 1.2 register_for_execution 注册执行 1.3 三种注册方法 1.3.1 函数定义和注册分开 1.3.2 定义函数时注册 1.3.3  register_function 函数注册 二、实例 本文主要对 AutoGen Function Call

SIGMOD-24概览Part7: Industry Session (Graph Data Management)

👇BG3: A Cost Effective and I/O Efficient Graph Database in ByteDance 🏛机构:字节 ➡️领域: Information systems → Data management systemsStorage management 📚摘要:介绍了字节新提出的ByteGraph 3.0(BG3)模型,用来处理大规模图结构数据 背景

flask-login 生成 cookie,session

flask-login 生成 cookie,session Flask-Login login_user() 显示来自 Set-Cookie 标头的加密 cookie # 模拟一个用户类class User(UserMixin):def __init__(self, id):self.id = id@app.route('/login')def login():# 模拟用户登录过程user

Understanding the GitHub Flow

这里看下Github的入门介绍    --链接 GitHub Flow is a lightweight, branch-based workflow that supports teams and projects where deployments are made regularly. This guide explains how and why GitHub Flow works

Python __call__ 用法 作用

当一个对象为可被调用对象时,callable(object)返回为True,否则为False: Python中的对象有可被调用和不可被调用之分。 def func_test():print("func_test run")class class_test():def __init__(self):pass# func_test is callable return Trueprint("fu

Session用法详解

本文引用http://www.accdb.net/article.asp?id=1115 阅读本文章之前的准备   阅读本文章前,需要读者对以下知识有所了解。否则,阅读过程中会在相应的内容上遇到不同程度的问题。   懂得ASP/ASP.NET编程    了解ASP/ASP.NET的Session模型    了解ASP.NET Web应用程序模型    了解ASP.N

Versioned Staged Flow-Sensitive Pointer Analysis

VSFS 1.Introduction2.Approach2.1.相关概念2.2.VSFS 3.Evaluation参考文献 1.Introduction 上一篇blog我介绍了目前flow-sensitive pointer analysis常用的SFS算法。相比IFDS-based方法,SFS显著通过稀疏分析提升了效率,但是其内部依旧有许多冗余计算,留下了很大优化空间。 以