From a16b4f71ec5a4d3d526c9c35a1e1f7843a49e921 Mon Sep 17 00:00:00 2001
From: hotcoffie <35990065+hotcoffie@users.noreply.github.com>
Date: 星期三, 01 十二月 2021 20:35:16 +0800
Subject: [PATCH] Merge branch 'wvp-28181-2.0' into wvp-28181-2.0

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/SubscribeRequestProcessor.java |   75 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/SubscribeRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/SubscribeRequestProcessor.java
new file mode 100644
index 0000000..be4b2ce
--- /dev/null
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/SubscribeRequestProcessor.java
@@ -0,0 +1,75 @@
+package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl;
+
+import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver;
+import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor;
+import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.sip.InvalidArgumentException;
+import javax.sip.RequestEvent;
+import javax.sip.ServerTransaction;
+import javax.sip.SipException;
+import javax.sip.header.ExpiresHeader;
+import javax.sip.message.Request;
+import javax.sip.message.Response;
+import java.text.ParseException;
+
+/**
+ * SIP鍛戒护绫诲瀷锛� SUBSCRIBE璇锋眰
+ */
+@Component
+public class SubscribeRequestProcessor extends SIPRequestProcessorParent implements InitializingBean, ISIPRequestProcessor {
+
+	private Logger logger = LoggerFactory.getLogger(SubscribeRequestProcessor.class);
+	private String method = "SUBSCRIBE";
+
+	@Autowired
+	private SIPProcessorObserver sipProcessorObserver;
+
+	@Override
+	public void afterPropertiesSet() throws Exception {
+		// 娣诲姞娑堟伅澶勭悊鐨勮闃�
+		sipProcessorObserver.addRequestProcessor(method, this);
+	}
+
+	/**   
+	 * 澶勭悊SUBSCRIBE璇锋眰  
+	 * 
+	 * @param evt
+	 */
+	@Override
+	public void process(RequestEvent evt) {
+		Request request = evt.getRequest();
+
+		try {
+			Response response = null;
+			response = getMessageFactory().createResponse(200, request);
+			if (response != null) {
+				ExpiresHeader expireHeader = getHeaderFactory().createExpiresHeader(30);
+				response.setExpires(expireHeader);
+			}
+			logger.info("response : " + response.toString());
+			ServerTransaction transaction = getServerTransaction(evt);
+			if (transaction != null) {
+				transaction.sendResponse(response);
+				transaction.getDialog().delete();
+				transaction.terminate();
+			} else {
+				logger.info("processRequest serverTransactionId is null.");
+			}
+
+		} catch (ParseException e) {
+			e.printStackTrace();
+		} catch (SipException e) {
+			e.printStackTrace();
+		} catch (InvalidArgumentException e) {
+			e.printStackTrace();
+		}
+		
+	}
+
+}

--
Gitblit v1.8.0