From 62f716be9cd1cee2a5fba566db3fcd43bd9fc4cc Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 03 四月 2024 15:04:33 +0800
Subject: [PATCH] 添加idea logo
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java | 112 +++++++++++++++++--------------------------------------
1 files changed, 35 insertions(+), 77 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
old mode 100644
new mode 100755
index a274814..7cbfe70
--- 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
@@ -3,7 +3,7 @@
import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
import com.genersoft.iot.vmp.gb28181.transmit.SIPSender;
import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
-import gov.nist.javax.sip.SipProviderImpl;
+import com.google.common.primitives.Bytes;
import gov.nist.javax.sip.message.SIPRequest;
import gov.nist.javax.sip.message.SIPResponse;
import org.apache.commons.lang3.ArrayUtils;
@@ -14,19 +14,17 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
import javax.sip.*;
import javax.sip.address.Address;
-import javax.sip.address.AddressFactory;
import javax.sip.address.SipURI;
-import javax.sip.header.*;
+import javax.sip.header.ContentTypeHeader;
+import javax.sip.header.ExpiresHeader;
+import javax.sip.header.HeaderFactory;
import javax.sip.message.MessageFactory;
import javax.sip.message.Request;
import javax.sip.message.Response;
import java.io.ByteArrayInputStream;
-import java.nio.ByteBuffer;
-import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
@@ -42,30 +40,13 @@
private final static Logger logger = LoggerFactory.getLogger(SIPRequestProcessorParent.class);
@Autowired
- @Qualifier(value="tcpSipProvider")
- private SipProviderImpl tcpSipProvider;
-
- @Autowired
- @Qualifier(value="udpSipProvider")
- private SipProviderImpl udpSipProvider;
-
- @Autowired
private SIPSender sipSender;
-
- public AddressFactory getAddressFactory() {
- try {
- return SipFactory.getInstance().createAddressFactory();
- } catch (PeerUnavailableException e) {
- e.printStackTrace();
- }
- return null;
- }
public HeaderFactory getHeaderFactory() {
try {
return SipFactory.getInstance().createHeaderFactory();
} catch (PeerUnavailableException e) {
- e.printStackTrace();
+ logger.error("鏈鐞嗙殑寮傚父 ", e);
}
return null;
}
@@ -74,7 +55,7 @@
try {
return SipFactory.getInstance().createMessageFactory();
} catch (PeerUnavailableException e) {
- e.printStackTrace();
+ logger.error("鏈鐞嗙殑寮傚父 ", e);
}
return null;
}
@@ -101,52 +82,6 @@
return responseAck(sipRequest, statusCode, msg, null);
}
-// public SIPResponse responseAck(ServerTransaction serverTransaction, int statusCode, String msg, ResponseAckExtraParam responseAckExtraParam) throws SipException, InvalidArgumentException, ParseException {
-// if (serverTransaction == null) {
-// logger.warn("[鍥炲娑堟伅] ServerTransaction 涓簄ull");
-// return null;
-// }
-// ToHeader toHeader = (ToHeader) serverTransaction.getRequest().getHeader(ToHeader.NAME);
-// if (toHeader.getTag() == null) {
-// toHeader.setTag(SipUtils.getNewTag());
-// }
-// SIPResponse response = (SIPResponse)getMessageFactory().createResponse(statusCode, serverTransaction.getRequest());
-// if (msg != null) {
-// response.setReasonPhrase(msg);
-// }
-// if (responseAckExtraParam != null) {
-// if (responseAckExtraParam.sipURI != null && serverTransaction.getRequest().getMethod().equals(Request.INVITE)) {
-// logger.debug("responseSdpAck SipURI: {}:{}", responseAckExtraParam.sipURI.getHost(), responseAckExtraParam.sipURI.getPort());
-// Address concatAddress = SipFactory.getInstance().createAddressFactory().createAddress(
-// SipFactory.getInstance().createAddressFactory().createSipURI(responseAckExtraParam.sipURI.getUser(), responseAckExtraParam.sipURI.getHost()+":"+responseAckExtraParam.sipURI.getPort()
-// ));
-// response.addHeader(SipFactory.getInstance().createHeaderFactory().createContactHeader(concatAddress));
-// }
-// if (responseAckExtraParam.contentTypeHeader != null) {
-// response.setContent(responseAckExtraParam.content, responseAckExtraParam.contentTypeHeader);
-// }
-//
-// if (serverTransaction.getRequest().getMethod().equals(Request.SUBSCRIBE)) {
-// if (responseAckExtraParam.expires == -1) {
-// logger.error("[鍙傛暟涓嶅叏] 2xx鐨凷UBSCRIBE鍥炲锛屽繀椤昏缃瓻xpires header");
-// }else {
-// ExpiresHeader expiresHeader = SipFactory.getInstance().createHeaderFactory().createExpiresHeader(responseAckExtraParam.expires);
-// response.addHeader(expiresHeader);
-// }
-// }
-// }else {
-// if (serverTransaction.getRequest().getMethod().equals(Request.SUBSCRIBE)) {
-// logger.error("[鍙傛暟涓嶅叏] 2xx鐨凷UBSCRIBE鍥炲锛屽繀椤昏缃瓻xpires header");
-// }
-// }
-// serverTransaction.sendResponse(response);
-// if (statusCode >= 200 && !"NOTIFY".equalsIgnoreCase(serverTransaction.getRequest().getMethod())) {
-// if (serverTransaction.getDialog() != null) {
-// serverTransaction.getDialog().delete();
-// }
-// }
-// return response;
-// }
public SIPResponse responseAck(SIPRequest sipRequest, int statusCode, String msg, ResponseAckExtraParam responseAckExtraParam) throws SipException, InvalidArgumentException, ParseException {
if (sipRequest.getToHeader().getTag() == null) {
@@ -185,10 +120,12 @@
}
// 鍙戦�乺esponse
- sipSender.transmitRequest(response);
+ sipSender.transmitRequest(sipRequest.getLocalAddress().getHostAddress(), response);
return response;
}
+
+
/**
* 鍥炲甯dp鐨�200
@@ -207,7 +144,10 @@
responseAckExtraParam.content = sdp;
responseAckExtraParam.sipURI = sipURI;
- return responseAck(request, Response.OK, null, responseAckExtraParam);
+ SIPResponse sipResponse = responseAck(request, Response.OK, null, responseAckExtraParam);
+
+
+ return sipResponse;
}
/**
@@ -240,7 +180,8 @@
reader.setEncoding(charset);
// 瀵规捣搴峰嚭鐜扮殑鏈浆涔夊瓧绗﹀仛澶勭悊銆�
String[] destStrArray = new String[]{"<",">","&","'","""};
- char despChar = '&'; // 鎴栬鍙墿灞曞吋瀹瑰叾浠栧瓧绗�
+ // 鎴栬鍙墿灞曞吋瀹瑰叾浠栧瓧绗�
+ char despChar = '&';
byte destBye = (byte) despChar;
List<Byte> result = new ArrayList<>();
byte[] rawContent = request.getRawContent();
@@ -263,11 +204,28 @@
result.add(rawContent[i]);
}
}
- Byte[] bytes = new Byte[0];
- byte[] bytesResult = ArrayUtils.toPrimitive(result.toArray(bytes));
+ byte[] bytesResult = Bytes.toArray(result);
- Document xml = reader.read(new ByteArrayInputStream(bytesResult));
+ Document xml;
+ try {
+ xml = reader.read(new ByteArrayInputStream(bytesResult));
+ }catch (DocumentException e) {
+ logger.warn("[xml瑙f瀽寮傚父]锛� 鍘熸枃濡備笅锛� \r\n{}", new String(bytesResult));
+ logger.warn("[xml瑙f瀽寮傚父]锛� 鍘熸枃濡備笅锛� 灏濊瘯鍏煎鎬у鐞�");
+ String[] xmlLineArray = new String(bytesResult).split("\\r?\\n");
+
+ // 鍏煎娴峰悍鐨刟ddress瀛楁甯︽湁<鐮存崲xml缁撴瀯瀵艰嚧鏃犳硶瑙f瀽xml鐨勯棶棰�
+ StringBuilder stringBuilder = new StringBuilder();
+ for (String s : xmlLineArray) {
+ if (s.startsWith("<Address")) {
+ continue;
+ }
+ stringBuilder.append(s);
+ }
+ xml = reader.read(new ByteArrayInputStream(stringBuilder.toString().getBytes()));
+ }
return xml.getRootElement();
}
+
}
--
Gitblit v1.8.0