From 2ff3cdb6a1550941dbd36585749499064db4f8d5 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期一, 26 九月 2022 11:25:53 +0800 Subject: [PATCH] Merge branch 'wvp-28181-2.0' --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java | 16 +++++++++------- 1 files changed, 9 insertions(+), 7 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..c005f2c 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 @@ -7,6 +7,7 @@ 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; @@ -57,33 +58,34 @@ */ public ServerTransaction getServerTransaction(RequestEvent evt) { Request request = evt.getRequest(); - ServerTransaction serverTransaction = evt.getServerTransaction(); + SIPServerTransactionImpl serverTransaction = (SIPServerTransactionImpl)evt.getServerTransaction(); // 鍒ゆ柇TCP杩樻槸UDP ViaHeader reqViaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME); String transport = reqViaHeader.getTransport(); + if (serverTransaction != null && serverTransaction.getOriginalRequest() == null) { + serverTransaction.setOriginalRequest((SIPRequest) evt.getRequest()); + } boolean isTcp = "TCP".equals(transport); 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; -- Gitblit v1.8.0