随笔 - 936  文章 - 0  评论 - 3  阅读 - 30万

国标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等视频平台均提供试用版本供大家测试,欢迎咨询。

posted on   EasyGBS  阅读(331)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示