From 221f99c764b51c3cd284c6e5a41492c26c5c7ffc Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 09 九月 2022 17:06:19 +0800
Subject: [PATCH] 优化sip消息

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java
index 56078f1..3213065 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java
@@ -59,11 +59,14 @@
 	public ServerTransaction getServerTransaction(RequestEvent evt) {
 		Request request = evt.getRequest();
 		ServerTransaction serverTransaction = evt.getServerTransaction();
+		if (serverTransaction != null) {
+			System.out.println(serverTransaction.getState().toString());
+		}
 		// 鍒ゆ柇TCP杩樻槸UDP
 		boolean isTcp = false;
 		ViaHeader reqViaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME);
 		String transport = reqViaHeader.getTransport();
-		if (transport.equals("TCP")) {
+		if (transport.equalsIgnoreCase("TCP")) {
 			isTcp = true;
 		}
 
@@ -86,6 +89,8 @@
 				logger.error(e.getMessage());
 			} catch (TransactionUnavailableException e) {
 				logger.error(e.getMessage());
+			}finally {
+
 			}
 		}
 		return serverTransaction;
@@ -137,7 +142,7 @@
 			return;
 		}
 		serverTransaction.sendResponse(response);
-		if (statusCode >= 200 && !"NOTIFY".equals(evt.getRequest().getMethod())) {
+		if (statusCode >= 200 && !"NOTIFY".equalsIgnoreCase(evt.getRequest().getMethod())) {
 
 			if (serverTransaction.getDialog() != null) {
 				serverTransaction.getDialog().delete();
@@ -150,7 +155,7 @@
 		response.setReasonPhrase(msg);
 		ServerTransaction serverTransaction = getServerTransaction(evt);
 		serverTransaction.sendResponse(response);
-		if (statusCode >= 200 && !"NOTIFY".equals(evt.getRequest().getMethod())) {
+		if (statusCode >= 200 && !"NOTIFY".equalsIgnoreCase(evt.getRequest().getMethod())) {
 			if (serverTransaction.getDialog() != null) {
 				serverTransaction.getDialog().delete();
 			}
@@ -182,6 +187,10 @@
 				sipFactory.createAddressFactory().createSipURI(sipURI.getUser(),  sipURI.getHost()+":"+sipURI.getPort()
 				));
 		response.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress));
+		ServerTransaction serverTransaction = getServerTransaction(evt);
+		if (serverTransaction == null) {
+
+		}
 		getServerTransaction(evt).sendResponse(response);
 	}
 
@@ -231,6 +240,9 @@
 		byte destBye = (byte) despChar;
 		List<Byte> result = new ArrayList<>();
 		byte[] rawContent = request.getRawContent();
+		if (rawContent == null) {
+			return null;
+		}
 		for (int i = 0; i < rawContent.length; i++) {
 			if (rawContent[i] == destBye) {
 				boolean resul = false;

--
Gitblit v1.8.0