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

相关文章

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显著通过稀疏分析提升了效率,但是其内部依旧有许多冗余计算,留下了很大优化空间。 以

报错:Reached the max session limit(DM8 达梦数据库)

报错:Reached the max session limit - - DM8 达梦数据库 1 环境介绍2 数据库启动SYSTEM IS READY后面日志3 数据库刚启动日志4 达梦数据库学习使用列表 1 环境介绍 某项目无法连接数据库,报错:超过最大会话数限制 , 检查 dmdba ulimit -a openfiles 已改检查 dm.ini 其中 MAX_SESSION

Requests库对session的支持

场景:如何获取登录时响应消息中的sessionid,以及如何在后续请求中把sessionid添到cookie中 Requests库提供了一个Session类,通过requests库中的session对象,requests库会自动帮我们保存服务端返回的cookie数据(set-cookie里的内容),也会在HTTP发出请求时自动在消息头中放入cookie数据。 用py模拟客户端接收响应消息: