From 9fa739ac02d181a60e8755d770a39f5eb422e555 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 12 五月 2022 10:54:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wvp-28181-2.0' into commercial

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorObserver.java |   44 +++++++++++++++++++++++++++++++++++++-------
 1 files changed, 37 insertions(+), 7 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 a9c9089..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,7 +1,10 @@
 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 org.slf4j.Logger;
@@ -11,10 +14,13 @@
 import org.springframework.stereotype.Component;
 
 import javax.sip.*;
-import javax.sip.header.CSeqHeader;
-import javax.sip.header.CallIdHeader;
+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;
 
 /**
@@ -34,10 +40,11 @@
     @Autowired
     private SipSubscribe sipSubscribe;
 
+    @Autowired
+    private EventPublisher eventPublisher;
 
-//    @Autowired
-//    @Qualifier(value = "taskExecutor")
-//    private ThreadPoolTaskExecutor poolTaskExecutor;
+
+
 
     /**
      * 娣诲姞 request璁㈤槄
@@ -141,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