code: public void onTimeout(ResponseType responseType) throws DispatcherException
  	{
  		if(!proxy.getAckReceived()) {
  			this.cancel();
  			if(responseType == ResponseType.FINAL) {
  				cancel1xxTimer();
  			}
  			this.timedOut = true;
  			if(originalRequest != null) {
  				List<ProxyBranchListener> proxyBranchListeners = originalRequest.getSipSession().getSipApplicationSession().getSipContext().getListeners().getProxyBranchListeners();
  				if(proxyBranchListeners != null) {
  					for (ProxyBranchListener proxyBranchListener : proxyBranchListeners) {
  						proxyBranchListener.onProxyBranchResponseTimeout(responseType, this);
  					}
  				}
  			}
  			// Just do a timeout response
  			proxy.onBranchTimeOut(this);
  			logger.warn("Proxy branch has timed out");
  		} else {
  			logger.debug("ACKed proxybranch has timeout");
  		}
  	}
docs: This callback is called when the remote side has been idle too long while
  establishing the dialog.
  @throws DispatcherException