GB28181学习(四)——网络设备信息查询

2023-11-10

要求

  • 源设备向目标设备发送信息查询命令,目标设备将结果通过查询应答命令返回给源设备;
  • 设备信息查询命令包括:
    • 设备目录
    • 设备信息
    • 设备状态信息
    • 设备配置
    • 预置位、看守位
    • 巡航轨迹列表
    • 巡航轨迹
    • PTZ精准状态
    • 存储卡状态等
  • 信息查询的范围:本地SIP监控域、跨SIP监控域;
  • 网络设备信息查询命令均采用MESSAGE方法;
  • 目录查询应答命令支持多响应消息传输;
  • 源设备:
    • SIP客户端
    • 网关或联网系统
  • 目标设备:
    • SIP设备端
    • 网关或联网系统

流程

在这里插入图片描述

具体流程:

  • 源设备向SIP服务器发送设备查询命令;
  • SIP服务器收到命令,返回200 OK;
  • SIP服务器向目标设备转发设备查询命令;
  • 目标设备收到命令,返回200 OK;
  • 目标设备向SIP服务器发送设备查询响应命令;
  • SIP服务器收到命令,返回200 OK;
  • SIP服务器向源设备转发查询响应命令;
  • 源设备收到命令,返回200 OK;

接口

请求

  • 消息头Content-type头域:Content-type:Application/MANSCDP+xml;
  • 设备信息查询命令采用MANSCDP协议格式;
  • 收到MESSAGE消息后,立即返回200 OK,200 OK应答无消息体;

应答

  • 消息头Content-type头域:Content-type:Application/MANSCDP+xml;
  • 设备信息查询应答命令采用MANSCDP协议格式;
  • 收到MESSAGE消息后,立即返回200 OK,200 OK应答无消息体;

测试

设备目录(Catalog)、设备信息(DeviceInfo)、设备状态(DeviceStatus)已自测通过。

设备目录

流程

  1. 添加国标id和本地ip,开始注册(界面端—>mysipsdk—>相机设备);
  2. 界面显示注册成功(mysipsdk—>界面端);
  3. 界面端发起请求设备目录(Catalog:界面端—>mysipsdk—>相机设备);
  4. 界面显示设备目录信息(相机设备—>mysipsdk—>界面端);

界面

注册成功:

在这里插入图片描述

获取设备目录:

在这里插入图片描述

xml分析

  • 查询设备目录请求(107—>111)
<?xml version="1.0" encoding="UTF-8"?>
<Query>
	<CmdType>Catalog</CmdType>
	<SN>xx</SN>
	<DeviceID>xxx</DeviceID>
</Query>
  • 查询设备目录应答(111—>107)
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.107:5060;rport=5060;branch=
From: <sip:xxx@192.168.0.107:5060>;tag=
To: <sip:xxx@xx>;tag=
Call-ID: 
CSeq: 24464 MESSAGE
User-Agent: IP Camera
Content-Length: 0
  • 设备目录返回(111—>107)
<?xml version="1.0" encoding="GB2312"?>
<Response>
	<CmdType>Catalog</CmdType>
	<SN>xx</SN>
	<DeviceID>xxx</DeviceID>
	<SumNum>1</SumNum>
	<DeviceList Num="1">
		<Item>
			<DeviceID>xxx</DeviceID>
			<Name>Camera 01</Name>
			<Manufacturer>Hikvision</Manufacturer>
			<Model>IP Camera</Model>
			<Owner>Owner</Owner>
			<CivilCode>xx</CivilCode>
			<Address>Address</Address>
			<Parental>0</Parental>
			<ParentID>xxx</ParentID>
			<SafetyWay>0</SafetyWay>
			<RegisterWay>1</RegisterWay>
			<Secrecy>0</Secrecy>
			<Status>ON</Status>
		</Item>
	</DeviceList>
</Response>
  • 设备目录返回应答(107—>111)
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.107:5060;rport=5060;branch=
From: <sip:xxx@192.168.0.107:5060>;tag=
To: <sip:xxx@xx>;tag=
Call-ID: 
CSeq: 24464 MESSAGE
User-Agent: IP Camera
Content-Length: 0

设备信息

