SIP 协议的主要流程

news2024/9/29 7:15:50

目录

SIP 协议的呼叫模型图

基本呼叫建立流程

基本呼叫拆除流程

经过代理的呼叫建立流程

经过代理的呼叫拆除流程

SIP 协议在软交换 SoftX3000(华为推出的一个支持sip协议的交换机设备) 流程图


  • SIP 协议的呼叫模型图

 MGC 负责将 PSTN 前向信令映射为 SIP 请求,并且将 SIP 响应映射为 PSTN 后向信令,并且应该实现 Megaco/h.248 协议以及 SIP 用户助理部分。

SIP 代理逻辑上是一个独立的实体,实现是可以作为单独的物理实体也可以与 MGC 捆绑在一起。负责转发或重定向 SIP 请求和响应。

SIP 客户是一个单独的物理实体,可以是 SIP 电话,SIP 会议终端等。

MG 负责 PSTN 域 IP 网之间媒体流的转换和转发。 MG 之间,MG 与 SIP 终端之间使用 RTP/RTCP 协议传输媒体流。 MG 与 MGC 之间使用 Megaco/h.248 协议或 MGCP 协议传输 MGC 对 MG 的 控制信息以及 MG 向 MGC 上报的通知消息。 MGC 与 SIP 代理,MGC 与 SIP 客户或者 SIP 代理之间使用 SIP 协议来传输 呼叫控制消息。

  • 基本呼叫建立流程

(1) 主叫摘机

(2) S1 向 MGC1 发 IAM

(3) MGC1 向 MG1 发 CreateConnection 命令

(4) MG1 在响应中返回 MG1 的 RTP/RTCP 传输地址

(5) MGC1 向 MGC2 发送 INVITE,其消息体中包含完整的 IAM 消息

(6) MGC2 收到 INVITE 向 MG2 发送 CreateConnection 命令

(7) MGC2 从 INVITE 消息中拆离 IAM,将其发送到 S2

(8) MG2 建立与 MG1 的 RTP 连接,并在确认响应中返回自己的 RTP/RTCP 传输地址

(9) MGC2 向MGC1返回100(TRYING)响应,其中包含MG2的RTP/RTCP 传输地址信息 (10) MGC1 向 MG1 发送 ModifyConnection 命令

(11) MG1 建立与 MG2 的 RTP 并且向 MGC1 返回确认消息

(12) S2 向 MGC2 发送 ACM

(13) MGC2 向 MGC1 发送 180( RINGING)响应,其消息体包含 ACM

(14) MGC1 收到 180 响应,拆离 ACM 并将其发送给 S1 (15) 被叫摘机

(16) S2 向 MGC2 发送 ANM

(17) MGC2 向 MGC1 返回 200(OK)响应,其消息体中包含 ANM

(18) MGC1 收到 200 响应,拆离 ANM 并将其发送到 S1

(19) MGC1 向 MGC2 发送 ACK

  • 基本呼叫拆除流程

(1) 主叫挂机

(2) S1 向 MGC1 发送 REL

(3) MGC1 向 MG1 发 DeleteConnection 命令

(4) MG1 向 MGC1 返回 DeleteConnectionACK 响应

(5) MGC1 向 S1 发送 RLC

(6) MGC1 向 MGC2 发送 BYE 消息

(7) MGC2 向 MG2 发送 DeleteConnection 命令

(8) MG2 向 MGC2 返回 DeleteConnectionACK 响应

(9) MGC2 向 MGC1 返回 200(OK)响应

(10) MGC2 向 S2 发送 REL

(11) S2 向 MGC2 发送 RLC

  • 经过代理的呼叫建立流程

 (1) Caller goes off hook

(2) S1 向 MGC1 发 IAM

(3) MGC1 向 MG1 发 CreateConnection 命令

(4) MG1 在响应中返回 MG1 的 RTP/RTCP 传输地址

(5) MGC1 向 SIP 代理发送 INVITE,其消息体中包含完整的 IAM 消息

(6) SIP 代理向 MGC1 发送 INVITE,其消息体中包含完整的 IAM 消息

