public void run() { try { boolean appDataFound = false; TransactionApplicationData txAppData = null; if(dialogAppData != null) { if(dialogAppData.getSipServletMessage() == null) { Transaction transaction = dialogAppData.getTransaction(); if(transaction != null && transaction.getApplicationData() != null) { txAppData = (TransactionApplicationData) transaction.getApplicationData(); txAppData.cleanUp(); } } else { MobicentsSipSessionKey sipSessionKey = dialogAppData.getSipSessionKey(); tryToInvalidateSession(sipSessionKey, false); } dialogAppData.cleanUp(); // since the stack doesn't nullify the app data, we need to do it to let go of the refs dialog.setApplicationData(null); } if(!appDataFound && logger.isDebugEnabled()) { logger.debug("no application data for this dialog " + dialog.getDialogId()); } } catch (Exception e) { logger.error("Problem handling dialog termination", e); } } });
public Address getInitialPoppedRoute() { return transactionApplicationData.getInitialPoppedRoute(); }
/** * {@inheritDoc} */ public String getInitialRemoteAddr() { return transactionApplicationData.getInitialRemoteHostAddress(); }
serverTransaction.getApplicationData()).getSipServletMessage().getTransaction(); if(transaction == null || transaction instanceof ServerTransaction) { ClientTransaction ctx = sipProvider.getNewClientTransaction(clonedRequest); JainSipUtils.setTransactionTimers((TransactionExt) ctx, sipApplicationDispatcher); TransactionApplicationData appData = new TransactionApplicationData(sipServletRequest); appData.setTransaction(serverTransaction); appData.setNoAppReturned(noAppReturned); appData.setAppNotDeployed(appNotDeployed); appData.setModifier(modifier); ctx.setApplicationData(appData); ((TransactionApplicationData)serverTransaction.getApplicationData()).setTransaction(ctx); if(logger.isInfoEnabled()) { logger.info("Sending the request through a new client transaction " + clonedRequest); TransactionApplicationData appData = (TransactionApplicationData) transaction.getApplicationData(); if(appData == null) { appData = new TransactionApplicationData(sipServletRequest); appData.setTransaction(transaction); appData.setNoAppReturned(noAppReturned); appData.setAppNotDeployed(appNotDeployed); appData.setModifier(modifier); ((TransactionApplicationData)serverTransaction.getApplicationData()).setTransaction(transaction); if(logger.isInfoEnabled()) { logger.info("Sending the request through the existing transaction " + clonedRequest);
if(applicationData.getSipServletMessage() instanceof SipServletRequestImpl) { tmpOriginalRequest = (SipServletRequestImpl)applicationData.getSipServletMessage(); if(logger.isDebugEnabled()) { logger.debug("Original message from ctx = " + tmpOriginalRequest); if(applicationData.getHops() != null applicationData.getHops().clear(); applicationData.addSipServletResponse(sipServletResponse); if(applicationData.getSipServletMessage() instanceof SipServletRequestImpl) { tmpOriginalRequest = (SipServletRequestImpl)applicationData.getSipServletMessage(); if(logger.isDebugEnabled()) { logger.debug("Original message from dialog = " + tmpOriginalRequest); final String appNameNotDeployed = applicationData.getAppNotDeployed(); if(appNameNotDeployed != null && appNameNotDeployed.length() > 0) { if(logger.isDebugEnabled()) { final boolean noAppReturned = applicationData.isNoAppReturned(); if(noAppReturned) { if(logger.isDebugEnabled()) { final String modifier = applicationData.getModifier(); if(modifier != null && modifier.length() > 0) { if(logger.isDebugEnabled()) {
if(tad.getProxyBranch() != null) { tad.getProxyBranch().removeTransaction(branchId); try { sipContext.enterSipApp(sipApplicationSession, sipSession, false, true); if(b2buaHelperImpl != null && tad.getSipServletMessage() instanceof SipServletRequestImpl) { b2buaHelperImpl.unlinkOriginalRequestInternal((SipServletRequestImpl)tad.getSipServletMessage(), false); if(b2buaHelperImpl != null && tad.getSipServletMessage() instanceof SipServletRequestImpl) { b2buaHelperImpl.unlinkOriginalRequestInternal((SipServletRequestImpl)tad.getSipServletMessage(), false); tad.cleanUp(); if(b2buaHelperImpl == null && tad.getSipServletMessage() instanceof SipServletRequestImpl) { sipSession.cleanDialogInformation(false);
tad.cleanUp(); tad.cleanUpMessage(); dialog.setApplicationData(null); } catch (Exception e) {
((TransactionApplicationData)sessionCreatingDialog.getApplicationData()).getSipServletMessage() != null) { TransactionApplicationData dialogAppData = ((TransactionApplicationData)sessionCreatingDialog.getApplicationData()); SipServletMessageImpl sipServletMessage = dialogAppData.getSipServletMessage(); if(logger.isDebugEnabled()) { logger.debug("trying to cleanup message "+ sipServletMessage + " and related dialog app data " + dialogAppData); logger.debug("cleanDialogInformation app data and message"+ sessionCreatingDialog); dialogAppData.cleanUpMessage(); dialogAppData.cleanUp(); if(logger.isDebugEnabled()) { logger.debug("cleaned DialogInformation "+ sessionCreatingDialog);
if(tad != null && tad.getSipServletMessage() != null) { final SipServletMessageImpl sipServletMessageImpl = tad.getSipServletMessage(); final MobicentsSipSessionKey sipSessionKey = sipServletMessageImpl.getSipSessionKey(); final MobicentsSipSession sipSession = sipServletMessageImpl.getSipSession(); tad.cleanUp();
if(transactionApplicationData != null && transactionApplicationData.getInitialPoppedRoute() == null) { transactionApplicationData.setInitialPoppedRoute(new AddressImpl(routeHeader.getAddress(), null, ModifiableRule.NotModifiable));
if(tx.getApplicationData() instanceof TransactionApplicationData) { TransactionApplicationData tad = (TransactionApplicationData) tx.getApplicationData(); tad.setCanceled(true); JainSipUtils.terminateTransaction(tx); if(transactionApplicationData.getHops() != null && transactionApplicationData.getHops().size() > 0) { request.removeFirst(RouteHeader.NAME);
public void cleanUp() { // super.cleanUp(); if(transactionApplicationData != null) { transactionApplicationData.cleanUp(); transactionApplicationData = null; } setTransaction(null); poppedRoute =null; poppedRouteHeader = null; routingDirective =null; routingRegion = null; routingState = null; subscriberURI = null; // lastFinalResponse = null; // lastInformationalResponse = null; linkedRequest = null; }
/** * {@inheritDoc} */ public String getInitialTransport() { return transactionApplicationData.getInitialRemoteTransport(); }
/** * {@inheritDoc} */ public int getInitialRemotePort() { return transactionApplicationData.getInitialRemotePort(); }
Queue<Hop> nextHops = transactionApplicationData.getHops(); if(logger.isDebugEnabled()) { logger.debug("visitNextHop nextHops " + nextHops);
this.transactionApplicationData = new TransactionApplicationData(this);
MobicentsB2BUAHelper b2buaHelperImpl = sipSession.getB2buaHelper(); if(b2buaHelperImpl != null && tad.getSipServletMessage() instanceof SipServletRequestImpl) { b2buaHelperImpl.unlinkOriginalRequestInternal((SipServletRequestImpl)tad.getSipServletMessage(), false); ProxyBranchImpl proxyBranchImpl = tad.getProxyBranch(); if(proxyBranchImpl != null) { ProxyImpl proxy = (ProxyImpl) proxyBranchImpl.getProxy(); if(proxy.getFinalBranchForSubsequentRequests() != null) { tad.cleanUp(); transaction.setApplicationData(null); return; if(tad.getProxyBranch() != null) { tad.getProxyBranch().setResponse(response); tad.getProxyBranch().onResponse(response, response.getStatus()); tad.cleanUp(); transaction.setApplicationData(null); } catch (Exception e) {
linkedRequest.getSipSession().removeOngoingTransaction(linkedTransaction); if(linkedTransaction.getApplicationData() != null) { ((TransactionApplicationData)linkedTransaction.getApplicationData()).cleanUp(); ((TransactionApplicationData)linkedTransaction.getApplicationData()).cleanUpMessage(); sipServletRequestImpl.getSipSession().removeOngoingTransaction(transaction); if(transaction.getApplicationData() != null) { ((TransactionApplicationData)transaction.getApplicationData()).cleanUp(); ((TransactionApplicationData)transaction.getApplicationData()).cleanUpMessage();
final SipServletMessageImpl sipServletMessage = tad.getSipServletMessage(); if(sipServletMessage != null && sipServletMessage instanceof SipServletRequestImpl && ((MessageExt)request).getCSeqHeader().getSeqNumber() == ((MessageExt)sipServletMessage.getMessage()).getCSeqHeader().getSeqNumber()) { final MobicentsProxy proxy = sipSession.getProxy(); if(proxy == null && tad != null) { tad.cleanUp(); transaction.setApplicationData(null);