流程

  1. 添加国标id和本地ip,开始注册(界面端—>mysipsdk—>相机设备);
  2. 界面显示注册成功(mysipsdk—>界面端);
  3. 界面端发起请求设备信息(DeviceInfo:界面端—>mysipsdk—>相机设备);
  4. 界面显示设备信息(相机设备—>mysipsdk—>界面端);

界面

获取设备信息:

在这里插入图片描述

xml分析

  • 查询设备信息请求(107—>111)
<?xml version="1.0" encoding="UTF-8"?>
<Query>
	<CmdType>DeviceInfo</CmdType>
	<SN>xx</SN>
	<DeviceID>xxx</DeviceID>
</Query>
  • 查询设备信息应答(111—>107)
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.107:5060;rport=5060;branch=
From: <sip:xxx@192.168.0.107:5060>;tag=
To: <sip:xxx@xx>;tag=
Call-ID: 
CSeq: xx MESSAGE
User-Agent: IP Camera
Content-Length: 0
  • 设备信息返回(111—>107)
<?xml version="1.0" encoding="GB2312"?>
<Response>
	<CmdType>DeviceInfo</CmdType>
	<SN>xx</SN>
	<DeviceID>xxx</DeviceID>
	<Result>OK</Result>
	<DeviceName>IP CAMERA</DeviceName>
	<Manufacturer>Hikvision</Manufacturer>
	<Model>xxx</Model>
	<Firmware>xx</Firmware>
	<Channel>1</Channel>
</Response>
  • 设备信息返回应答(107—>111)
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.107:5060;rport=5060;branch=
From: <sip:xxx@192.168.0.107:5060>;tag=
To: <sip:xxx@xx>;tag=
Call-ID: 
CSeq: xx MESSAGE
User-Agent: IP Camera
Content-Length: 0

设备状态

流程

  1. 添加国标id和本地ip,开始注册(界面端—>mysipsdk—>相机设备);
  2. 界面显示注册成功(mysipsdk—>界面端);
  3. 界面端发起请求设备状态(DeviceStatus:界面端—>mysipsdk—>相机设备);
  4. 界面显示设备状态(相机设备—>mysipsdk—>界面端);

界面

在这里插入图片描述

xml分析

  • 查询设备状态请求(107—>111)
MESSAGE sip:xxx@192.168.0.111:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.107:5060;rport;branch=
Max-Forwards: 70
From: <sip:xxx@192.168.0.107:5060>;tag=
To: <sip:xxx@xx>
Contact: <sip:xxx@192.168.0.107:5060>
Call-ID: 
CSeq: 26500 MESSAGE
Content-Type: Application/MANSCDP+xml
Content-Length:   145	

<?xml version="1.0" encoding="UTF-8"?>
<Query>
	<CmdType>DeviceStatus</CmdType>
	<SN>xxx</SN>
	<DeviceID>xxx</DeviceID>
</Query>
  • 查询设备状态应答(111—>107)
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.107:5060;rport=5060;branch=
From: <sip:xxx@192.168.0.107:5060>;tag=
To: <sip:xxx@xx>;tag=
Call-ID: 
CSeq: 26500 MESSAGE
User-Agent: IP Camera
Content-Length: 0
  • 设备状态返回(111—>107)
MESSAGE sip:xxx@xx SIP/2.0
Via: SIP/2.0/UDP 192.168.0.111:5060;rport;branch=
From: <sip:xxx@xx>;tag=
To: <sip:xxx@xx>
Call-ID: 
CSeq: 20 MESSAGE
Content-Type: Application/MANSCDP+xml
Max-Forwards: 70
User-Agent: IP Camera
Content-Length:   339

<?xml version="1.0" encoding="GB2312"?>
<Response>
	<CmdType>DeviceStatus</CmdType>
	<SN>xx</SN>
	<DeviceID>xxx</DeviceID>
	<Result>OK</Result>
	<Online>ONLINE</Online>
	<Status>OK</Status>
	<DeviceTime>2023-09-15T21:30:15</DeviceTime>
	<Alarmstatus Num="0">
	</Alarmstatus>
	<Encode>ON</Encode>
	<Record>OFF</Record>
