GB28181 - 注册保活
注册保活,顾名思义,即保持注册成功的在线状态。SIP 代理向 SIP 服务器注册成功后,如果缺少保活机制,SIP 代理就很难发现 SIP 服务离线,SIP 服务也很难发现 SIP 代理离线,这是就需要有保活机制。
《GB/T28181—2016 公共安全视频监控联网系统信息传输、交换、控制技术要求》中要求了两种注册保活机制:
- 刷新注册机制
- 状态信息报送机制
刷新注册
刷新注册要求
在 GB28181 - 注册与注销 中,我们提到了注册过期时间的概念:
- 注册过期时间:可配置,默认值
86400s
,不应短于3600s
,在注册过期之前,SIP
代理应向SIP
服务器发起刷新注册。
从概念中我们就可以了解到:如果 SIP
服务器在注册过期时间的时间范围内没有收到刷新注册的请求或者是刷新注册请求失败,则会认为 SIP 代理离线。
刷新注册过程
刷新注册过程与 GB28181 - 注册与注销 中注册过程一致,但要注意刷新注册需要保持 Call-ID
的值与注册时使用的 Call-ID
值一致。
状态信息报送
状态信息报送要求
另外,在《GB/T28181—2016 公共安全视频监控联网系统信息传输、交换、控制技术要求》中还要求了状态信息报送的交互过程:
应支持以主动报送的方式搜集、检测网络内的监控设备、报警设备、相关服务器以及连接的联网系统的运行情况。
这样在 SIP
代理和 SIP
服务器之间即可通过周期性的状态信息报送,实现注册服务器与源设备之间的状态检测即心跳机制。
心跳机制相关参数:
- 心跳间隔:指定定时发送心跳消息的时间间隔, 默认心跳间隔
60s
。- 心跳发送方、接收方需统一配置心跳间隔参数
- 心跳超时次数:允许心跳间隔超时的次数,默认心跳超时次数为
3
次。- 心跳发送方、接收方需统一配置心跳超时次数参数
心跳机制在线状态判定:
- 心跳接收方在心跳发送方在线状态下检测到心跳消息连续超时达到心跳超时次数则认为心跳发送方离线
- 心跳发送方在心跳接收方在线状态下检测到心跳消息响应消息连续超时达到心跳超时次数则认为心跳接收方离线。
状态信息报送过程
状态信息报送流程描述如下:
源设备向
SIP
服务器发送设备状态信息报送命令。设备状态信息报送命令采用Message
方法携带;MESSAGE sip:130909115229300920@10.64.49.44:7100 SIP/2.0 Via: SIP/2.0/UDP 10.64.49.218:7100;rport;branch=z9hG4bK2672759896 From: <sip:130909113319427420@10.64.49.218:7100>;tag=308835751 To: <sip:130909115229300920@10.64.49.44:7100> Call-ID: 63810466 CSeq: 20 MESSAGE Content-Type: Application/MANSCDP+xml Max-Forwards: 70 User-Agent: Hikvision Content-Length: 150 <?xml version="1.0"?> <Notify> <CmdType>Keepalive</CmdType> <SN>2749</SN> <DeviceID>130909113319427420</DeviceID> <Status>OK</Status> </Notify>
SIP 服务器收到命令后返回
200OK
。SIP/2.0 200 OK Via: SIP/2.0/UDP 10.64.49.218:7100;rport=7100;branch=z9hG4bK2672759896 From: <sip:130909113319427420@10.64.49.218:7100>;tag=308835751 To: <sip:130909115229300920@10.64.49.44:7100>;tag=1578583786 Call-ID: 63810466 CSeq: 20 MESSAGE User-Agent: Hikvision Content-Length: 0
参考资料
- [1] 《GB/T28181—2016 公共安全视频监控联网系统信息传输、交换、控制技术要求》