From ffb0fcb9072a043c333837fa83bd976b03fea091 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 02 十二月 2021 09:30:57 +0800
Subject: [PATCH] Merge pull request #259 from hotcoffie/wvp-28181-2.0
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java | 35 ++++++++++++++++-------------------
1 files changed, 16 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
index de97c12..faa3924 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
@@ -35,9 +35,7 @@
import java.util.Iterator;
/**
- * @description: Notify璇锋眰澶勭悊鍣�
- * @author: lawrencehj
- * @date: 2021骞�1鏈�27鏃�
+ * SIP鍛戒护绫诲瀷锛� NOTIFY璇锋眰
*/
@Component
public class NotifyRequestProcessor extends SIPRequestProcessorParent implements InitializingBean, ISIPRequestProcessor {
@@ -230,8 +228,6 @@
String deviceId = SipUtils.getUserIdFromFromHeader(fromHeader);
Element rootElement = getRootElement(evt);
- Element deviceIdElement = rootElement.element("DeviceID");
- String channelId = deviceIdElement.getText();
Device device = storager.queryVideoDevice(deviceId);
if (device == null) {
return;
@@ -254,22 +250,23 @@
continue;
}
Element eventElement = itemDevice.element("Event");
+ DeviceChannel channel = channelContentHander(itemDevice);
switch (eventElement.getText().toUpperCase()) {
case "ON" : // 涓婄嚎
- logger.info("鏀跺埌鏉ヨ嚜璁惧銆恵}銆戠殑閫氶亾涓婄嚎銆恵}銆戦�氱煡", device.getDeviceId(), channelId);
- storager.deviceChannelOnline(deviceId, channelId);
+ logger.info("鏀跺埌鏉ヨ嚜璁惧銆恵}銆戠殑閫氶亾銆恵}銆戜笂绾块�氱煡", device.getDeviceId(), channel.getChannelId());
+ storager.deviceChannelOnline(deviceId, channel.getChannelId());
// 鍥炲200 OK
responseAck(evt, Response.OK);
break;
case "OFF" : // 绂荤嚎
- logger.info("鏀跺埌鏉ヨ嚜璁惧銆恵}銆戠殑閫氶亾绂荤嚎銆恵}銆戦�氱煡", device.getDeviceId(), channelId);
- storager.deviceChannelOffline(deviceId, channelId);
+ logger.info("鏀跺埌鏉ヨ嚜璁惧銆恵}銆戠殑閫氶亾銆恵}銆戠绾块�氱煡", device.getDeviceId(), channel.getChannelId());
+ storager.deviceChannelOffline(deviceId, channel.getChannelId());
// 鍥炲200 OK
responseAck(evt, Response.OK);
break;
case "VLOST" : // 瑙嗛涓㈠け
- logger.info("鏀跺埌鏉ヨ嚜璁惧銆恵}銆戠殑閫氶亾瑙嗛涓㈠け銆恵}銆戦�氱煡", device.getDeviceId(), channelId);
- storager.deviceChannelOffline(deviceId, channelId);
+ logger.info("鏀跺埌鏉ヨ嚜璁惧銆恵}銆戠殑閫氶亾銆恵}銆戣棰戜涪澶遍�氱煡", device.getDeviceId(), channel.getChannelId());
+ storager.deviceChannelOffline(deviceId, channel.getChannelId());
// 鍥炲200 OK
responseAck(evt, Response.OK);
break;
@@ -278,19 +275,17 @@
responseAck(evt, Response.OK);
break;
case "ADD" : // 澧炲姞
- logger.info("鏀跺埌鏉ヨ嚜璁惧銆恵}銆戠殑澧炲姞閫氶亾銆恵}銆戦�氱煡", device.getDeviceId(), channelId);
- DeviceChannel deviceChannel = channelContentHander(itemDevice, channelId);
- storager.updateChannel(deviceId, deviceChannel);
+ logger.info("鏀跺埌鏉ヨ嚜璁惧銆恵}銆戠殑澧炲姞閫氶亾銆恵}銆戦�氱煡", device.getDeviceId(), channel.getChannelId());
+ storager.updateChannel(deviceId, channel);
responseAck(evt, Response.OK);
break;
case "DEL" : // 鍒犻櫎
- logger.info("鏀跺埌鏉ヨ嚜璁惧銆恵}銆戠殑鍒犻櫎閫氶亾銆恵}銆戦�氱煡", device.getDeviceId(), channelId);
- storager.delChannel(deviceId, channelId);
+ logger.info("鏀跺埌鏉ヨ嚜璁惧銆恵}銆戠殑鍒犻櫎閫氶亾銆恵}銆戦�氱煡", device.getDeviceId(), channel.getChannelId());
+ storager.delChannel(deviceId, channel.getChannelId());
responseAck(evt, Response.OK);
break;
case "UPDATE" : // 鏇存柊
- logger.info("鏀跺埌鏉ヨ嚜璁惧銆恵}銆戠殑鏇存柊閫氶亾銆恵}銆戦�氱煡", device.getDeviceId(), channelId);
- DeviceChannel channel = channelContentHander(itemDevice, channelId);
+ logger.info("鏀跺埌鏉ヨ嚜璁惧銆恵}銆戠殑鏇存柊閫氶亾銆恵}銆戦�氱煡", device.getDeviceId(), channel.getChannelId());
storager.updateChannel(deviceId, channel);
responseAck(evt, Response.OK);
break;
@@ -316,13 +311,15 @@
}
}
- public DeviceChannel channelContentHander(Element itemDevice, String channelId){
+ public DeviceChannel channelContentHander(Element itemDevice){
Element channdelNameElement = itemDevice.element("Name");
String channelName = channdelNameElement != null ? channdelNameElement.getTextTrim().toString() : "";
Element statusElement = itemDevice.element("Status");
String status = statusElement != null ? statusElement.getTextTrim().toString() : "ON";
DeviceChannel deviceChannel = new DeviceChannel();
deviceChannel.setName(channelName);
+ Element channdelIdElement = itemDevice.element("DeviceID");
+ String channelId = channdelIdElement != null ? channdelIdElement.getTextTrim().toString() : "";
deviceChannel.setChannelId(channelId);
// ONLINE OFFLINE HIKVISION DS-7716N-E4 NVR鐨勫吋瀹规�у鐞�
if (status.equals("ON") || status.equals("On") || status.equals("ONLINE")) {
--
Gitblit v1.8.0