GB28181协议--心跳

GB28181协议--⼼跳
1、⼼跳介绍:
根据《GBT 28181-2016 公共安全视频监控联⽹系统信息传输、交换、控制技术要求》9.6.1状态信息报送章节描述。
当源设备(包括⽹关、SIP 设备、SIP 客户端或联⽹系统) 发现⼯作异常时, 应⽴即向本 SIP 监控域的SIP 服务器发送状态信息; ⽆异常时, 应定时向本SIP 监控域的SIP 服务器发送状态信息。 SIP 设备宜在状态信息中携带故障⼦设备描述信息。
通过周期性的状态信息报送, 实现注册服务器与源设备之间的状态检测即⼼跳机制。
⼼跳发送⽅、 接收⽅需统⼀配置“⼼跳间隔”参数, 按照“⼼跳间隔”定时发送⼼跳消息, 默认⼼跳间
隔60 s。 ⼼跳发送⽅、 接收⽅需统⼀配置“⼼跳超时次数”参数, ⼼跳消息连续超时达到“⼼跳超时次数”
则认为对⽅下线, 默认⼼跳超时次数3 次。
⼼跳接收⽅在⼼跳发送⽅上线状态下检测到⼼跳消息连续超时达到商定次数则认为⼼跳发送⽅离
线; ⼼跳发送⽅在⼼跳接收⽅上线状态下检测到⼼跳消息响应消息连续超时达到商定次数则认为⼼跳
接收⽅离线。
2、命令流程
状态信息报送流程见下图:
源设备向SIP 服务器发送设备状态信息报送命令。 设备状态信息报送命令采⽤ Message ⽅
法携带;
SIP 服务器收到命令后返回200 OK。
状态信息报送需要携带的信息如下:回生电阻
传输信息⽰范:
3、软件代码:
GB28181保活可以开启⼀个定时器或者⼀个线程,按照指定的时间发送如下指令(GB28181Keeplive) ,如果超过最⼤的超时次数(⼼跳超时时间=超时次数*定时发送⼼跳间隔),设备需要重新注册。
GB28181Keeplive实现如下所⽰,GB28181Keeplive基于libosip和libeXsip开发:
int GB28181Keeplive(GB28181Param_t *pGB28181Param)
{
char from[128]={0,};y字裤
char proxy[128]={0,};
char xml_body[1024]={0,};
osip_message_t *rqt_msg =NULL;
// sip还未注册,那么不保活
涂布白板纸if(!g_SipState.sipRegStatus ||!pGB28181Param)
{
return-1;
}
snprintf(from,sizeof(from),"sip:%s@%s:%s",
pGB28181Param->userParam.devSipID,
微型显示器
pGB28181Param->userParam.devSipIP,
pGB28181Param->userParam.devSipPort);
snprintf(proxy,sizeof(proxy),"sip:%s@%s:%s",
pGB28181Param->userParam.sipServerID,
pGB28181Param->userParam.sipServerIP,
pGB28181Param->userParam.sipServerPort);
/* 构建"MESSAGE"请求 */
if(eXosip_message_build_request(&rqt_msg,"MESSAGE", proxy, from,NULL)!=OSIP_SUCCESS) {
return-1;
}
snprintf(xml_body,
sizeof(xml_body),
"<?xml version=\"1.0\"?>\r\n"
"<Notify>\r\n"卡盘扳手
"<CmdType>Keepalive</CmdType>\r\n"/*命令类型*/
"<SN>%d</SN>\r\n"/*命令序列号*/
"<DeviceID>%s</DeviceID>\r\n"/*设备编码*/
"<Status>OK</Status>\r\n"/*是否正常⼯作*/
"</Notify>\r\n",
GetSipSN(),
pGB28181Param->userParam.devSipID);
if(osip_message_set_content_type(rqt_msg,"Application/MANSCDP+xml")!=OSIP_SUCCESS)
{粘扣
osip_message_free(rqt_msg);
return-1;
}
if(osip_message_set_body(rqt_msg, xml_body,strlen(xml_body))!=OSIP_SUCCESS)
{
osip_message_free(rqt_msg);
return-1;
}
/* 发送消息 */
eXosip_lock();
eXosip_message_send_request(rqt_msg);
eXosip_unlock();
return0;
}
建议阅读:
参考资料:
《GBT 28181-2016 公共安全视频监控联⽹系统信息传输、交换、控制技术要求》

本文发布于:2024-09-23 23:24:36,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/200953.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信息   状态   设备   报送   命令   发送   消息   次数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议