GB28181学习(二)——注册与注销

概念

  • 使用REGISTER方法进行注册和注销;
  • 注册和注销应进行认证,认证方式应支持数字摘要认证方式,高安全级别的宜支持数字证书认证;
  • 注册成后,SIP代理在注册过期时间到来之前,应向注册服务器进行刷新注册;
  • 若注册失败,应在不短于60s的时间间隔内重新发起注册;
  • 系统、设备注册过期时间可配置;
  • SIP代理是否注册成功决定SIP服务器在离线状态;
  • 对于处于开启网络地址转换(NAT)功能的路由器内侧的SIP代理,应该支持使用TCP发起SIP注册,并在注册成功后保持TCP连接不关闭,SIP代理及服务器在该TCP通道里发送所有请求及响应SIP消息。若TCP通道断开,则认为SIP代理异常掉线,SIP代理应在一定时间间隔内重新发起注册;

流程

注册

在这里插入图片描述

注册流程:

  1. SIP代理向SIP服务器发送REGISTER请求;
  2. SIP服务器向SIP代理响应401(未认证),返回的消息头里给出适合SIP代理的认证体制和参数;
  3. SIP代理重新向SIP服务器发送REGISTER请求,在请求的Authorization中给出信任书,包括认证信息;
  4. SIP服务对请求进行认证,如检测SIP代理身份合法,向SIP代理响应200 OK,如检测不合法发送拒绝服务应答;

注销

在这里插入图片描述

注销流程:

  1. SIP代理向SIP服务器发送REGISTER请求,Expires字段的值为0,表示SIP代理要注销
  2. SIP服务器向SIP代理响应401(未认证),返回的消息头里给出适合SIP代理的认证体制和参数;
  3. SIP代理重新向SIP服务器发送REGISTER请求,在请求的Authorization中给出信任书,包括认证信息,Expires字段的值为0;
  4. SIP服务对请求进行认证,如检测SIP代理身份合法,向SIP代理响应200 OK,如检测不合法发送拒绝服务应答;

注册重定向(2022新增)

在这里插入图片描述

重定向流程:

  1. 设备或系统段的SIP代理向SIP重定向服务器发送REGISTER请求;
  2. SIP重定向服务器向SIP代理响应401(未认证),返回的消息头里给出适合SIP代理的认证体制和参数;
  3. SIP代理重新向SIP重定向服务器发送REGISTER请求,在请求的Authorization中给出信任书,包括认证信息;
  4. SIP重定向服务器验证请求,如检测SIP代理身份合法,SIP重定向服务器根据内部策略选择设备需注册的SIP服务器A,并回复注册请求响应302,响应消息携带Contact头域和Expires,Contact格式为sip:SIP服务器A编码@目的IP地址端口,在此头域中携带SIP服务A的地址
  5. SIP代理收到302重定向请求后,向SIP服务器A发起注册;
  6. 6~8:完成注册重定向流程后,后续所有请求和响应动作由SIP服务器A和设备直接完成;
  7. 重定向后,如果SIP代理检测SIP服务器A离线或注册被SIP服务器拒绝,SIP代理应重新执行注册重定向流程,向SIP重定向服务器发起注册请求

状态信息报送(包括心跳检测)

要求

  1. 当原设备发现工作异常时,应立即向本SIP监控域的SIP服务器发送状态信息;
  2. 无异常时,定时向本SIP监控域的SIP服务器发送状态信息;
  3. 状态信息报送采用MESSGAE方法;
  4. SIP设备宜在状态信息中携带故障子设备描述信息;
  5. 通过周期性的状态信息报送,实现注册服务器与原设备之间的状态检测,即心跳机制;
  6. 心跳发送发、接收方需统一配置心跳间隔参数,安装心跳间隔定时发送心跳消息,默认心跳间隔为60s;
  7. 心跳发送方、接收方需统一配置心跳超时次数参数,心跳消息连续超时达到心跳超时次数则认为对方下线,默认心跳超时次数为3次;
  8. 心跳接收方在心跳发送方上线状态下,检测到心跳消息连续超时达到配置次数则心跳发送方离线;
  9. 心跳发送方在心跳接收方上线状态下,检测不到心跳响应消息连续超时达到配置次数则认为心跳接收方离线;

流程

在这里插入图片描述

心跳流程:

  1. 源设备向SIP服务器发送设备状态信息报送命令,采用MESSAGE方法携带;
  2. SIP服务器收到命令后返回200 OK;

