GB28181协议-SIP协议详解

news2024/11/20 14:43:29

1.SIP协议

SIP(Session initialization Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信协议。

它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。SIP 是一种源于互联网的IP 语音会话控制协议,具有灵活、易于实现、便于扩展等特点。SIP(Session Initiation Protocol)是一种类似于http协议的纯文本应用层协议。SIP可以用来控制会话的建立、取消、关闭等操作。主要可以实现以下功能:

  • 用户定位:检查终端用户的位置,用于通信;
  • 用户有效性:检查用户参与会话的意愿程度;
  • 用户能力:检查媒体和媒体参数;
  • 建立会话:“振铃”,在呼叫和被叫方同时建立会话的参数;
  • 会话管理:包括会话的传输和终止,修改会话参数以及请求服务

目前相关设备供应商和业务供应商联合成立了一个关于SIP的论坛:http://www.sipforum.org,为SIP的发展提供一个自由讨论、展现新思维的发展平台

1.1 概念讲述

1.1.1 SIP request

请求是SIP中一个最基本的概念之一,每一次关于SIP的操作都需要发送请求。

1.1.2 SIP response

回复和请求在SIP中一般都是成对出现,回复中的内容是对端关于请求的处理结果。

1.1.3 Transaction

SIP协议是一种事务型协议。transaction的概念建立在请求和回复之上,一个请求和相关的最终回复就组成了一个transaction。(不包括关于ACK的处理)由于在一次通话建立到结束的过程中,会有多个Transaction,所以需要对Transaction进行唯一性标记,在SIP中对Transaction进行唯一标记的是branch参数

1.1.4 TU

在具备Transaction的概念之后,就出现了Transaction user的概念,Transaction架构在Transaction 上,能够对Transaction进行管理。

1.1.5 Client Transaction 和Server Transaction

有了Transaction的概念之后,针对请求和回复的不同就出现了client Transaction和server Transaction。CT指的是请求发起者所具有的Transaction的部分,ST是请求的接受者所具有的部分。

1.1.6 用户代理 UA(User Agent)

UA指的是一个用户实体。

1.1.7 UAC和UAS用户代理服务器端(User Agent Server)

实际发起请求的用户实体就是UAC,实际接收请求进行处理的用户实体就是UAS。

1.1.8 INVITE

特殊请求。SIP协议中最关键的请求。用于发起会话。

1.1.9 session

session,在收到对应的INVITE请求的2xx回复之后,完成建立。在下一次INVITE请求的2xx回复发送或者收到后进行修改,唯一一种结束方式为发送或者收到bye请求。

1.2.0 dialog

dialog的概念和session的概念类似,不同的是dialog是针对信令交互的一种概念,而session是对实际媒体发送和接收流程的描述。dialog的建立时间也是在接收到信令的200 OK回复之后,结束也是在发送或者接收到bye请求之后。

1.2 SIP的结构

在SIP协议中主要包含以下几种逻辑上的角色:UA、Proxy Server、 Register/Location Server、Redirect Server。

  • UA:用户代理(User Agent)类似于http协议中浏览器的角色,是用户操作的终端界面,用户代理需要符合SIP协议的要求,但是结合其他的协议根据不同的应用场景,会有不同的实现逻辑。比如,SIP协议结合H.323VoIP协议可以实现软件电话功能。用户代理分为UAC(UA Client)和UAS(UA Server)两种逻辑实体,UAC发送SIP Request并接受Response,UAS接收SIP Request并返回Response,一个物理设备既可以是UAC同时也可以是UAS。
  • Proxy Server:代理服务器的作用主要是转发Request和Response给其他的Proxy Server或者UA,Proxy Server分为有状态代理服务器(Stateful Proxy)和无状态代理服务器(Stateless Proxy),前者会保留一次通信事务的状态,通过一个有限状态机来控制转发操作,而后者不保存状态,只是实现透明的转发操作。
  • Registration/Location Server:注册和定位服务器用于登记和定位UA,在线的UA会定时的向Registration服务器发送SIP消息来表明UA当前的位置(如IP地址、端口号等),Registration服务器会将该信息存入数据库(或者散列表)中,当其他UA向该UA发送request时就能获得该UA的位置。
  • Redirect Server:用于重定向,在逻辑上相当于一个特殊功能的UA。

1.3 SIP方法

在SIP的REQUEST中,核心的方法(method)定义了6种:INVITE、ACK、BYE、CANCEL、OPTIONS和REGISTER。

  • INVITE消息用于发起一个新的会话;
  • ACK消息用于完成会话的建立;
  • BYE消息用于结束一个会话;
  • CANCEL消息用于取消一个请求(一般是针对INVITE);
  • OPTIONS消息用于查询服务器的能力;
  • REGISTER消息用于发送注册请求消息。

SIP请求的类型,也称作SIP方法。RFC3261 中定义了六种方法。另外八种方法有独立的RFC扩展描述。如INFO、NOTIFY等等

1.4 SIP协议格式

SIP消息采用[ISO 10646]文本方式编码,分为两类:请求消息和响应消息。

请求消息:客户端为了激活按特定操作而发给服务器的SIP消息。

响应消息:用于对请求消息进行响应,指示呼叫的成功或失败状态。

每条SIP消息由以下三部分组成:起始行( Start Line)/ 状态行(Status-Line),SIP头,消息体;请求消息和响应消息都包括SIP头字段和SIP消息字段。

起始行( Start Line)/ 状态行(Status-Line)

每个SIP消息由起始行开始。起始行传达消息类型(在请求中是方法类型,在响应中是响应代码)与协议版本。起始行可以是一请求行(请求)或状态行(响应) 。

请求消息

请求消息整体格式如图:

其中:起始行格式:命令名称+目标URI+sip协议版本

请求消息包括以下几种请求命令:

响应消息

响应消息的起始行为状态行(Status-Line),状态行由协议版本、状态码和状态原因短语组成,各个部分之间用一个空格字符进行分隔。下面介绍其中的状态码。

SIP协议中共定义了6类状态码,其中状态码的第1位数字用于指示响应类型,后两位数字表示具体响应。下面用“1xx”标识状态码为“100-199”之间的响应。

  • 1xx:临时响应,表示请求消息正在被处理;
  • 2xx:成功响应,表示请求已被成功接收,完全理解并被接受;
  • 3xx:重定向响应,表示需采取进一步以完成该请求;
  • 4xx:客户机错误,表示请求消息中包含语法错误信息或服务器无法完成客户机请求;
  • 5xx:服务器错误,表示服务器无法完成合法请求;
  • 6xx:全局故障,表示任何服务器无法完成该请求;

响应消息整体格式如图:

其中:起始行格式:sip协议版本+响应返回码+描述性短句

响应消息是从100 - 699的返回码,分别表示不同的意义。

SIP 头

用来传递消息属性和修改消息意义。它们在语法和语义上与 HTTP 头域相同(实际上有些头就是借自 HTTP ),并且总是保持格式: <名字 >:<值>。

样例:

下表是描述的是SIP头格式中的各种Key值,可以大略分为4类:General通用头域,Request请求头域,Response响应头域,Entity实体域。

GeneralRequestResponseEntity
AcceptAuthorizationAllowContent-encoding
Accept-encodingContactProxy-authenticateContent-length
Accept-languageHide Retry-afterContent-type
Call-IDMax-forwardsServer
ContactOrganizationUnsupported
CseqPriorityWarning
DateProxy-authorizationWWW-authenticate
EncryptionProxy-require
ExpiresRoute
FromRequire
Record-routeResponse-key
TimestampSubject
ToUser-agent
Via

消息体

用于描述被初始的会话(例如,在多媒体会话中包括音频和视频编码类型,采样率等)。消息体能够显示在请求与响应中。

SIP 清晰区别了在 SIP 起始行和头中传递的信令信息与在 SIP范围之外的会话描述信息。可能的消息体类型就包括本文将要描述的SDP会话描述协议、还有基于xml的消息体。

GB28181 免费测试工具: https://download.csdn.net/download/JUST_DO_1122/88366062

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

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

相关文章

位图bitset及其应用——【C++实现】

本章代码gitee仓库&#xff1a;位图实现及其应用 文章目录 1.位图的概念2. 位图的实现3. 位图应用 1.位图的概念 当面对海量数据时&#xff0c;我们一般的数据结构无法存储那么多的值&#xff0c;要对这些数据进行分析&#xff0c;我们就可以采用位图来对这些数据进行标记&…

02强化学习基本概念

强化学习基本概念 前言1、State、Action、Policy等① State② Action③ State transition④ State transition probability⑤ Polity 2、Reward、Return、MDP等① Reward② Trajectory and return③ Discounted return④ Episode⑤ MDP 总结&#xff1a; 前言 本文来自西湖大学…

PMP考试300条知识点汇总,20天上岸!

PMP考试300条知识点完整内容可在文末获取。 3、项目管理 vs 运营管理 项目与日常运营的共同特征&#xff1a; 由人来做、 受制于有限的资源、需要规划、执行和控制、为了实现组织的目标或战略计划 项目与日常运营的根本区别&#xff1a; 项目是临时的&#xff1b;运营是持…

企业进行品牌推广时怎么才能达到预期广告效应?不如试试软文营销

企业进行品牌推广的目的就在于提升品牌的曝光率&#xff0c;树立该品牌在市场中的形象&#xff0c;加强品牌的影响力与公信力&#xff0c;提高产品的竞争力&#xff0c;那么企业进行品牌推广时怎么才能达到预期效果呢&#xff0c;我们可以试试软文营销&#xff0c;接下来媒介盒…

竞赛选题 基于深度学习的目标检测算法

文章目录 1 简介2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 1 简介 &#x1f5…

从丢失msvcp140_codecvt_ids.dll到修复,解决方法详解

在日常计算机使用过程中&#xff0c;我们有时会遇到一些烦人的错误提示。其中之一就是丢失了msvcp140_codecvt_ids.dll文件。当我们打开某些应用程序或游戏时&#xff0c;可能会收到类似于“找不到msvcp140_codecvt_ids.dll”或“该应用程序无法正常启动”的错误信息。这可能会…

Guava Cache介绍-面试用

一、Guava Cache简介 1、简介 Guava Cache是本地缓存&#xff0c;数据读写都在一个进程内&#xff0c;相对于分布式缓存redis&#xff0c;不需要网络传输的过程&#xff0c;访问速度很快&#xff0c;同时也受到 JVM 内存的制约&#xff0c;无法在数据量较多的场景下使用。 基…

按文件大小批量分类保存,高效管理你的文件!

作为一名文件管理者&#xff0c;你是否经常为如何高效地管理大量文件而烦恼&#xff1f;现在&#xff0c;我们为你提供了一种简单、快速、准确的方法&#xff0c;帮助你轻松解决这个问题&#xff01; 首先。进入文件批量改名高手主页面&#xff0c;并在板块栏里选择“文件智能…

Android 启动优化案例:WebView非预期初始化排查

去年年底做启动优化时&#xff0c;有个比较好玩的 case 给大家分享下&#xff0c;希望大家能从我的分享里 get 到我在做一些问题排查修复时是怎么看上去又low又土又高效的。 1. 现象 在我们使用 Perfetto 进行app 启动过程性能观测时&#xff0c;在 UI 线程发现了一段 几十毫…

当语文课本上的古诗词遇上拓世AI,文生图绘就东方美学画卷

东方美学自古以来一直以其深刻的内涵和精致的表现形式&#xff0c;吸引着世界各地的文化爱好者。在中国的文学传统中&#xff0c;古诗词扮演着不可或缺的角色。诗词是我国文学宝库中的瑰宝&#xff0c;也是我们民族的文化精髓。如今随着人工智能技术的崛起&#xff0c;古诗词与…

基于微信小程序付费自习室系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言运行环境说明用户微信端的主要功能有&#xff1a;管理员的主要功能有&#xff1a;具体实现截图详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考论文参考源码获取 前言 &#x1f497;博主介绍&#x…

文心一言 VS 讯飞星火 VS chatgpt (98)-- 算法导论9.3 4题

四、用go语言&#xff0c;对一个包含n个元素的集合&#xff0c;假设一个算法只使用比较来确定第i小的元素&#xff0c;证明:无需额外的比较操作&#xff0c;它也能找到第 i-1 小的元素和第 n-i大的元素。 文心一言&#xff1a; 在这个问题中&#xff0c;我们要使用一个称为&q…

做影视特效本地电脑配置不够怎么办?

影视特效对电脑要求高&#xff0c;往往本地电脑配置不足的情况下&#xff0c;会导致电脑卡顿等造成工作效率低下等问题&#xff0c;再加上现在异地协同的云电脑需求越来越高&#xff0c;更多的企业和个人开始选择做影视特效的云电脑&#xff0c;那么今天就来看看租一台云电脑如…

Swift SwiftUI 修改 List 背景颜色

Preview: Code: .listRowBackground(Color(.yellow)).scrollContentBackground(.hidden) .background(.linearGradient(colors: [.white, .accentColor], startPoint: .top, endPoint: .bottom))喜欢或对你有帮助&#xff0c;点个赞吧&#xff0c;自己先点个嘿嘿。 有错误或者…

【面试题】面试官问你前端性能优化时,他想问什么?

一直以来&#xff0c;前端性能优化都是面试过程中考察的热点题目。 相关的技术博客也层不出穷&#xff0c;我们总是能找到很多这样的文章&#xff0c; 从一个应用的各个层面开始分析&#xff0c;优化的种种手段&#xff0c;取得的种种效果。 往往篇幅越长&#xff0c;讲得越…

MySQL 远程连接1130问题

通过后台进入mysql 1,切换到mysql库 2.查询user表信息 3.更新你想远程登录的用户的host信息,我这里想用root进行远程登录,所以修改如下 4.刷新权限 5.大功告成 快来和博主打成一片吧^_^

使用人工智能聊天机器人时要注意这些!(配提问技巧)

这两年ChatGPT可谓是火遍了互联网&#xff0c;在微博等社交平台上能看到很多网友晒出了与ChatGPT对话的截图&#xff0c;精准、恰当的回答让网友们都倍感新鲜。但是有很多人把人工智能聊天机器人当成玩具&#xff0c;有很多经典犯错回答&#xff0c;不少网友戏称是“人工智障”…

如何优雅的退出线程(condition_variable )

C多线程并发编程入门&#xff08;目录&#xff09; 使用条件变量来实现在析构函数中再次向线程发出一次notify&#xff0c;之后join 线程&#xff0c;等等线程安全退出。 #pragma once #include <iostream> #include <fstream> #include <string> #include …

PerformanceOne一站式性能测试平台

PerformanceOne&#xff08;简称&#xff1a;P-One&#xff09;是泽众软件自主研发的一套一站式性能测试平台软件产品。 该产品采用 B/S 架构开发&#xff0c;实现了集管理、设计、压测、监控以及分析于一体的全方位性能测试解决方案。可有效提升性能测试技术能力&#xff0c;…

拥抱数字化时代SOP电子作业指导书系统助力企业差异化竞争

在如今的竞争激烈的市场环境中&#xff0c;企业要想在同等条件下脱颖而出&#xff0c;差异化竞争成为了关键。然而&#xff0c;与硬件相比&#xff0c;软件的差异化更具有决定性的作用。而软件的差异化往往体现在细节上&#xff0c;而不是大的战略方面。而如何将这些细节进行量…