上篇blog,梳理了国网B接口的REGISTER接口描述和消息示例,前端系统加电启动并初次注册成功后,向平台上报前端系统的设备资源信息(包括:视频服务器、DVR/DVS、摄像机、告警设备、环境量采集设备等模拟或数字信号采集设备信息)。
前端系统上报的设备资源信息采用SIP的NOTIFY消息,消息体应采用XML进行封装。前端系统在上报资源信息时,应按照逐级发送的方式,发送的资源信息记录建议组合成小于MTU尺寸的封包进行上报,也允许单个分批的发送方式(分批次NOTIFY上去)。
资源上报属于数据接口。
接口流程
主要功能流程如下:
a) F1:注册成功后,前端系统向其注册平台首次发送上报资源信息的 SIP 消息。
b) F2:平台确认,发送 200 OK 响应。
c) F3:前端系统向其注册平台第二次发送上报资源信息的 SIP 消息。
d) F4:平台确认,发送 200 OK 响应。
接口参数
重要的SIP头字段如下:
SIP响应返回码:
XML Schema 参数定义:
消息示例
上报前端系统的资源
代码语言:javascript复制NOTIFY sip: 前端系统所属平台地址编码@前端系统所属平台域名或IP地址 SIP/2.0
From: <sip: 前端系统地址编码@前端系统所属平台域名或IP地址>;tag=f2161243
To: <sip: 前端系统所属平台地址编码@前端系统所属平台域名或IP地址>
Contact: <sip: 前端系统地址编码@前端系统所属平台域名或IP地址>
Call-ID: c47e42
Via: SIP/2.0/UDP 前端系统所属平台IP地址;branch=z9hG4bK
CSeq: 1 NOTIFY
Content-type: application/xml
Content-Length: 消息体的长度
<?xml versinotallow="1.0" encoding="UTF-8"?>
<SIP_XML EventType=Push_Resourse>
<Code>父节点(平台、场所、前端设备)地址编码</Code>
<SubList SubNum=2>
<!-- 场地、前端设备、摄像机的地址编码 -->
<Item Code=”设备地址编码” Name=”名称” Status=1 DecoderTag=解码插件标签 Lnotallow=”经
度值” Latitude=”纬度值” SubNum=”包含的字节点数目”/>
<Item Code=”设备地址编码” Name=”名称” Status=0 DecoderTag=解码插件标签 Lnotallow=”经
度值” Latitude=”纬度值” SubNum=”包含的字节点数目”/>
</SubList>
</SIP_XML>
响应消息
代码语言:javascript复制SIP/2.0 200 OK
From: <sip: 前端系统地址编码@前端系统所属平台域名或IP地址>;tag=f2161243
To: <sip: 前端系统所属平台地址编码@前端系统所属平台域名或IP地址>;tag=2c10390
Contact: <sip: 前端系统所属平台地址编码@前端系统所属平台域名或IP地址>
以上是国网B接口资源上报(Push_Resourse)接口描述和消息示例,国网B接口的资源上报,有点类似于GB28181的设备目录查询(Catalog),只是GB28181的Catalog是平台端发起,然后接入端响应并上报的,感兴趣的开发者,可以对照GB/T28181-2016相关规范看看。