测试

准备

1)一台支持国标的海康设备;

2)自研的客户端界面程序+SIP服务端程序;

设备配置

在这里插入图片描述

如图为海康设备网页端配置,主要关注以下几个配置项:

  1. 本地SIP端口:默认5060,相机针对GB28181协议开放的通信端口;
  2. 传输协议:支持UDP和TCP协议;
  3. 勾选“启动”按钮,启用GB28181-2016协议;
  4. SIP服务器ID:服务器标识,详见GB28181协议定义;
  5. SIP服务域:SIP服务器ID的前10位;
  6. SIP服务器地址:SIP服务所在机器的IP地址
  7. SIP服务端口:SIP服务端口
启用GB28181后,设备定期对外发送REGISTER命令,如无服务端连接,由ICMP协议返回464目标不可达,抓包如下所示:

在这里插入图片描述

REGISTER命令分析

部分命令分析:

  1. 传输协议为UDP;
  2. 注册命令基于**SIP协议(Session Initiation Protocol)**传输;
  3. 注册命令的method为REGISTER;
  4. Expires:注册有效期,默认3600秒;

代码架构

在这里插入图片描述

工程目前主要分为3部分:

1)tinyXml:编译为静态库,用于xml解析。TinyXml是一个c++的xml解析库,是一个基于DOM模型、非验证的轻量级解释器;

2)mysipsdk:编译为动态库,基于开源库pjsip做二次封装,供客户端使用;

3)GB28181Client:基于qt开发的界面客户端,依赖于mysipsdk.dll;

界面展示

在这里插入图片描述

抓包分析

程序启动后,输入端口、域名等信息,点击连接,抓包可查看注册成功。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue从零开始学习

npm install慢解决方法:删掉nodel_modules。 5.0.3:表示安装指定的5.0.3版本 ~5.0.3:表示安装5.0X中最新的版本 ^5.0.3: 表示安装5.x.x中最新的版本。 yarn的优点: 1.速度快,可以并行安装 2.安装版本统一 项目搭建: 安装nodejs查看node版本:node -v安装vue clie : np…

C语言练习8(巩固提升)

C语言练习8 编程题 前言 奋斗是曲折的,“为有牺牲多壮志,敢教日月换新天”,要奋斗就会有牺牲,我们要始终发扬大无畏精神和无私奉献精神。奋斗者是精神最为富足的人,也是最懂得幸福、最享受幸福的人。正如马克思所讲&am…

明厨亮灶监控实施方案 opencv

明厨亮灶监控实施方案通过pythonopencv网络模型图像识别算法,一旦发现现场人员没有正确佩戴厨师帽或厨师服,及时发现明火离岗、不戴口罩、厨房抽烟、老鼠出没以及陌生人进入后厨等问题生成告警信息并进行提示。OpenCV是一个基于Apache2.0许可&#xff08…

01-虚拟机安装Windows Server操作系统

1、创建并配置虚拟机 2、安装操作系统 找到windows Server镜像 等待安装 3、设置密码

数据结构之单链表java实现

基本概念 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中指针链接次序实现的。和数组相比较,链表不需要指定大小,也不需要连续的地址。 单链表的基本设计思维是,利用结构体的设置&#xff0c…

滑动窗口实例5(水果成篮)

题目: 你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。 你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按…

垃圾回收 - 引用计数法

GC原本是一种“释放怎么都无法被引用的对象的机制”。那么人们自然而然就会想到,可以让所有对象事先记录下“有多少程序引用了自己”。让各对象知道自己的“人气指数”,从而让没有人气的对象自己消失,这就是引用计数法。 1、计数器 计数器表…

使用MATLAB解算炼油厂的选址

背景 记得有一年的数据建模大赛,试题是炼油厂的选址,最后我们采用MATLAB编写(复制)蒙特卡洛算法,还到了省级一等奖,这里把仅有一些记忆和材料,放到这里来,用来纪念消失的青春。 本…

selenium可以编写自动化测试脚本吗?

Selenium可以用于编写自动化测试脚本,它提供了许多工具和API,可以与浏览器交互,模拟用户操作,检查网页的各个方面。下面是一些步骤,可以帮助你编写Selenium自动化测试脚本。 1、安装Selenium库和浏览器驱动程序 首先…

Redis布隆过滤器原理

