当前位置: 首页 > news >正文

20250808:EasyGBS 对接大华 ICC 平台问题处理

最近有个现场在对接大华 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.dtcms.com/a/320815.html

相关文章:

  • 使用Prometheus + Grafana + node_exporter实现Linux服务器性能监控
  • zookeeper3.8.4安装以及客户端C++api编译
  • WebForms 实例
  • 如何在Vue中使用拓扑图功能
  • 【深度学习计算性能】02:异步计算
  • 【入门级-C++程序设计:9、函数与递归-传值参数与传引用参数】
  • 数据持久化 —— `chrome.storage` 的记忆魔法
  • 服务器硬件电路设计之I2C问答(一):为什么I2C总线要加上拉电阻?
  • 华为USG防火墙双机,但ISP只给了1个IP, 怎么办?
  • WinForm 对话框的 Show 与 ShowDialog:阻塞与非阻塞的抉择
  • Java机密计算新维度:基于AMD SEV-ES的Enclave数据湖安全架构
  • 离线安装大语言模型管理工具Ollama
  • ArgoCD 与 GitOps:K8S 原生持续部署的实操指南
  • 使用 Grunt 替换 XML 文件中的属性值
  • Linux下GCC的C++实现Hive到Snowflake数据迁移
  • 在Java中,守护线程(Daemon Thread)和用户线程(User Thread)以及本地线程(Native Thread)的区别
  • 豆包新模型+PromptPilot:AI应用开发全流程实战指南
  • 深入掌握Prompt工程:高效构建与管理智能模型提示词全流程实战
  • Flutter Packge - 组件应用
  • [链表]142. 环形链表 II
  • 【洛谷题单】--分支结构(二)
  • 为什么需要锁升级?从CPU缓存到JVM的优化艺术
  • Autosar AP中Promise和Future的异步消息通信的详细解析
  • Kotlin 数据容器 - MutableList(MutableList 概述、MutableList 增删改查、MutableList 遍历元素)
  • 【JVM】流程汇总
  • OpenSCA开源社区每日安全漏洞及投毒情报资讯—2025年8月7日
  • OCC 主要库和功能模块
  • AI对互联网公司职位改变?
  • Android 系统的基本安全属性
  • 恒科持续低迷:新能源汽车股下跌成拖累,销量担忧加剧