最近有个现场在对接大华 ICC 平台时,客户反馈:EasyGBS 级联成功,但 ICC 显示下级离线。EasyGBS 成功对接过很多家国标平台,但这种情况确实少见。

我们远程过去确认配置无误后,就进行了抓包,拿到包我就纳闷了,怎么第一次 Register 直接就返回200OK了呢?

因为 GB28181 基本注册流程是,如果带了鉴权,应有两次 Register (如下图),但实际上,EasyGBS 第一次注册时,上级就响应成功了。

碰巧当时大华的工程师在现场升级软件,我就让他帮忙看看报文。他说 ICC 平台是不校验用户名和密码的。于是客户用大华 NVR 接入大华 ICC 测试,发现以下参数并不会影响设备在线。

大华工程师对比了报文,说是 EasyGBS 注册时填的 Domain 域是 10 位数字,但大华的 Domain 要求必须是 “IP: 端口” 格式。

国标在这块规定的是:

1. 宜采用 ID 统一编码的前十位编码;

2. 扩展支持十位编码加 “.spvmn.cn” 后缀格式;

3. 或采用IP:port格式,port宜采用5060。

诚实说,我是不太接受这个说法的,不过有思路总要试试,于是就改成了“IP:Port” 的格式,结果照样不行。

后面我又尝试了海康 NVR、大华 NVR,还有我们 EasyGBD 设备,都能正常上线。所以问题不在设备本身,因为这些设备注册时,上级平台返回 200OK 后,还会继续发一系列请求。于是我就参考这些能上线的设备的报文,把 REGISTER、Keepalive、DeviceInfo、Catalog、DeviceStatus、SUBSCRIBE 等交互报文逐行进行对比,反复修改尝试,折腾了一礼拜,愣是没找出哪儿有问题。

在我黔驴技穷的时候,转折来了!

旁边同事提议,要不用已发布的稳定版试试?结果居然轻轻松松注册上线了!这事儿就离谱。我又换了不同操作系统和架构的设备测试,排除了代码层面的问题。

但就在调试过程中,我无意加了个 ONVIF 设备,级联之后发现大华 ICC 平台显示在线了?!经过再一次反复注册、仔细核对报文,发现只有共享的通道 ID 不一样。

我就琢磨:难道上级平台会校验通道 ID?这让我想起年初一个客户现场,当时华为的 IVS3800 也会校验下级平台的通道 ID,并要求第 11 到 13 位必须是 132,不然就会设备显示在线,通道却是离线的。所以当时我们修改了非国标设备转国标的通道 ID,默认让第 11 到 13 位是 132—— 说不定这就是添加 ONVIF 设备后能在线的原因。

再一次选择控制变量法,我参考了海康 NVR 和大华 NVR 的注册报文,结果还真跟通道 ID 有关!目前测试的结果是:通道 ID 的第 11 到 13 位必须是 132 或者 188 才行。

总结一下:

大华 ICC 平台会校验下级共享通道的 ID,而且对 11~13 位有特殊要求,否则上来的设备会显示离线,目前已知 132 和 118 都可以上线。

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

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

相关文章

js使用webscoket时使用自定义二进制包协议时并发问题处理

