code: @Override
  	public SIPDialog createDialog(SIPTransaction transaction) {
  		if (sipCache.inLocalMode()) {
  			return super.createDialog(transaction);
  		}
  		else {
  			SIPDialog retval = null;
  			if (transaction instanceof SIPClientTransaction) {
  				final String dialogId = ((SIPRequest) transaction.getRequest()).getDialogId(false);
  				retval = this.earlyDialogTable.get(dialogId);
  				if (retval == null || (retval.getState() != null && retval.getState() != DialogState.EARLY)) {
  					retval = (SIPDialog) HASipDialogFactory.createHASipDialog(replicationStrategy, transaction);
  					this.earlyDialogTable.put(dialogId, retval);
  				}
  			} else {
  				retval = (SIPDialog) HASipDialogFactory.createHASipDialog(replicationStrategy, transaction);
  			}
  			return retval;
  		}
  	}
docs: /*
  (non-Javadoc)
  @see gov.nist.javax.sip.stack.SIPTransactionStack#createDialog(gov.nist.javax.sip.stack.SIPTransaction)