From d739bfa5976e36ced26f906ab16f83c20c8cb27c Mon Sep 17 00:00:00 2001
From: xiaoxie <hotcoffie@163.com>
Date: 星期一, 23 五月 2022 09:44:21 +0800
Subject: [PATCH] 处理冲突

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorObserver.java |   49 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 39 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorObserver.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorObserver.java
index 6439e8c..a06a73d 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorObserver.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorObserver.java
@@ -1,10 +1,12 @@
 package com.genersoft.iot.vmp.gb28181.transmit;
 
+import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
 import com.genersoft.iot.vmp.gb28181.event.SipSubscribe;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor;
+import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.RegisterRequestProcessor;
+import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.notify.cmd.KeepaliveNotifyMessageHandler;
 import com.genersoft.iot.vmp.gb28181.transmit.event.response.ISIPResponseProcessor;
 import com.genersoft.iot.vmp.gb28181.transmit.event.timeout.ITimeoutProcessor;
-import gov.nist.javax.sip.message.SIPRequest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -12,11 +14,13 @@
 import org.springframework.stereotype.Component;
 
 import javax.sip.*;
-import javax.sip.header.CSeqHeader;
-import javax.sip.header.CallIdHeader;
-import javax.sip.header.Header;
+import javax.sip.address.SipURI;
+import javax.sip.address.URI;
+import javax.sip.header.*;
+import javax.sip.message.Request;
 import javax.sip.message.Response;
 import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
@@ -36,9 +40,11 @@
     @Autowired
     private SipSubscribe sipSubscribe;
 
-//    @Autowired
-//    @Qualifier(value = "taskExecutor")
-//    private ThreadPoolTaskExecutor poolTaskExecutor;
+    @Autowired
+    private EventPublisher eventPublisher;
+
+
+
 
     /**
      * 娣诲姞 request璁㈤槄
@@ -63,7 +69,7 @@
      * @param processor 澶勭悊绋嬪簭
      */
     public void addTimeoutProcessor(ITimeoutProcessor processor) {
-        this.timeoutProcessor = processor;
+        timeoutProcessor = processor;
     }
 
     /**
@@ -142,9 +148,32 @@
      */
     @Override
     public void processTimeout(TimeoutEvent timeoutEvent) {
-        if(timeoutProcessor != null) {
-            timeoutProcessor.process(timeoutEvent);
+        logger.info("[娑堟伅鍙戦�佽秴鏃禲");
+        ClientTransaction clientTransaction = timeoutEvent.getClientTransaction();
+        eventPublisher.requestTimeOut(timeoutEvent);
+        if (clientTransaction != null) {
+            Request request = clientTransaction.getRequest();
+            if (request != null) {
+                CallIdHeader callIdHeader = (CallIdHeader) request.getHeader(CallIdHeader.NAME);
+                if (callIdHeader != null) {
+                    SipSubscribe.Event subscribe = sipSubscribe.getErrorSubscribe(callIdHeader.getCallId());
+                    SipSubscribe.EventResult eventResult = new SipSubscribe.EventResult(timeoutEvent);
+                    subscribe.response(eventResult);
+                    sipSubscribe.removeErrorSubscribe(callIdHeader.getCallId());
+                }
+            }
         }
+
+//        Timeout timeout = timeoutEvent.getTimeout();
+//        ServerTransaction serverTransaction = timeoutEvent.getServerTransaction();
+//        if (serverTransaction != null) {
+//            Request request = serverTransaction.getRequest();
+//            URI requestURI = request.getRequestURI();
+//            Header header = request.getHeader(FromHeader.NAME);
+//        }
+//        if(timeoutProcessor != null) {
+//            timeoutProcessor.process(timeoutEvent);
+//        }
     }
 
     @Override

--
Gitblit v1.8.0