日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GB28181协议--心跳

發布時間:2023/12/9 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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,}; char proxy[128] = {0,}; char xml_body[1024] = {0,};osip_message_t *rqt_msg = NULL;// sip還未注冊,那么不?;?/span>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();return 0; }

建議閱讀:
GB28181協議–設備注冊和注銷

參考資料:
《GBT 28181-2016 公共安全視頻監控聯網系統信息傳輸、交換、控制技術要求》

總結

以上是生活随笔為你收集整理的GB28181协议--心跳的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。