From 6ac131bcf6ec034ffc9e5813c68c56c6e5c32b70 Mon Sep 17 00:00:00 2001
From: xiaoxie <hotcoffie@163.com>
Date: 星期三, 01 十二月 2021 22:45:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wvp-28181-2.0' into wvp-28181-2.0

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/response/impl/InviteResponseProcessor.java |  172 ++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 97 insertions(+), 75 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/response/impl/InviteResponseProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/response/impl/InviteResponseProcessor.java
similarity index 61%
rename from src/main/java/com/genersoft/iot/vmp/gb28181/transmit/response/impl/InviteResponseProcessor.java
rename to src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/response/impl/InviteResponseProcessor.java
index c807c04..5446a90 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/response/impl/InviteResponseProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/response/impl/InviteResponseProcessor.java
@@ -1,75 +1,97 @@
-package com.genersoft.iot.vmp.gb28181.transmit.response.impl;
-
-import java.text.ParseException;
-
-import javax.sip.*;
-import javax.sip.address.SipURI;
-import javax.sip.header.CSeqHeader;
-import javax.sip.message.Request;
-import javax.sip.message.Response;
-
-import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager;
-import gov.nist.javax.sip.ResponseEventExt;
-import gov.nist.javax.sip.stack.SIPDialog;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import com.genersoft.iot.vmp.conf.SipConfig;
-import com.genersoft.iot.vmp.gb28181.SipLayer;
-import com.genersoft.iot.vmp.gb28181.transmit.response.ISIPResponseProcessor;
-
-
-/**
- * @Description:澶勭悊INVITE鍝嶅簲
- * @author: swwheihei
- * @date: 2020骞�5鏈�3鏃� 涓嬪崍4:43:52
- */
-@Component
-public class InviteResponseProcessor implements ISIPResponseProcessor {
-
-	 private final static Logger logger = LoggerFactory.getLogger(InviteResponseProcessor.class);
-
-	@Autowired
-	private VideoStreamSessionManager streamSession;
-
-	/**
-	 * 澶勭悊invite鍝嶅簲
-	 * 
-	 * @param evt 鍝嶅簲娑堟伅
-	 * @throws ParseException
-	 */
-	@Override
-	public void process(ResponseEvent evt, SipLayer layer, SipConfig config) throws ParseException {
-		try {
-			Response response = evt.getResponse();
-			int statusCode = response.getStatusCode();
-			// trying涓嶄細鍥炲
-			if (statusCode == Response.TRYING) {
-			}
-			// 鎴愬姛鍝嶅簲
-			// 涓嬪彂ack
-			if (statusCode == Response.OK) {
-				ResponseEventExt event = (ResponseEventExt)evt;
-				SIPDialog dialog = (SIPDialog)evt.getDialog();
-				CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);
-				Request reqAck = dialog.createAck(cseq.getSeqNumber());
-				SipURI requestURI = (SipURI) reqAck.getRequestURI();
-				requestURI.setHost(event.getRemoteIpAddress());
-				requestURI.setPort(event.getRemotePort());
-				reqAck.setRequestURI(requestURI);
-				logger.info("鍚� " + event.getRemoteIpAddress() + ":" + event.getRemotePort() + "鍥炲ack");
-				SipURI sipURI = (SipURI)dialog.getRemoteParty().getURI();
-				String deviceId = requestURI.getUser();
-				String channelId = sipURI.getUser();
-
-				dialog.sendAck(reqAck);
-
-			}
-		} catch (InvalidArgumentException | SipException e) {
-			e.printStackTrace();
-		}
-	}
-
-}
+package com.genersoft.iot.vmp.gb28181.transmit.event.response.impl;
+
+import com.genersoft.iot.vmp.conf.SipConfig;
+import com.genersoft.iot.vmp.gb28181.SipLayer;
+import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager;
+import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver;
+import com.genersoft.iot.vmp.gb28181.transmit.event.response.SIPResponseProcessorAbstract;
+import gov.nist.javax.sip.ResponseEventExt;
+import gov.nist.javax.sip.stack.SIPDialog;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.sip.InvalidArgumentException;
+import javax.sip.ResponseEvent;
+import javax.sip.SipException;
+import javax.sip.address.SipURI;
+import javax.sip.header.CSeqHeader;
+import javax.sip.message.Request;
+import javax.sip.message.Response;
+import java.text.ParseException;
+
+
+/**
+ * @description: 澶勭悊INVITE鍝嶅簲
+ * @author: panlinlin
+ * @date: 2021骞�11鏈�5鏃� 16锛�40
+ */
+@Component
+public class InviteResponseProcessor extends SIPResponseProcessorAbstract {
+
+	private final static Logger logger = LoggerFactory.getLogger(InviteResponseProcessor.class);
+	private String method = "INVITE";
+
+	@Autowired
+	private SipLayer sipLayer;
+
+	@Autowired
+	private SipConfig config;
+
+
+	@Autowired
+	private SIPProcessorObserver sipProcessorObserver;
+
+	@Override
+	public void afterPropertiesSet() throws Exception {
+		// 娣诲姞娑堟伅澶勭悊鐨勮闃�
+		sipProcessorObserver.addResponseProcessor(method, this);
+	}
+
+	@Autowired
+	private VideoStreamSessionManager streamSession;
+
+	/**
+	 * 澶勭悊invite鍝嶅簲
+	 * 
+	 * @param evt 鍝嶅簲娑堟伅
+	 * @throws ParseException
+	 */
+	@Override
+	public void process(ResponseEvent evt ){
+		try {
+			Response response = evt.getResponse();
+			int statusCode = response.getStatusCode();
+			// trying涓嶄細鍥炲
+			if (statusCode == Response.TRYING) {
+			}
+			// 鎴愬姛鍝嶅簲
+			// 涓嬪彂ack
+			if (statusCode == Response.OK) {
+				ResponseEventExt event = (ResponseEventExt)evt;
+				SIPDialog dialog = (SIPDialog)evt.getDialog();
+				CSeqHeader cseq = (CSeqHeader) response.getHeader(CSeqHeader.NAME);
+				Request reqAck = dialog.createAck(cseq.getSeqNumber());
+				SipURI requestURI = (SipURI) reqAck.getRequestURI();
+				try {
+					requestURI.setHost(event.getRemoteIpAddress());
+				} catch (ParseException e) {
+					e.printStackTrace();
+				}
+				requestURI.setPort(event.getRemotePort());
+				reqAck.setRequestURI(requestURI);
+				logger.info("鍚� " + event.getRemoteIpAddress() + ":" + event.getRemotePort() + "鍥炲ack");
+				SipURI sipURI = (SipURI)dialog.getRemoteParty().getURI();
+				String deviceId = requestURI.getUser();
+				String channelId = sipURI.getUser();
+
+				dialog.sendAck(reqAck);
+
+			}
+		} catch (InvalidArgumentException | SipException e) {
+			e.printStackTrace();
+		}
+	}
+
+}

--
Gitblit v1.8.0