国标GB28181协议
GB28181是一项国家标准,全称为《公共安全视频监控联网系统信息传输、交换、控制技术要求》。 这项标准主要规定了视频监控系统的互联结构,传输、交换、控制的基 本要求和安全性要求,以及控制、传输流程和协议接口等技术要求。
主要组成
- 系统组成:监控中心、传输设备、编码设备、解码设备等。
- 信息传输:实时视频、历史视频、报警信息等。
- 信息交换:设备控制、设备状态查询、设备配置等。
- 信息控制:设备控制、设备状态查询、设备配置等。
关键部分
- 设备编码:每个设备的唯一标识。由14位的行政区划代码和后续编号组成,用于唯一标识一个设备。
- 信令传输:使用SIP(Session Initiation Protocol,会话初始协议)进行信令传输。SIP是一个基于文本的协议,用于创建、修改和终止包括视频、音频和消息在内的会话。
- 媒体传输: 使用RTP(Real-time Transport Protocol,实时传输协议)进行媒体传输,如音频和视频。
- 设备控制: 使用CSTA(Computer Supported Telecommunications Applications,计算机支持的电信应用)进行设备控制。CSTA是一种基于XML的协议,用于描述设备的状态和控制设备的操作。
如何使用
例如准备开发设备信息查询功能
- 打开国标文档GB/T 28181-2016
- 找到9.5 网络设备信息查询
- 阅读一下9.5.1网络设备信息查询基本要求和9.5.2 命令流程
- 再查询一下具体命令是什么样,都在附录A(规范性附录)联网系统控制描述协议(MANSCDP)命令集,这里的命令描述采用XML Schema,建议一定要了解。
- 查询命令都在 A.2.4 查询命令,这里说明了所有的查询命令都是这样的格式,
elementname="Query"
标识xml标签名称是Query
<elementname="Query">
<complexType>
<sequence>
<!-具体命令内容->
</sequence>
</complexType>
</element>
对应的xml应该是
<Query>
<!-具体命令内容->
</Query>
- 找到 c) 设备信息查询请求 这是xml描述,
fixed="DeviceInfo"
代表xml标签<CmdType>
的值固定是DeviceInfo
<! - 命令类型:设备信息查询(必选)->
<elementname="CmdType" fixed ="DeviceInfo"/>
<! - - 命 令 序 列 号 (必 选 )- ->
<elementname="SN" type="integer" minInclusivevalue="1"/>
<! - - 目 标 设 备 的 设 备 编 码 (必 选 )- ->
<elementname="DeviceID" type="tg:deviceIDType"/>
对应的xml应该是
<Query>
<CmdType>DeviceInfo</CmdType>
<SN>111</SN>
<DeviceID>15060300081320000001</DeviceID>
</Query>
构建SIP请求时,把请求的内容设置称这个xml就可以了。Java的xml构建可以使用JAXB,可以方便的将Java对象转为xml。
- 也可以找到消息示范查看,在 附录J (规范性附录) 信令消息示范 的 J.10设备信息查询消息示范
发送消息示范 响应消息示范
同理可以完成 设备心跳查询
设备目录查询
等