From f6320c7dd3dfd25e98bb63f41d79a33af5009a93 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期一, 17 十月 2022 17:02:16 +0800 Subject: [PATCH] 合并主线 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java | 30 +++++++++++++++++------------- 1 files changed, 17 insertions(+), 13 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 57945e7..c61e2c1 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,12 +1,13 @@ package com.genersoft.iot.vmp.gb28181.transmit.event.request; +import com.genersoft.iot.vmp.conf.SipConfig; import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; import com.genersoft.iot.vmp.gb28181.utils.SipUtils; import gov.nist.javax.sip.SipProviderImpl; import gov.nist.javax.sip.SipStackImpl; import gov.nist.javax.sip.message.SIPRequest; import gov.nist.javax.sip.message.SIPResponse; -import gov.nist.javax.sip.stack.SIPServerTransaction; +import gov.nist.javax.sip.stack.SIPServerTransactionImpl; import org.apache.commons.lang3.ArrayUtils; import org.dom4j.Document; import org.dom4j.DocumentException; @@ -26,8 +27,6 @@ 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; @@ -50,6 +49,9 @@ @Qualifier(value="udpSipProvider") private SipProviderImpl udpSipProvider; + @Autowired + private SipConfig sipConfig; + /** * 鏍规嵁 RequestEvent 鑾峰彇 ServerTransaction * @param evt @@ -57,33 +59,36 @@ */ public ServerTransaction getServerTransaction(RequestEvent evt) { Request request = evt.getRequest(); - ServerTransaction serverTransaction = evt.getServerTransaction(); + SIPServerTransactionImpl serverTransaction = (SIPServerTransactionImpl)evt.getServerTransaction(); // 鍒ゆ柇TCP杩樻槸UDP + boolean isTcp = false; ViaHeader reqViaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME); String transport = reqViaHeader.getTransport(); - boolean isTcp = "TCP".equals(transport); - + if (transport.equalsIgnoreCase("TCP")) { + isTcp = true; + } + if (serverTransaction != null && serverTransaction.getOriginalRequest() == null) { + serverTransaction.setOriginalRequest((SIPRequest) evt.getRequest()); + } if (serverTransaction == null) { try { if (isTcp) { SipStackImpl stack = (SipStackImpl)tcpSipProvider.getSipStack(); - serverTransaction = (SIPServerTransaction) stack.findTransaction((SIPRequest)request, true); + serverTransaction = (SIPServerTransactionImpl) stack.findTransaction((SIPRequest)request, true); if (serverTransaction == null) { - serverTransaction = tcpSipProvider.getNewServerTransaction(request); + serverTransaction = (SIPServerTransactionImpl)tcpSipProvider.getNewServerTransaction(request); } } else { SipStackImpl stack = (SipStackImpl)udpSipProvider.getSipStack(); - serverTransaction = (SIPServerTransaction) stack.findTransaction((SIPRequest)request, true); + serverTransaction = (SIPServerTransactionImpl) stack.findTransaction((SIPRequest)request, true); if (serverTransaction == null) { - serverTransaction = udpSipProvider.getNewServerTransaction(request); + serverTransaction = (SIPServerTransactionImpl)udpSipProvider.getNewServerTransaction(request); } } } catch (TransactionAlreadyExistsException e) { logger.error(e.getMessage()); } catch (TransactionUnavailableException e) { logger.error(e.getMessage()); - }finally { - } } return serverTransaction; @@ -185,7 +190,6 @@ * 鍥炲甯dp鐨�200 */ public SIPResponse responseSdpAck(ServerTransaction serverTransaction, String sdp, ParentPlatform platform) throws SipException, InvalidArgumentException, ParseException { - ContentTypeHeader contentTypeHeader = SipFactory.getInstance().createHeaderFactory().createContentTypeHeader("APPLICATION", "SDP"); // 鍏煎鍥芥爣涓殑浣跨敤缂栫爜@鍩熷悕浣滀负RequestURI鐨勬儏鍐� -- Gitblit v1.8.0