(7) MGC2 收到 INVITE 向 MG2 发送 CreateConnection 命令

(8) MGC2 从 INVITE 消息中拆离 IAM,将其发送到 S2

(9) MG2 建立与 MG1 的 RTP 连接,并在确认响应中返回自己的 RTP/RTCP 传输地址

(10) MGC2 向 SIP 代理返回 100(TRYING)响应,其中包含 MG2 的 RTP/RTCP 传输地址信息

(11) SIP 代理向 MGC1 返回 100(TRYING)响应,其中包含 MG2 的 RTP/RTCP 传输地址信息

(12) MGC1 向 MG1 发送 ModifyConnection 命令

(13) MG1 建立与 MG2 的 RTP 并且向 MGC1 返回确认消息

(14) S2 向 MGC2 发送 ACM

(15) MGC2 向 SIP 代理 发送 180( RINGING)响应,其消息体包含 ACM

(16) SIP 代理 向 MGC1 发送 180( RINGING)响应,其消息体包含 ACM

(17) MGC1 收到 180 响应,拆离 ACM 并将其发送给 S1

(18) 被叫摘机

(19) S2 向 MGC2 发送 ANM

(20) MGC2 向 SIP 代理返回 200(OK)响应,其消息体中包含 ANM

(21) SIP 代理向 MGC1 返回 200(OK)响应,其消息体中包含 ANM

(22) MGC1 收到 200 响应,拆离 ANM 并将其发送到 S1

(23) MGC1 向 SIP 代理发送 ACK

  • 经过代理的呼叫拆除流程

(1) 主叫挂机

(2) S1 向 MGC1 发送 REL

(3) MGC1 向 MG1 发 DeleteConnection 命令

(4) MG1 向 MGC1 返回 DeleteConnectionACK 响应

(5) MGC1 向 S1 发送 RLC

(6) MGC1 向 SIP 代理发送 BYE 消息

(7) SIP 代理向 MGC2 转发 BYE 消息

(8) MGC2 向 MG2 发送 DeleteConnection 命令

(9) MG2 向 MGC2 返回 DeleteConnectionACK 响应

(10) MGC2 向 SIP 代理 返回 200(OK)响应

(11) SIP 代理向 MGC1 转发 200(OK)响应

(12) MGC2 向 S2 发送 REL (13) S2 向 MGC2 发送 RLC

  • SIP 协议在软交换 SoftX3000(华为推出的一个支持sip协议的交换机设备) 流程图

 

(1) A 用户拨打 B 用户号码后,A 用户向 SoftX3000 发 INVITE 的 SIP 请求;

(2) SoftX3000 受到 A 用户 INVITE 的请求后,发 100 TRYING 的 SIP 临时 响应,表示请求正在处理中;

(3) SoftX3000 认证通过后,发 407 AUTHENTICATION 消息给 A 用户,A 用户从中获得域名等信息;

(4) A 用户受到 AUTHENTICATION 消息后,向 SoftX3000 反馈 ACK 确认 消息;

(5) A 用户重发 INVITE 请求,但与原 INVITE 请求的消息内容有所区别(详 细见主要消息说明);

(6) SoftX3000 受到 A 用户的 INVITE 请求后,发 100 TRYING 的 SIP 临时 响应,表示请求正在处理中;

(7) SoftX3000 向 B 用户发 INVITE 请求,准备创建连接;

(8) B 用户受到 INVITE 请求后,向 SoftX3000 送 100 TRYING 临时响应;

(9) B 用户判断可以接受本次呼叫后,向 SoftX3000 送 180 RINGING 振铃 消息;

(10) SoftX3000 向 A 用户转发 180 RINGING 消息;

(11) B 用户摘机后向 SoftX3000 送 200 OK 消息,包含会话能力的描述等内 容;

(12) SoftX3000 向 A 用户转发该消息;

(13) A 用户向 SoftX3000 反馈 ACK 确认消息;

(14) SoftX3000 向 B 用户转发 ACK 消息;

(15) B 用户发送 OPTIONS 给 SoftX3000,通知 A 用户修改连接;

