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

相关推荐
这是程序猿1 天前
ComfyUI 教程合集|AI绘图、ControlNet、Lora、IPAdapter、视频生成全攻略
大数据·人工智能·windows·音视频
сокол1 天前
【网安-Web渗透测试-内网渗透】内网信息收集(工具)
服务器·windows·网络安全·系统安全
Mr.45671 天前
CentOS 7 完整部署开源 MQTT 服务器 EMQX 指南(2025实战版)
服务器·开源·centos
淼淼爱喝水1 天前
openEuler 环境下 Ansible Playbook 实战:批量创建用户并修改 Shell 属性
linux·运维·服务器·openeuler·playbook
计算机安禾1 天前
【Linux从入门到精通】第30篇:综合案例:编写一个Linux系统体检脚本
linux·运维·服务器
草履虫君1 天前
wsl的装龙虾方式,接入飞书的时候需要在wsl环境装飞书插件,那么node模式接入飞书,需要怎么装飞书插件?
服务器·经验分享·飞书
海的预约1 天前
Bootloader应用分析
linux·运维·服务器
时空未宇1 天前
海鸥派顺利运行YOLO11S
linux·运维·服务器
j_xxx404_1 天前
Linux:深入解析ELF文件结构
linux·运维·服务器
ShineWinsu1 天前
对于Linux:进程间通信IPC(共享内存)的解析
linux·服务器·面试·笔试·进程·共享内存·ipc