code: public void startProxy() {
  		if(this.ackReceived) 
  			throw new IllegalStateException("Can't start. ACK has been received.");
  		if(!this.originalRequest.isInitial())
  			throw new IllegalStateException("Applications should not attempt to " +
  					"proxy subsequent requests. Proxying the initial request is " +
  					"sufficient to carry all subsequent requests through the same" +
  					" path.");
  
  		// Only send TRYING when the request is INVITE, needed by testProxyGen2xx form TCK (it sends MESSAGE)
  		if(this.originalRequest.getMethod().equals(Request.INVITE) && !started) {
  			// Send provisional TRYING. Chapter 10.2
  			// We must send only one TRYING no matter how many branches we spawn later.
  			// This is needed for tests like testProxyBranchRecurse
  //			tryingSent = true;
  			TransactionState transactionState = null;
  			if(originalRequest.getTransaction() != null) {
  				transactionState = originalRequest.getTransaction().getState();
  			}
  			// Fix for Issue http://code.google.com/p/mobicents/issues/detail?id=2417
  			// Two 100 Trying responses sent if Proxy decision is delayed.
  			if (transactionState == null || transactionState == TransactionState.TRYING) {
  				if(originalRequest.getTransaction().getState() == null )
  				logger.info("Sending 100 Trying to the source");
  				SipServletResponse trying =
  					originalRequest.createResponse(100);			
  				try {
  					trying.send();
  				} catch (IOException e) { 
  					logger.error("Cannot send the 100 Trying",e);
  				}
  			}
  		}
  		
  		
  		started = true;
  		if(this.parallel) {
  			for (final MobicentsProxyBranch pb : this.proxyBranches.values()) {
  				if(!pb.isStarted()) {
  					pb.start();
  				}
  			}
  		} else {
  			startNextUntriedBranch();
  		}		
  	}
docs: /* (non-Javadoc)
  @see javax.servlet.sip.Proxy#startProxy()