其实布隆过滤器本质上要解决的问题,就是防止很多没有意义的、恶意的请求穿透Redis(因为Redis中没有数据)直接打入到DB。它是Redis中的一个modules,其实可以理解为一个插件,用来拓展实现额外的功能。 可以简单理解布隆…

Educational Codeforces Round 154 (Rated for Div. 2)

Educational Codeforces Round 154 (Rated for Div. 2) A. Prime Deletion 思路&#xff1a; 因为1到9每个数字都有&#xff0c;所以随便判断也质素即可 代码 #include<bits/stdc.h> using namespace std; #define int long long #define rep(i,a,n) for(int ia;i<…

数学建模-点评笔记 9月3日

1.摘要&#xff1a;关键方法和结论&#xff08;精炼的语言&#xff09;要说明&#xff0c;方法的合理性和意义也可以说明。 评委先通过摘要筛选&#xff08;第一轮&#xff09; 2.时间序列找异常值除了3西格玛还有针对时间序列更合适寻找的方法 3.模型的优缺点要写的详细一点…

vue3 页面显示中文,分页显示中文

vue3 分页默认为英文 &#xff0c;但想要中文显示 那么在App.vue中的代码为三步即可&#xff0c;引入中文&#xff0c;声明中文 &#xff0c;绑定中文&#xff1b; 1. import zhCn from element-plus/es/locale/lang/zh-cn&#xff1b; 2. let locale zhCn; 3. :locale&q…

Snipaste_2023-08-22_16-09-41.jpg

原因 cd 目录名 (想要补全的时候出现以下错误) cd /o-bash: cannot create temp file for here-document: No space left on device解决方案 可以使用df -h命令查看磁盘空间的使用情况,删除一些不必要的文件或调整其他文件的存储位置来释放空间,或者还可以考虑扩大磁盘容量 df …

数据结构1 -- leetcode练习

三. 练习 3.1 时间复杂度 用函数 f ( n ) f(n) f(n) 表示算法效率与数据规模的关系&#xff0c;假设每次解决问题需要 1 微秒&#xff08; 1 0 − 6 10^{-6} 10−6 秒&#xff09;&#xff0c;进行估算&#xff1a; 如果 f ( n ) n 2 f(n) n^2 f(n)n2 那么 1 秒能解决多…

PHP NBA球迷俱乐部系统Dreamweaver开发mysql数据库web结构php编程计算机网页

一、源码特点 PHP NBA球迷俱乐部系统是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 基于PHP的NBA球迷俱乐部 二、功能介绍 1、前台主要功能&#xff1a; 系统首页 网站介…

2023_Spark_实验一:Windows中基础环境安装

Ⅰ、WINDOWS中安装JDK1.8 一、下载安装包 链接&#xff1a;百度网盘 请输入提取码 所在文件夹&#xff1a;根目录或者大数据必备工具--》开发工具(前端后端)--》后端 下载文件名称&#xff1a;jdk-8u191-windows-x64.exe 二、安装JDK 1.现在转到下载的exe文件可用的文件夹&…

从传统到智能化:汽车内部通信的安全挑战与SecOC解决方案

01/需求背景 Demand background 在传统的汽车电子结构中&#xff0c;车内的电控单元&#xff08;ECU&#xff09;数量和复杂性受到限制&#xff0c;通信带宽也受到限制。因此&#xff0c;人们普遍认为车内各个ECU之间的通信是可靠的。只要ECU节点接收到相应的消息&#xff0c…

实际并行workers数量不等于postgresql.conf中设置的max_parallel_workers_per_gather数量

1 前言 本文件的源码来自PostgreSQL 14.5&#xff0c;其它版本略有不同并行workers并不能显箸提升性能。个人不建议使用并行worker进程&#xff0c;大多数情况下采用postgresql.conf默认配置即可。 PostgreSQL的并行workers是由compute_parallel_worker函数决定的&#xff0c…

【人工智能】—_线性分类器、感知机、损失函数的选取、最小二乘法分类、模型复杂性和过度拟合、规范化

文章目录 Linear predictions 线性预测分类线性分类器感知机感知机学习策略损失函数的选取距离的计算 最小二乘法分类求解最小二乘分类矩阵解法一般线性分类模型复杂性和过度拟合训练误差测试误差泛化误差复杂度与过拟合规范化 Linear predictions 线性预测 分类 从具有有限离…