From 3609d361118d75dd221959977bfac33a37815953 Mon Sep 17 00:00:00 2001
From: lawrencehj <1934378145@qq.com>
Date: 星期一, 15 三月 2021 15:24:41 +0800
Subject: [PATCH] 完成响应上级远程启动信令执行
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java | 22 ++++++++++++++++++++--
1 files changed, 20 insertions(+), 2 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 16698f9..92835e5 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
@@ -7,8 +7,11 @@
import javax.sip.header.FromHeader;
import javax.sip.header.HeaderAddress;
import javax.sip.InvalidArgumentException;
+import javax.sip.ListeningPoint;
+import javax.sip.ObjectInUseException;
import javax.sip.RequestEvent;
import javax.sip.SipException;
+import javax.sip.SipProvider;
import javax.sip.message.Request;
import javax.sip.message.Response;
@@ -36,6 +39,7 @@
import com.genersoft.iot.vmp.utils.redis.RedisUtil;
import com.genersoft.iot.vmp.vmanager.platform.bean.ChannelReduce;
+import gov.nist.javax.sip.SipStackImpl;
import gov.nist.javax.sip.address.AddressImpl;
import gov.nist.javax.sip.address.SipUri;
@@ -286,7 +290,7 @@
deferredResultHolder.invokeResult(msg);
} else {
// 姝ゅ鏄笂绾у彂鍑虹殑DeviceControl鎸囦护
- if (XmlUtil.getText(rootElement, "TeleBoot").equals("Boot") && false) { // 杩滅▼鍚姩鍔熻兘锛氶渶瑕佸湪閲嶆柊鍚姩绋嬪簭鍚庡厛瀵筍ipStack瑙g粦
+ 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);
@@ -296,12 +300,26 @@
@Override
public void run() {
try {
- Thread.sleep(1000);
+ 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();
}
}
});
+
restartThread.setDaemon(false);
restartThread.start();
}
--
Gitblit v1.8.0