this.server new WebSocket.Server({ port: this.port });this.server.on(connection, (ws, req) > {const uniqueId dataUtil.uuid();ws.id uniqueId;global.serverSession.set(uniqueId, ws);logger.debug({ message: 客户端已连接, traceId: ws.id, address: req.sock…

元数据管理与数据治理平台:Apache Atlas 分类传播 Classification Propagation

文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。Apache Atlas 框架是一套可扩展的核心基础治理服务,使企业能够有效、高效地满足 Hadoop 中的合规性要求,并支持与整个企…

TSF应用开发与运维部署

架构演进历程:单体架构-->SOA架构-->微服务架构-->Service Mesh腾讯微服务平台TSF (Tencent Service Framework) 是一个围绕应用和微服务的 PaaS 平台。提供服务全生命周期管理能力和数据化运营支持。提供多维度应用、服务、机器的监控数据,助力…

linux开发之mmap内存映射

mmap概念 mmp是 将文件或设备直接映射到进程的虚拟内存空间 的一种机制,可实现程序像访问内存一样访问文件,而不需要传统的 read()/write()系统调用 文件内容被映射到进程的地址空间,读写文件就像操作内存一样,操作系统负责自动同…

CPP继承

继承 一、继承概述 1、为什么需要继承 如下示例,Person 类、Student 类、Teacher 类有大量重复的代码,造成代码冗余,降低开发效率。我们可以通过继承来解决这一问题。在面向对象的编程语言中,继承是一个核心概念。主要作用将重复的…

模块 PCB 技术在未来通信领域的创新突破方向

未来通信领域对数据传输速率、信号稳定性及设备集成度的要求持续攀升,模块 PCB 作为通信设备的关键组件,其技术创新成为推动行业发展的核心动力。猎板 PCB 凭借深厚的技术积累与持续的研发投入,在模块 PCB 技术创新方面取得诸多突破&#xff…

mysql的InnoDB索引总结

MySQL InnoDB索引知识点总结 1. 索引类型 1.1 聚簇索引(Clustered Index) 定义与特性 定义:聚簇索引是InnoDB的默认存储方式,数据行按照主键的顺序物理存储在磁盘上特性: 每个InnoDB表只能有一个聚簇索引数据页中的记录…

C++模板的补充

类模板(上一篇没讲到类模板C/C内存管理&函数模板-CSDN博客&#xff09; 类模板的定义&#xff1a; template<class T1, class T2, ..., class Tn> class 类模板名 {// 类内成员定义 }; 用一个简单的栈例子讲类模板 #define _CRT_SECURE_NO_WARNINGS #include &l…

用JOIN替代子查询的查询性能优化

一、子查询的性能瓶颈分析‌重复执行成本‌关联子查询会导致外层每行数据触发一次子查询&#xff0c;时间复杂度为O(M*N)sql-- 典型低效案例 SELECT e.employee_id, (SELECT d.department_name FROM departments d WHERE d.department_id e.department_id) FROM employees e; …

【设计模式】访问者模式模式

访问者模式&#xff08;Visitor Pattern&#xff09;详解一、访问者模式简介 访问者模式&#xff08;Visitor Pattern&#xff09; 是一种 行为型设计模式&#xff08;对象行为型模式&#xff09;&#xff0c;它允许你在不修改对象结构的前提下&#xff0c;为对象结构中的元素添…

比特币现货和比特币合约的区别与联系

一、基本定义项目现货&#xff08;Spot&#xff09;合约&#xff08;Futures / Perpetual&#xff09;本质直接买卖比特币本身买卖比特币价格的衍生品合约所得资产真实的 BTC合约头寸&#xff08;没有直接持有 BTC&#xff09;结算方式交割比特币现金结算&#xff08;多数平台&…

Qt/C++开发监控GB28181系统/实时监测设备在线离线/视频预览自动重连/重新点播取流/低延迟

一、前言说明 一个好的视频监控系统&#xff0c;设备掉线后能够自动重连&#xff0c;也是一个重要的功能指标&#xff0c;如果监控系统只是个rtsp流地址&#xff0c;那非常好办&#xff0c;只需要重新打开流地址即可&#xff0c;而gb28181中就变得复杂了很多&#xff0c;需要多…

此芯p1开发板使用OpenHarmony时llama.cpp不同优化速度对比(GPU vs CPU)

硬件环境 Cix P1 SoC 瑞莎星睿 O6 开发板 rx580显卡 产品介绍&#xff1a; https://docs.radxa.com/orion/o6/getting-started/introduction OpenHarmony 5.0.0 使用vulkan后端的llama.cpp &#xff08;GPU&#xff09; # ./llama-bench -m /data/qwen1_5-0_5b-chat-q2_k.…

Android 四大布局:使用方式与性能优化原理

一、四大布局基本用法与特点1. LinearLayout&#xff08;线性布局&#xff09;使用方式&#xff1a;<LinearLayoutandroid:orientation"vertical" <!-- 排列方向&#xff1a;vertical/horizontal -->android:layout_width"match_parent"android:…

Redis的BigKey问题

Redis的BigKey问题 什么是大Key问题&#xff1f; 大key问题其实可以说是大value问题&#xff0c;就是某个key对应的value所占据的存储空间太大了&#xff0c;所以导致我们在操作这个key的时候花费的时间过长&#xff08;序列化\反序列化&#xff09;&#xff0c;从而降低了redi…

TDengine IDMP 产品基本概念

基本概念 元素 (Element) IDMP 通过树状层次结构来组织数据&#xff0c;树状结构里的每个节点被称之为元素 (Element)。元素是一个物理的或逻辑的实体。它可以是具体的物理设备&#xff08;比如一台汽车&#xff09;&#xff0c;物理设备的一个子系统&#xff08;比如一台汽车的…

专题二_滑动窗口_将x减到0的最小操作数

一&#xff1a;题目解释&#xff1a;每次只能移除数组的边界&#xff0c;移除的边界的总和为x&#xff0c;要求返回你移除边界的最小操作数&#xff01;也就是说你最少花几次移除边界&#xff0c;就能够让这些移除的边界的和为x&#xff0c;则返回这个次数&#xff01;所以这个…

CentOS 7 下通过 Anaconda3 运行llm大模型、deepseek大模型的完整指南

CentOS 7 下通过 Anaconda3 运行llm大模型、deepseek大模型的完整指南A1 CentOS 7 下通过 Anaconda3 运行大模型的完整指南一、环境准备二、创建专用环境三、模型部署与运行四、优化配置常见问题解决B1 CentOS 7 下通过 Anaconda3 使用 CPU 运行 DeepSeek 大模型的完整方案一、…

Flutter应用在Windows 8上正常运行

要让Flutter应用在Windows 8上正常运行,需满足以下前提条件,涵盖系统环境、依赖配置、编译设置等关键环节: 一、系统环境基础要求 Windows 8版本 必须是 Windows 8.1(核心支持),不支持早期Windows 8(需升级到8.1,微软已停止对原版Windows 8的支持)。 确认系统版本:右…

Redis实现消息队列三种方式

参考 Redis队列详解&#xff08;springboot实战&#xff09;_redis 队列-CSDN博客 前言 MQ消息队列有很多种&#xff0c;比如RabbitMQ,RocketMQ,Kafka等&#xff0c;但是也可以基于redis来实现&#xff0c;可以降低系统的维护成本和实现复杂度&#xff0c;本篇介绍redis中实现…