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 都可以上线。

相关推荐
bugtraq20213 小时前
为什么.NET的System.IO.Compression无法解压zlib流
linux·运维·服务器
aqi004 小时前
FFmpeg开发笔记(八十四)使用国产的librestreaming实现RTMP直播
ffmpeg·音视频·直播·流媒体
TH_14 小时前
cmd_常用命令
服务器
筏.k5 小时前
FFmpeg 核心 API 系列:音频重采样 SwrContext 完全指南(新API版本)
ffmpeg·音视频
张晓~183399481215 小时前
碰一碰发视频 系统源码 /PHP 语言开发方案
开发语言·线性代数·矩阵·aigc·php·音视频·文心一言
_星辰大海乀6 小时前
网络原理 -- HTTP
java·服务器·http·get方法·post方法
励志不掉头发的内向程序员6 小时前
【Linux系列】掌控 Linux 的脉搏:深入理解进程控制
linux·运维·服务器·开发语言·学习
望获linux6 小时前
【实时Linux实战系列】实时 Linux 在边缘计算网关中的应用
java·linux·服务器·前端·数据库·操作系统
真正的醒悟6 小时前
什么是网络割接
运维·服务器·网络
雲帝7 小时前
pveproxy 无响应不能访问web
服务器