(16) SoftX3000 向 A 用户转发 OPTIONS 消息,进入通话状态

(17) B 用户挂机后向 SoftX3000 送 BYE 消息,准备删除连接;

(18) SoftX3000 向 B 用户送 200 消息,表示成功删除 B 用户到 SoftX3000 的连接;

(19) SoftX3000 向 A 用户转发 BYE 消息;

20) SoftX3000 向 A 用户送 200 消息,表示成功删除 A 用户到 SoftX3000 的连接;

注:以上消息只是 SoftX3000 对 SIP 协议处理过程,不同产品可能实现方式 不一样。

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

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

相关文章

ETHERNET/IP转MODBUS-TCP协议网关

远创智控YC-EIP-TCP 是自主研发的一款 ETHERNET/IP 从站功能的通讯网关。该产品主要功能是将各种 MODBUS-TCP 设备接入到 ETHERNET/IP 网络中。 本网关连接到 ETHERNET/IP 总线中做为从站使用,连接到 MODBUS-TCP 总线中做为主站(客户端)或从站…

淘上拼/拼上拼/抖上拼分别是什么意思(操作玩法是怎样的及数据采集代码举例)

拼多多店群玩法最常见的就是淘上拼、拼上拼、抖上拼这三种,但是很多的商家都不了解这三种玩法是什么意思,更别提操作了,本期小编就来为你们详细介绍一下。 淘上拼: 传统玩法:通过蓝海词,采集类目爆款商品数…

若依前端,菜单栏切换时刷新问题[页面菜单切换时,页面总是重新刷新,导致页面输入的查询参数重载清空]...

前端页面菜单切换时,页面总是重新刷新,导致页面输入的查询参数重载清空 这样切换时,页面就刷新了,解决方法在这里 1,页面代码,这里指定name name: "Item", 注意 name的首字母必须大写 2&#xff…

密盾科技即将推出同态加密隐私计算开源平台Pinsehub!

密盾科技预计将于8月底正式推出同态加密隐私计算平台Pinsehub-Platform。Pinsehub隐私计算平台将涵盖匿踪查询、隐私求交、联合建模、联合统计、算法容器管理、数据资源管理、数据确权与定价(开发中)、异构平台互联互通(开发中)等…

Spring中@Autowired和@Resource的区别:

文章目录 一、Autowired二、Resource三、Autowired和Resource的区别: 一、Autowired Autowired 这个注解呢,是由 Spring 提供的,它可以用来对构造方法、成员变量以及方法参数上进行标注,能够根据对象类型完成自动注入。 public …

Podman下载安装说明以及通过下载mysql镜像

Podman下载地址 Releases containers/podman GitHub csdn下载地址:https://download.csdn.net/download/u010479989/88010018 下载exe会自动添加到环境变量中,下载zip需要手动设置环境变量 初始化命令 podman machine init 这个时候会提示安装wsl&…

[工业互联-15]:Linux操作与实时Linux操作系统RT Linux( PREEMPT-RT、Xenomai)

目录 第1章 Linux操作系统 1.1 什么是Linux操作系统 1.2 Linux操作系统架构 1.3 常见Linux操作系统发行版本 第2章 实时Linux操作系统 2.1 实时性要求 2.2 实时性实现技术的基本思想 2.2 常见发行版方案 2.3 Xenomai和PREEMPT-RT比较 第3章 PREEMPT-RT 3.1 概述 3…

java调用python脚本,json传参方式。

使用python的json.loads()进行解析json数据,如果没有包含双引号,则会解析出错 解决方案1 使用demjson.decode(),安装方式直接百度,就不做过多的说明了 解决方案2 使用json.loads()方式解析,…

Jetpack Compose与Accompanist:改变Android UI开发的方式

在Android开发中,UI开发一直是一个重要的部分。Google推出的Jetpack Compose库为开发者提供了一种全新的声明式UI工具,使得UI开发变得更加简单和直观。而Accompanist库则为Jetpack Compose提供了一系列有用的扩展,进一步提升了开发效率。 Jet…

