code: public SipServletRequestImpl getMatchingRequest(
  			SipServletRequestImpl request) {
  		if(request.getMethod().equals(Request.ACK)) {
  			Iterator<TransactionApplicationData> ongoingTransactions = proxy.getTransactionMap().values().iterator();
  			// Issue 1837 http://code.google.com/p/mobicents/issues/detail?id=1837
  			// ACK was received by JAIN-SIP but was not routed to application
  			// we need to go through the set of all ongoing tx since and INFO request can be received before a reINVITE tx has been completed
  			if(ongoingTransactions != null) {
  				if(logger.isDebugEnabled()) {
                      logger.debug("going through all tx to check if we have the matching request to the ACK for branchId");
                  }
  				while (ongoingTransactions.hasNext()) {
  					TransactionApplicationData transactionApplicationData = ongoingTransactions.next();					
  					final SipServletMessageImpl sipServletMessage = transactionApplicationData.getSipServletMessage();
  					if(sipServletMessage != null && sipServletMessage instanceof SipServletRequestImpl && 
  							((MessageExt)request.getMessage()).getCSeqHeader().getSeqNumber() == ((MessageExt)sipServletMessage.getMessage()).getCSeqHeader().getSeqNumber() && 
  							((MessageExt)request.getMessage()).getCallIdHeader().getCallId().equals(((MessageExt)sipServletMessage.getMessage()).getCallIdHeader().getCallId())) {
  						return (SipServletRequestImpl)sipServletMessage;
  					}
  				}
  			}
  			return null;
  		} else {
  			return outgoingRequest;
  		}		
  	}
docs: from the given request in param, find the current corresponding matching forwarded orginal request
  For a given ACK by example, there might be an UPDATE in between which make the outgoing requet not the INVITE one and can mess up
  the branch id generation for the ACK (200 OK would have had the same branch id as UPDATE)