国标GB28181协议IP摄像头/录像机接入视频平台EasyGBS出现告警信息但是不上报是什么原因?
大家知道国标GB28181协议视频平台EasyGBS更新了一个在监控系统中很实用的功能——告警功能。对告警功能不熟悉的用户可以参考此文:EasyGBS实现告警功能快照记录。
告警功能更新到现在,我们也一直在对此功能进行内部测试。在EasyGBS查看设备告警信息的时候,出现设备有告警信息,但是信息不上报的情况。
经过查询GB28181-2016协议后发现,在新版中设备的部分信息需要通过订阅之后才能够获得,因此我们也在EasyGBS平台中添加了订阅功能。
代码实现如下:
func (server *Server) MakeSubscribeAlarmRequest(toSerial, toRealm, expires string) (req *Request, sn string, err error) {
contact := fmt.Sprintf("<sip:%s@%s:%d>", server.Serial, server.Host, server.Port)
doc := etree.NewDocument()
doc.CreateProcInst("xml", `version="1.0" encoding="UTF-8"`)
query := doc.CreateElement("Query")
query.CreateElement("CmdType").SetText("Alarm")
sn = GenSN()
query.CreateElement("SN").SetText(sn)
query.CreateElement("DeviceID").SetText(toSerial)
query.CreateElement("StartAlarmPriority").SetText("0")
query.CreateElement("EndAlarmPriority").SetText("0")
query.CreateElement("AlarmMethod").SetText("0")
doc.Indent(4)
body, err := doc.WriteToString()
if err != nil {
return
}
req, err = server.MakeRequest("SUBSCRIBE", fmt.Sprintf("%s@%s", toSerial, toRealm), body)
if err != nil {
return
}
与此同时,当设备的协议版本再次选择2016版gb28181协议的时候,也能够看到上报的告警信息了。
EasyGBS国标流媒体平台支持通过GB28181协议与第三方平台进行级联,也能够与TSINGSEE青犀视频平台EasyNVR进行级联,如果大家对EasyGBS的级联功能或者告警功能比较感兴趣,欢迎联系我们了解,EasyGBS、EasyNVR等视频平台均提供试用版本供大家测试,欢迎咨询。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结