我们在实现Android平台GB28181设备接入模块的时候,有遇到发送多条记录的情况,本文主要探讨下GB28181多响应传输。
规范解读
如GB/T28181-2016规范所说:目录查询响应、文件查询响应、订阅后的通知消息会出现响应、通知消息需发送多条记录的情况,此时可通过多条响应、通知消息对记录进行分批传送,各响应消息的SN 值需与请求消息相同。
为了保证多条响应、通知消息传输的稳定可靠,多条响应、通知消息发送时宜采用串行发送方式,记录发送方需收到上一条SIP Message消息的SIP响应后再进行后续发送处理。
待发送记录条数达到百条级别时,为缩短传输时间宜在每条响应消息中携带多条记录,每条响应消息携带记录上限为10000条。
SIP协议栈应支持 TCP方式的SIP消息收发处理,处理机制应符合IETFRFC3261—2002中第18章“Transport”的规定。
目录查询、文件查询未查询出结果情况下返回响应中 SumNum 应取值为0,且不携带记录列表。 以文件查询响应作为示例如下:
代码语言:javascript复制<? xmlversion="1.0"?>
<Response>
<CmdType>RecordInfo</CmdType>
<SN>17430</SN>
<DeviceID>64010000001310000001</DeviceID>
<Name>Camera1</Name>
<SumNum>0</SumNum>
</Response>
用于范围举例
网络设备信息查询
源设备向目标设备发送信息查询命令,目标设备应将结果通过查询应答命令返回给源设备。网络 设备信息查询命令包括设备目录查询命令、前端设备信息查询命令、前端设备状态信息查询命令、设备配置查询命令、预置位查询命令等,信息查询的范围包括本地SIP监控域或者跨SIP监控域。网络设备信息查询命令和响应均采用IETF RFC3428中定义的方法 Message实现。目录查询应答命令应支持多响应消息传输的要求。 源设备包括SIP客户端、网关或联网系统,目标设备包括SIP设备、网关或联网系统。
设备视音频文件检索
文件检索主要用区域、设备、录像时间段、录像地点、录像内容为条件进行查询,用 Message消息发送检索请求和返回查询结果,传送结果的 Message消息可以发送多条,应支持多响应消息传输的要求。文件检索请求和应答命令采用 MANSCDP协议格式定义。
感兴趣的开发者可以参考相关协议规范深究。