视频上云网关平台EasyCVR级联通道前端不显示设备国标编号问题

视频联网云平台EasyCVR把传统安防技术、视频智能分析、多媒体通信、分布式存储、告警联动等关键技术很好融合在一起,充分整合、利用视频安防信息资源,为用户提供统一高效的服务,加快数字化、智能化的视频网络监控发展,引领安防软件平台技术架构新方向。

EasyCVR架构图 2.5D.png

EasyCVR级联通道前端不显示设备国标编号问题

EasyCVR能够对上级平台进行级联,包括国标GB28181协议设备以及RTSP协议设备。本文讲的是EasyCVR级联国标设备,级联通道选择通道列表时,前端显示设备的国标编号为空。

1077.png

解决方法

我们按F12调出开发者模式,调试排除前端问题,发现后端返回的DeviceID为空。

RTSP、hksdk通道级联时通道所在的国标设备编号,应与当前级联对象中的Sip认证用户一致,如果为空则和ini配置文件中的SIP服务serial一致。

1078.png

1079.png

解决方案

针对此问题,我们修改下前端代码,如下所示:

//Oscar:rtsp,sdk通道级联
serial := utils.Conf().Section("sip").Key("serial").MustString("34020000002000000001")
cascade := make([]*models.Cascade, 0)
q := db.SQLite.Model(models.Cascade{}).Where("[id]=?",id)
q.Find(&cascade)
if len(cascade) == 1{
   serial = cascade[0].Username
}

随后修改下后端代码,如下所示:

//Oscar:rtsp,sdk通道级联
serial := utils.Conf().Section("sip").Key("serial").MustString("34020000002000000001")
cascade := make([]*models.Cascade, 0)
q = db.SQLite.Model(models.Cascade{}).Where("[id]=?",id)
q.Find(&cascade)
if len(cascade) == 1{
   if cascade[0].Username != ""{
      serial = cascade[0].Username
   }
}

修改完成后则问题解决。

注:此代码仅为测试代码,开发者可参考,也可根据自身需求另写代码。

猜你喜欢

转载自blog.csdn.net/EasyNVS/article/details/107662164