</Response>
  • 设备状态返回应答(107—>111)
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.111:5060;rport=5060;received=192.168.0.111;branch=
Call-ID: 
From: <sip:xxx@xx>;tag=
To: <sip:xxx@xx>;tag=
CSeq: 20 MESSAGE
Content-Length:  0

设备树展示

  • 在注册之前添加”组织1“;
  • 注册并获取设备目录和设备信息成功后,在设备/通道树展示区展示设备和通道信息;
  • 双击通道可进行视频预览;
    在这里插入图片描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GB28181学习(四)——网络设备信息查询 的相关文章

  • WinForms:如何确定窗口是否不再活动(没有子窗口具有焦点)?

    我的应用程序使用多个窗口 我想隐藏一个特定窗口 以防应用程序失去焦点 当活动窗口不是应用程序窗口时 source https stackoverflow com questions 466354 how can i tell if a wi
  • 进程何时获得 SIGABRT(信号 6)?

    C 中进程获得 SIGABRT 的场景有哪些 该信号是否始终来自进程内部 或者该信号可以从一个进程发送到另一个进程吗 有没有办法识别哪个进程正在发送该信号 abort 向调用进程发送SIGABRT信号 就是这样abort 基本上有效 abo
  • 为什么libc++的shared_ptr实现使用完整内存屏障而不是宽松内存屏障?

    在boost的实现中shared ptr 它用放松内存排序以增加其引用计数 https github com boostorg smart ptr blob master include boost smart ptr detail sp
  • OpenCv读/写视频色差

    我试图简单地使用 openCV 打开视频 处理帧并将处理后的帧写入新的视频文件 我的问题是 即使我根本不处理帧 只是打开视频 使用 VideoCapture 读取帧并使用 VideoWriter 将它们写入新文件 输出文件看起来比输入更 绿
  • C#动态支持吗?

    看完之后这个帖子 https stackoverflow com questions 2674906 when should one use dynamic keyword in c sharp 4 0k和链接 我还有 2 个问题 问题 1
  • C++:重写已弃用的虚拟方法时出现弃用警告

    我有一个纯虚拟类 它有一个纯虚拟方法 应该是const 但不幸的是不是 该接口位于库中 并且该类由单独项目中的其他几个类继承 我正在尝试使用这个方法const不会破坏兼容性 至少在一段时间内 但我找不到在非常量方法重载时产生警告的方法 以下
  • 对齐 GridView 中的行值

    我需要在 asp net 3 5 中右对齐 gridview 列中的值 我怎样才能做到这一点
  • 如何从 C# 控制器重定向到外部 url

    我使用 C 控制器作为网络服务 在其中我想将用户重定向到外部网址 我该怎么做 Tried System Web HttpContext Current Response Redirect 但没有成功 使用控制器的重定向 http msdn
  • ASP MVC:服务应该返回 IQueryable 的吗?

    你怎么认为 你的 DAO 应该返回一个 IQueryable 以便在你的控制器中使用它吗 不 您的控制器根本不应该处理任何复杂的逻辑 保持苗条身材 模型 而不是 DAO 应该将控制器返回给视图所需的所有内容 我认为在控制器类中看到查询 甚至
  • C 语言中 =+(等于加)是什么意思?

    我碰到 与标准相反 今天在一些 C 代码中 我不太确定这里发生了什么 我在文档中也找不到它 In ancientC 版本 相当于 它的残余物与最早的恐龙骨头一起被发现 例如 B 引入了广义赋值运算符 使用x y to add y to x
  • Qt 创建布局并动态添加小部件到布局

    我正在尝试在 MainWindow 类中动态创建布局 我有四个框架 它们是用网格布局对象放置的 每个框架都包含一个自定义的 ClockWidget 我希望 ClockWidget 对象在调整主窗口大小时相应地调整大小 因此我需要将它们添加到
  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • 为什么我不应该对不是由 malloc() 分配的变量调用 free() ?

    我在某处读到 使用它是灾难性的free删除不是通过调用创建的对象malloc 这是真的 为什么 这是未定义的行为 永远不要尝试它 让我们看看当您尝试时会发生什么free 自动变量 堆管理器必须推断出如何获取内存块的所有权 为此 它要么必须使
  • 获取 2 个数据集 c# 中的差异

    我正在编写一个简短的算法 它必须比较两个数据集 以便可以进一步处理两者之间的差异 我尝试通过合并这两个数据集并将结果更改放入新的数据集来实现此目标 我的方法如下所示 private DataSet ComputateDiff DataSet
  • 尚未处理时调用 Form 的 Invoke 时出现 ObjectDisposeException

    我们得到一个ObjectDisposedException从一个电话到Invoke在尚未处理的表格上 这是一些演示该问题的示例代码 public partial class Form2 Form void Form2 Load object
  • 在类的所有方法之前运行一个方法

    在 C 3 或 4 中可以做到这一点吗 也许有一些反思 class Magic RunBeforeAll public void BaseMethod runs BaseMethod before being executed public
  • 运算符“==”不能应用于“int”和“string”类型的操作数

    我正在编写一个程序 我想到了一个数字 然后计算机猜测了它 我一边尝试一边测试它 但我不断收到不应该出现的错误 错误是主题标题 我使用 Int Parse 来转换我的字符串 但我不知道为什么会收到错误 我知道它说 不能与整数一起使用 但我在网
  • 使用 CSharpCodeProvider 类编译 C# 7.3 的 C# 编译器版本是什么?

    我想使用 Microsoft CSharp CSharpCodeProvider 类来编译 C 7 3 代码 编译器版本在 IDictionary 中指定 在创建新的 CSharpCodeProvider 时将其作为输入 例如 Compil
  • 带重定向标准流的 C# + telnet 进程立即退出

    我正在尝试用 C 做一个 脚本化 telnet 项目 有点类似于Tcl期望 http expect nist gov 我需要为其启动 telnet 进程并重定向 和处理 其 stdin stdout 流 问题是 生成的 telnet 进程在

