From efc4a7bc8eb8a967198d70ff4d88670e71541164 Mon Sep 17 00:00:00 2001
From: 648540858 <456panlinlin>
Date: 星期三, 13 四月 2022 17:59:21 +0800
Subject: [PATCH] 优化级联移动位置订阅位置更新

---
 src/main/java/com/genersoft/iot/vmp/gb28181/task/impl/MobilePositionSubscribeTask.java |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/task/impl/MobilePositionSubscribeTask.java b/src/main/java/com/genersoft/iot/vmp/gb28181/task/impl/MobilePositionSubscribeTask.java
index f67f6d2..7203ee2 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/task/impl/MobilePositionSubscribeTask.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/task/impl/MobilePositionSubscribeTask.java
@@ -6,6 +6,7 @@
 import org.dom4j.Element;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.scheduling.annotation.Async;
 
 import javax.sip.Dialog;
 import javax.sip.DialogState;
@@ -25,6 +26,7 @@
         this.sipCommander = sipCommander;
     }
 
+    @Async
     @Override
     public void run() {
         sipCommander.mobilePositionSubscribe(device, dialog, eventResult -> {
@@ -56,8 +58,8 @@
          * COMPLETED-> Completed Dialog鐘舵��-宸插畬鎴�
          * TERMINATED-> Terminated Dialog鐘舵��-缁堟
          */
-        logger.info("鍙栨秷绉诲姩璁㈤槄鏃禿ialog鐘舵�佷负{}", dialog.getState());
         if (dialog != null && dialog.getState().equals(DialogState.CONFIRMED)) {
+            logger.info("鍙栨秷绉诲姩璁㈤槄鏃禿ialog鐘舵�佷负{}", dialog.getState());
             device.setSubscribeCycleForMobilePosition(0);
             sipCommander.mobilePositionSubscribe(device, dialog, eventResult -> {
                 ResponseEvent event = (ResponseEvent) eventResult.event;
@@ -74,4 +76,9 @@
             });
         }
     }
+    @Override
+    public DialogState getDialogState() {
+        if (dialog == null) return null;
+        return dialog.getState();
+    }
 }

--
Gitblit v1.8.0