EasyCVR国标级联上级显示状态异常情况如何处理?

EasyCVR的级联功能是将我们上面的通道通过国标标准的sip协议推送到上级去的一种方式,但是不同的上级平台对接设置上都有各自的特点,我们在配置时,还需要根据不同平台的属性进行调整。

EasyCVR国标级联上级时,出现级联状态异常的现象。针对该问题我们需要做调整,所以首先来抓包排查。注册信令的抓包文件如下所示:

从上我们可以看出Register消息发送to字段出现了拼接错误,这个错误主要是上次提交点误操作导致的,因此我们需要对此提交进行代码上的优化,优化后参考代码如下所示:

@@ -260,6 +260,7 @@ func (c *Client) ClientOnline(b bool) {
    //if strings.ToUpper(c.Transport.Protocol) == "UDP" {
    c.Cascade.Online = b
    db.SQLite.Model(c.Cascade).Where("id=?", c.Cascade.ID).Update("online", b)
    log.Printf("级联状态更新[%d], Online[%d]:", c.Cascade.ID, b)
    //} else {
    //  if b {
    //      c.Cascade.Online = b
    @@ -367,7 +368,7 @@ func (c *Client) MakeRequest(method, to string, tag string, body string) (req *R
        localRealm = c.Cascade.Username[0:10]
    } //c.Client.Cascade.Username,localRealm,
    buf.WriteString(fmt.Sprintf("From: <sip:%s@%s>;tag=%s\r\n", c.Cascade.Username, localRealm, tag))
    buf.WriteString(fmt.Sprintf("To: <sip:%s@%s>;tag=%s\r\n", c.Cascade.Serial, c.Cascade.Realm))
    buf.WriteString(fmt.Sprintf("To: <sip:%s@%s>\r\n", c.Cascade.Serial, c.Cascade.Realm))
    buf.WriteString(fmt.Sprintf("Call-ID: %s\r\n", GenCallID()))
    c.cseq++
    buf.WriteString(fmt.Sprintf("CSeq: %d %s\r\n", c.cseq, strings.ToUpper(method)))

安防视频云服务平台EasyCVR作为一套较为成熟稳定的视频分发平台,不需要对现有监控架构做调整,支持CDN推流,灵活适应原有架构;且按需灵活扩展、收缩资源,免去了插件安装、浏览器限定等条件,实现了无插件、多平台自由观看回放。

此外,EasyCVR已经在扩展智能分析等相关功能,其中人脸识别功能及人流量统计功能已经在部分项目中得到应用,不久后车流量统计、车牌识别等功能也会上线。如果大家还想了解更多或者进行实际的部署测试,欢迎直接下载。

 

posted on 2021-11-10 17:45  EasyCVR视频融合平台  阅读(116)  评论(0)    收藏  举报