From 0a404e23896b566a4dc017431951f8b73578ed73 Mon Sep 17 00:00:00 2001
From: 百鸣 <94030128+ixingqiao@users.noreply.github.com>
Date: 星期五, 26 八月 2022 11:49:43 +0800
Subject: [PATCH] Merge branch '648540858:wvp-28181-2.0' into wvp-28181-2.0
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java | 32 ++++++++++++++++++++++++++------
1 files changed, 26 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 390565c..8f3ba0a 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
@@ -1,5 +1,6 @@
package com.genersoft.iot.vmp.gb28181.transmit.event.request;
+import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
import gov.nist.javax.sip.SipProviderImpl;
import gov.nist.javax.sip.SipStackImpl;
import gov.nist.javax.sip.message.SIPRequest;
@@ -138,7 +139,9 @@
serverTransaction.sendResponse(response);
if (statusCode >= 200 && !"NOTIFY".equals(evt.getRequest().getMethod())) {
- if (serverTransaction.getDialog() != null) serverTransaction.getDialog().delete();
+ if (serverTransaction.getDialog() != null) {
+ serverTransaction.getDialog().delete();
+ }
}
}
@@ -148,7 +151,9 @@
ServerTransaction serverTransaction = getServerTransaction(evt);
serverTransaction.sendResponse(response);
if (statusCode >= 200 && !"NOTIFY".equals(evt.getRequest().getMethod())) {
- if (serverTransaction.getDialog() != null) serverTransaction.getDialog().delete();
+ if (serverTransaction.getDialog() != null) {
+ serverTransaction.getDialog().delete();
+ }
}
}
@@ -160,13 +165,18 @@
* @throws InvalidArgumentException
* @throws ParseException
*/
- public void responseSdpAck(RequestEvent evt, String sdp) throws SipException, InvalidArgumentException, ParseException {
+ public void responseSdpAck(RequestEvent evt, String sdp, ParentPlatform platform) throws SipException, InvalidArgumentException, ParseException {
Response response = getMessageFactory().createResponse(Response.OK, evt.getRequest());
SipFactory sipFactory = SipFactory.getInstance();
ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("APPLICATION", "SDP");
response.setContent(sdp, contentTypeHeader);
+ // 鍏煎鍥芥爣涓殑浣跨敤缂栫爜@鍩熷悕浣滀负RequestURI鐨勬儏鍐�
SipURI sipURI = (SipURI)evt.getRequest().getRequestURI();
+ if (sipURI.getPort() == -1) {
+ sipURI = sipFactory.createAddressFactory().createSipURI(platform.getServerGBId(), platform.getServerIP()+":"+platform.getServerPort());
+ }
+ logger.debug("responseSdpAck SipURI: {}:{}", sipURI.getHost(), sipURI.getPort());
Address concatAddress = sipFactory.createAddressFactory().createAddress(
sipFactory.createAddressFactory().createSipURI(sipURI.getUser(), sipURI.getHost()+":"+sipURI.getPort()
@@ -183,13 +193,18 @@
* @throws InvalidArgumentException
* @throws ParseException
*/
- public Response responseXmlAck(RequestEvent evt, String xml) throws SipException, InvalidArgumentException, ParseException {
+ public Response responseXmlAck(RequestEvent evt, String xml, ParentPlatform platform) throws SipException, InvalidArgumentException, ParseException {
Response response = getMessageFactory().createResponse(Response.OK, evt.getRequest());
SipFactory sipFactory = SipFactory.getInstance();
- ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("APPLICATION", "MANSCDP+xml");
+ ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml");
response.setContent(xml, contentTypeHeader);
+ // 鍏煎鍥芥爣涓殑浣跨敤缂栫爜@鍩熷悕浣滀负RequestURI鐨勬儏鍐�
SipURI sipURI = (SipURI)evt.getRequest().getRequestURI();
+ if (sipURI.getPort() == -1) {
+ sipURI = sipFactory.createAddressFactory().createSipURI(platform.getServerGBId(), platform.getServerIP()+":"+platform.getServerPort());
+ }
+ logger.debug("responseXmlAck SipURI: {}:{}", sipURI.getHost(), sipURI.getPort());
Address concatAddress = sipFactory.createAddressFactory().createAddress(
sipFactory.createAddressFactory().createSipURI(sipURI.getUser(), sipURI.getHost()+":"+sipURI.getPort()
@@ -204,7 +219,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);
@@ -214,6 +231,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