code: public boolean acceptCancel(CancelRequestEvent cancelEvent, boolean isProxy) {
  		checkState();
  		if (cancelEvent.getMatchingTransaction() != null) {
  			try {
  
  				Response response = this.getMessageFactory().createResponse(
  						Response.OK, cancelEvent.getRequest());
  				cancelEvent.getServerTransaction().sendResponse(response);				
  			} catch (Exception e) {
  				// specs doesn't provide any throws clause
  				throw new RuntimeException(e.getMessage(), e);
  			}
  
  			if (!isProxy)
  				try {
  					Response response = this.getMessageFactory()
  							.createResponse(
  									Response.REQUEST_TERMINATED,
  									cancelEvent.getMatchingTransaction()
  											.getRequest());
  					cancelEvent.getMatchingTransaction().sendResponse(response);
  
  				} catch (Exception e) {
  					// specs doesn't provide any throws clause
  					throw new RuntimeException(e.getMessage(), e);
  				}
  			return true;
  		} else {
  			if (!isProxy) {
  				try {
  					Response txDoesNotExistsResponse = this
  							.getMessageFactory()
  							.createResponse(
  									Response.CALL_OR_TRANSACTION_DOES_NOT_EXIST,
  									cancelEvent.getRequest());
  					cancelEvent.getServerTransaction().sendResponse(
  							txDoesNotExistsResponse);
  				} catch (Exception e) {
  					// specs doesn't provide any throws clause
  					throw new RuntimeException(e.getMessage(), e);
  				}
  			}
  			return false;
  		}
  	}
docs: /*
  (non-Javadoc)
  
  @see
  net.java.slee.resource.sip.SleeSipProvider#acceptCancel(net.java.slee
  .resource.sip.CancelRequestEvent, boolean)