From 2a273acd09cc5e9656a5cf2673c98d7b5e8453df Mon Sep 17 00:00:00 2001
From: lawrencehj <1934378145@qq.com>
Date: 星期二, 16 三月 2021 11:47:45 +0800
Subject: [PATCH] 增加上级平台云台控制功能
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java | 75 ++++++++++++++++++++++---------------
1 files changed, 45 insertions(+), 30 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
index 92835e5..e97629b 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
@@ -4,8 +4,11 @@
import java.text.ParseException;
import java.util.*;
+import javax.sip.address.SipURI;
+
import javax.sip.header.FromHeader;
import javax.sip.header.HeaderAddress;
+import javax.sip.header.ToHeader;
import javax.sip.InvalidArgumentException;
import javax.sip.ListeningPoint;
import javax.sip.ObjectInUseException;
@@ -290,38 +293,50 @@
deferredResultHolder.invokeResult(msg);
} else {
// 姝ゅ鏄笂绾у彂鍑虹殑DeviceControl鎸囦护
- if (XmlUtil.getText(rootElement, "TeleBoot").equals("Boot") ) { // 杩滅▼鍚姩鍔熻兘锛氶渶瑕佸湪閲嶆柊鍚姩绋嬪簭鍚庡厛瀵筍ipStack瑙g粦
- String platformId = ((SipUri) ((HeaderAddress) evt.getRequest().getHeader(FromHeader.NAME)).getAddress().getURI()).getUser();
- logger.info("鎵ц杩滅▼鍚姩鍛戒护");
- ParentPlatform parentPlatform = storager.queryParentPlatById(platformId);
- cmderFroPlatform.unregister(parentPlatform, null, null);
-
- Thread restartThread = new Thread(new Runnable() {
- @Override
- public void run() {
- try {
- Thread.sleep(3000);
- SipProvider up = (SipProvider) SpringBeanFactory.getBean("udpSipProvider");
- SipStackImpl stack = (SipStackImpl)up.getSipStack();
- stack.stop();
- Iterator listener = stack.getListeningPoints();
- while (listener.hasNext()) {
- stack.deleteListeningPoint((ListeningPoint) listener.next());
+ String platformId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(FromHeader.NAME)).getAddress().getURI()).getUser();
+ String targetGBId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(ToHeader.NAME)).getAddress().getURI()).getUser();
+ // 杩滅▼鍚姩鍔熻兘
+ if (!XmlUtil.isEmpty(XmlUtil.getText(rootElement, "TeleBoot"))) {
+ if (deviceId.equals(targetGBId)) {
+ // 杩滅▼鍚姩鍔熻兘锛氶渶瑕佸湪閲嶆柊鍚姩绋嬪簭鍚庡厛瀵筍ipStack瑙g粦
+ logger.info("鎵ц杩滅▼鍚姩鏈钩鍙板懡浠�");
+ ParentPlatform parentPlatform = storager.queryParentPlatById(platformId);
+ cmderFroPlatform.unregister(parentPlatform, null, null);
+
+ Thread restartThread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ Thread.sleep(3000);
+ SipProvider up = (SipProvider) SpringBeanFactory.getBean("udpSipProvider");
+ SipStackImpl stack = (SipStackImpl)up.getSipStack();
+ stack.stop();
+ Iterator listener = stack.getListeningPoints();
+ while (listener.hasNext()) {
+ stack.deleteListeningPoint((ListeningPoint) listener.next());
+ }
+ Iterator providers = stack.getSipProviders();
+ while (providers.hasNext()) {
+ stack.deleteSipProvider((SipProvider) providers.next());
+ }
+ VManageBootstrap.restart();
+ } catch (InterruptedException ignored) {
+ } catch (ObjectInUseException e) {
+ e.printStackTrace();
}
- Iterator providers = stack.getSipProviders();
- while (providers.hasNext()) {
- stack.deleteSipProvider((SipProvider) providers.next());
- }
- VManageBootstrap.restart();
- } catch (InterruptedException ignored) {
- } catch (ObjectInUseException e) {
- e.printStackTrace();
}
- }
- });
-
- restartThread.setDaemon(false);
- restartThread.start();
+ });
+
+ restartThread.setDaemon(false);
+ restartThread.start();
+ } else {
+ // 杩滅▼鍚姩鎸囧畾璁惧
+ }
+ }
+ if (!XmlUtil.isEmpty(XmlUtil.getText(rootElement,"PTZCmd")) && !deviceId.equals(targetGBId)) {
+ String cmdString = XmlUtil.getText(rootElement,"PTZCmd");
+ Device device = storager.queryVideoDeviceByPlatformIdAndChannelId(platformId, deviceId);
+ cmder.fronEndCmd(device, deviceId, cmdString);
}
}
} catch (ParseException | SipException | InvalidArgumentException | DocumentException e) {
--
Gitblit v1.8.0