code: public ClientTransaction sendCancel() throws SipException {
  		try {
  			final ClientTransaction inviteCTX = this.getClientTransaction(lastCancelableTransactionId);
  			final ClientTransaction cancelTransaction = ra.getProviderWrapper().getNewClientTransaction(inviteCTX.createCancel());
  			if (tracer.isInfoEnabled()) {
  				tracer.info(String.valueOf(cancelTransaction) + " sending request:\n"
  						+ cancelTransaction.getRequest());
  			}
  			cancelTransaction.sendRequest();
  			return cancelTransaction;
  		} catch (NullPointerException npe) {
  			throw new SipException("Failed to find client transaction or no INVITE transaction present",npe);
  		} catch (Exception e) {
  			throw new SipException("Failed to send CANCEL due to:", e);
  		}
  	}
docs: /*
  (non-Javadoc)
  @see net.java.slee.resource.sip.DialogActivity#sendCancel()