• GB28181学习(三)——心跳保活


    心跳保活

    要求:

    1. 当原设备发现工作异常时,应立即向本SIP监控域的SIP服务器发送状态信息;
    2. 无异常时,定时向本SIP监控域的SIP服务器发送状态信息;
    3. 状态信息报送采用**MESSGAE**方法;
    4. SIP设备宜在状态信息中携带故障子设备描述信息;
    5. 通过周期性的状态信息报送,实现注册服务器与原设备之间的状态检测,即心跳机制;
    6. 心跳发送发、接收方需统一配置心跳间隔参数,安装心跳间隔定时发送心跳消息,默认心跳间隔为60s;
    7. 心跳发送方、接收方需统一配置心跳超时次数参数,心跳消息连续超时达到心跳超时次数则认为对方下线,默认心跳超时次数为3次;
    8. 心跳接收方在心跳发送方上线状态下,检测到心跳消息连续超时达到配置次数则心跳发送方离线;
    9. 心跳发送方在心跳接收方上线状态下,检测不到心跳响应消息连续超时达到配置次数则认为心跳接收方离线;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    流程:

    在这里插入图片描述

    1. 源设备向SIP服务器发送设备状态信息报送命令,采用MESSAGE方法携带;
    2. SIP服务器收到命令后返回200 OK;
    
    • 1
    • 2

    抓包测试

    1)客户端启动前,登录设备查看国标设备,注册状态为不在线,心跳周期60s;

    在这里插入图片描述

    2)打开客户端,输入域名和本地ip,关于域名和本地ip的配置,可查看:https://blog.csdn.net/www_dong/article/details/132654525,填写完成后点击“连接”按钮;

    在这里插入图片描述

    3)抓包分析:

    1) 设备作为客户端主动对外发送注册信息;
    2) 如无服务端连接,由icmp协议返回目标不可达命令;
    3) 服务端启动后,默认监听5060端口;
    4) 服务端第一次接收注册消息后返回401未认证, 并携带服务端认证信息;
    5) 服务端第二次接收注册消息后返回200 OK,注册成功;
    6) 设备端定期向服务端发送保活消息,周期为60s,与界面上配置对应;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    4)设备注册状态变为在线:

    在这里插入图片描述

    5)保活消息:

    
    
    <Notify>
    
    	<CmdType>KeepaliveCmdType>
    
    	<SN>37SN>
    
    	<DeviceID>xxxDeviceID>
    
    	<Status>OKStatus>
    
    	<Info> Info>
    
    Notify>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  • 相关阅读:
    c#学习入门2
    代码开源设计实现思路
    Flask后端开发(二) - 功能实现和项目总结
    论文浅尝 | 思维树:使用大语言模型反复思考解决问题
    EffectiveC++-条款39:明智而审慎地使用 private 继承
    MMDetection3D简单教程:模型定义、注册与搭建
    央企施工企业数字化转型的灵魂是什么
    【数据结构】栈详解
    通航的桥
    react_14
  • 原文地址:https://blog.csdn.net/www_dong/article/details/132796612