From 394c40d8bb29b8e40fc7978ea638f1592b03d617 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 08 九月 2022 16:42:46 +0800
Subject: [PATCH] 修复目录订阅的状态异常
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java | 30 ++++++++++++++++++++++++------
1 files changed, 24 insertions(+), 6 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 34d4536..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,9 +142,11 @@
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();
+ if (serverTransaction.getDialog() != null) {
+ serverTransaction.getDialog().delete();
+ }
}
}
@@ -148,8 +155,10 @@
response.setReasonPhrase(msg);
ServerTransaction serverTransaction = getServerTransaction(evt);
serverTransaction.sendResponse(response);
- if (statusCode >= 200 && !"NOTIFY".equals(evt.getRequest().getMethod())) {
- if (serverTransaction.getDialog() != null) serverTransaction.getDialog().delete();
+ if (statusCode >= 200 && !"NOTIFY".equalsIgnoreCase(evt.getRequest().getMethod())) {
+ if (serverTransaction.getDialog() != null) {
+ serverTransaction.getDialog().delete();
+ }
}
}
@@ -178,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);
}
@@ -215,7 +228,9 @@
return getRootElement(evt, "gb2312");
}
public Element getRootElement(RequestEvent evt, String charset) throws DocumentException {
- if (charset == null) charset = "gb2312";
+ if (charset == null) {
+ charset = "gb2312";
+ }
Request request = evt.getRequest();
SAXReader reader = new SAXReader();
reader.setEncoding(charset);
@@ -225,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