随机推荐

  • elasticsearch7新特性_Elasticsearch 7.0 已经发布,盘他!

    Elastic ON 北京分享了Elasticsearch7 0在Speed Scale Relevance等方面的很多新特性 比快更快 有传说中的那么牛逼吗 盘他 通过本文 你能了解到 Elasticsearch Kibana 7 部署体
  • Linux中Docker入门知识基础

    Linux中Docker入门知识docker基础 1 Docker概述 我们开发的代码会接触到不同环境 开发环境 测试环境以及生产环境 1 1 Docker概述 Docker 是一个开源的应用容器引擎 Docker 可以让开发者打包他们的应
  • 解密蓝牙mesh系列

    转载自 蓝牙技术联盟 蓝牙mesh网络 低功耗 低功耗蓝牙 低功耗蓝牙 Bluetooth Low Energy 是一项相当成功的无线技术 如今已经很难找到不支持低功耗蓝牙的智能手机或平板电脑了 可以说它是可穿戴技术兴起的关键因素 在医疗设
  • wifi名称可以有空格吗_公司刚成立不久,公司名称可以变更吗?

    最近有很多老板在问 想要把公司的名字改一改 可以吗 所以今天护航财税的小编来告诉大家 已经注册好的公司能不能变更名字 1 公司名称可以更改吗 其实公司名称是可以更改的 当企业在经营的过程中由于发展或其他原因需要 想要更改公司的 可以向工商局
  • git:回滚某次修改,revert某个commit的操作但不生成提交

    说明 在使用小乌龟进行回滚时 我们发现通常是不会提交的 而在gitbash里 我们使用git revert时 却发现会自动生成一次提交 原因是命令不对 通常我们需要使用git revert n sha 1 某次提交的sha 1值 这样就不会
  • 解决setBackgroundResource出现oom的问题

    setBackgroundResource加载图片的额时候 会出现错误 private final int imageIds R mipmap a R mipmap b R mipmap c R mipmap d R mipmap e Im
  • springcloud环境搭建——eureka

    springcloud环境搭建 eureka 目录 springcloud环境搭建 eureka 新建IDEA项目 初始化父工程 父工程的pom文件 初始化服务一 Eureka服务注册中心 子module的pom 微服务eureka的配置步
  • 上门服务小程序源码 家政小程序源码 同城到家小程序源码

    上门服务小程序源码 家政小程序源码 同城到家小程序源码 开发语言 thinkphp mysql 前端 uni app 支 持 小程序 公众号H5 APP 编号 8 1 数据概况 新增业务城市用户投票功能 更加直观的查看业务城市的关注度 人气
  • unity 各AR插件对比

    上个项目使用到AR 使用了好几个AR SDK来测试 先总结一下 可能后续有所不同 仅为当前 各AR插件对比 2D 3D Android PC vuforia EasyAR HiAR 太虚AR 解释一下 vuforia并不是不支持PC平台 而
  • Virtual DOM 算法

    1 前言 本文会在教你怎么用 300 400 行代码实现一个基本的 Virtual DOM 算法 并且尝试尽量把 Virtual DOM 的算法思路阐述清楚 希望在阅读本文后 能让你深入理解 Virtual DOM 算法 给你现有前端的编程
  • 基于2维卷积神经网络的心电图分类

    在这里给大家分享一篇关于用深度学习进行心电图识别的论文 原文地址https arxiv org abs 1804 06812 我翻译成了中文以便大家快速学习 中间难免有疏忽遗漏的地方 请大家谅解 深度医疗 1 心电图特征识别 这篇文章是由韩
  • C++入门基础05:表达式(表达式基础、算术运算符与赋值运算符、逻辑关系运算符、成员访问运算符与条件运算符、位运算符、移位运算符与类型转换)

    C 入门基础05 表达式 表达式基础 算术运算符与赋值运算符 逻辑关系运算符 成员访问运算符与条件运算符 位运算符 移位运算符与类型转换 一 表达式基础 include
  • LInux下串口编程详解细节

    LInux下串口设置详解 日期 2011 04 01 来源 Linux社区 作者 huang879135 字体 大 中 小 串口的设置主要是设置struct termios结构体的各个成员值 include
  • 【浙大版《Python 程序设计》题目集(解)】第6章函数-1 使用函数求特殊a串数列和(10分)

    给定两个均不超过9的正整数a和n 要求编写函数fn a n 求a aa aaa aa aa n个a 之和 fn须返回的是数列和 函数接口定义 fn a n 其中 a 和 n 都是用户传入的参数 a 的值在 1 9 范围 n 是 1 9 区间
  • 快排函数 -- qsort函数(Quick Sort)

    文章目录 1 qsort函数简介 1 1 函数原型 1 2 参数含义 2 比较函数介绍 3 比较函数使用案例 3 1 整型数组 3 2 浮点型数组 3 3 结构体类型 字符串 4 利用冒泡排序模拟实现qsort函数的功能 1 qsort函数
  • 图形验证码文字识别——pytesseract

    图形验证码内容识别 pytesseract 一 目的 二 实现方式 三 环境准备 四 代码实现 五 拓展 一 目的 我们工作中会遇到一些需要把图片中的文字识别出来使用的例子 比如 图形验证码 提取图片中的文章等 如果工作量比较小或者不需要重
  • 你知道数据发散和数据倾斜么?

    该问题已同步到小程序 全栈面试题 问题 在数据开发日常工作当中 数据发散和数据倾斜问题是比较常见的 那么我们该如何判断呢 同时该如何规避这两种问题呢 注意 该问题也经常会被面试官拿来提问面试者 解答 基于以上问题 大佬们给出了如下的回答 数
  • MLAPI你想需要关注的新的Unity网络框架

    在乱翻PackageManager的时候 无意间看到这么一个玩意 Multiplayer HLAPI 熟悉的unity的朋友知道 unity5的时代 unity大力推广过他自己的Unet框架 内置在unity中 现在时过境迁 你不仅找不到U
  • C++语法基础之栈和队列

    栈 头文件 lt stack gt 实例化 stack在内部默认使用std deque存储数据 但是可以指定使用vector或者list存储数据 示例 std stack
  • GB28181学习(四)——网络设备信息查询

    要求 源设备向目标设备发送信息查询命令 目标设备将结果通过查询应答命令返回给源设备 设备信息查询命令包括 设备目录 设备信息 设备状态信息 设备配置 预置位 看守位 巡航轨迹列表 巡航轨迹 PTZ精准状态 存储卡状态等 信息查询的范围 本地