国标GB28181协议IP摄像头/录像机接入视频平台EasyGBS出现告警信息,但是不上报是什么原因?

大家知道国标GB28181协议视频平台EasyGBS更新了一个在监控系统中很实用的功能——告警功能。对告警功能不熟悉的用户可以参考此文:EasyGBS实现告警功能快照记录

微信截图_20201027112240.png

告警功能更新到现在,我们也一直在对此功能进行内部测试。在EasyGBS查看设备告警信息的时候,出现设备有告警信息,但是信息不上报的情况。

经过查询GB28181-2016协议后发现,在新版中设备的部分信息需要通过订阅之后才能够获得,因此我们也在EasyGBS平台中添加了订阅功能。

33.png

34.png

代码实现如下:

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协议的时候,也能够看到上报的告警信息了。

35.png

37.png

EasyGBS国标流媒体平台支持通过GB28181协议与第三方平台进行级联,也能够与TSINGSEE青犀视频平台EasyNVR进行级联,如果大家对EasyGBS的级联功能或者告警功能比较感兴趣,欢迎联系我们了解,EasyGBS、EasyNVR等视频平台均提供试用版本供大家测试,欢迎咨询。

扫描二维码关注公众号,回复: 12097499 查看本文章

猜你喜欢

转载自blog.csdn.net/EasyGBS/article/details/109636430