jQuery节点操作

jQuery常用技术 1.jQuery获取元素 2.jQuery与js对象转换 3.jQuery中的遍历方式 4.jQuery中的事件绑定 1. jQuery介绍 1.1 jQuery概述 在JavaScript的使用过程中,存在很多问题,例如:兼容问题(咱不考虑),元素获取方式单一(只能用基…

抖音矩阵号管理系统源码开发及布局流程

“账号矩阵”运营是一种账号运营的高阶玩法,指一个运营主体同时开设多个平台多个账号利用品牌联动的形式来实现账号之间的相关引流,以账号组的形式实现企业营销价值最大化。那么运营多个账号,短视频平台内容是核心,势必要招募多个…

前端Vue自定义精美宫格菜单按钮组件 可设置一行展示个数 可设置成九宫格 十二宫格 十五宫格

前端Vue自定义精美宫格菜单按钮组件 可设置一行展示个数 可设置成九宫格 十二宫格 十五宫格 , 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id13315 效果图如下: # cc-categoryMenu #### 使用方法 使用方法…

js实现 无限层级 树形数据结构

创建数据 const list []; for (let i 0; i < 1000; i 200) {if (i 0) {list.push({ id: i - 1, age: 年龄- (i - 1) });list.push({ id: i, age: 年龄- i, parentId: -1 });} else {for (let index i - 199; index < i; index) {list.push({ id: index, age: 年龄…

LED显示屏出现花屏故障怎么办

LED显示屏出现花屏故障时&#xff0c;可以尝试以下几个步骤来解决问题&#xff1a; 检查电源连接&#xff1a;确保LED显示屏的电源连接正常并牢固。检查电源线、插头和插座&#xff0c;确保它们没有松动或损坏。 检查信号源&#xff1a;检查LED显示屏的信号源&#xff0c;如视频…

现在低代码平台推进阻力那么大,有没有最好的解决办法?

前言 低代码是一种快速设计和开发软件应用程序并且手动编码最少的方法。通过在图形界面中使用可视化建模来组装和配置应用程序&#xff0c;开发人员可以跳过所有基础架构让开发速度提升起来。 一、发现问题 1.“在踏出一步之前&#xff0c;首先考虑能否退回去” 现在低代码平…

ACWing算法基础课

y总说 java不能用Scanner读入,要用Buffer.read();快十倍二十倍; 第一讲 基础算法 包括排序、二分、高精度、前缀和与差分、双指针算法、位运算、离散化、区间合并等内容。 快速排序 一定要先移动end(就是把大数移到右边),后移动start; 否则 先找小数,会出现end start重合…

Python capitalize()函数使用详解,Python首字母大写

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;小白零基础《Python入门到精通》 capitalize 1、返回的是新字符串2、转换规则3、转换列表的元素4、指定位置转换 c…

MySQL数据库的增、删、改、查案例,和常用语句

一、案例要求 二、解答过程 第一题 1、创建数据库Markte mysql> create database Market; mysql> use Market; 2、创建数据表customers&#xff0c;在c_num字段上添加主键约束和自增约束&#xff0c;在c_birth字段上添加非空约束 mysql> create table customers(…

Ae 效果:CC Threshold RGB

风格化/CC Threshold RGB Stylize/CC Threshold RGB CC Threshold RGB&#xff08;CC 阈值 RGB&#xff09;效果可以为红、绿、蓝三个原色通道分别设置阈值&#xff0c;即&#xff0c;通道上高于此阈值时为纯白&#xff0c;低于此阈值时纯黑&#xff0c;以实现对原色通道的二值…

JavaWeb 笔记——4

JavaWeb 笔记——4 一、JSP1.1、JSP概述1.2、JSP快速入门1.3、JSP原理1.4、JSP脚本1.5、JSP缺点1.6、EL表达式1.7、JSTL标签1.8、MVC模式和三层架构 二、介于三层框架下的案例2.1、准备环境2.2、查询所有2.3、添加2.4、修改2.4.1、修改-回显数据2.4.2、修改-修改数据 2.5、删除…