code: public SipTransaction sendReply(RequestEvent request, int statusCode, String reasonPhrase,
        String toTag, Address contact, int expires) {
      return sendReply(request, statusCode, reasonPhrase, toTag, contact, expires, null, null, null);
    }
docs: This method sends a basic, stateful response to a previously received request. Call this method
  after calling waitRequest(). The response is constructed based on the parameters passed in. The
  returned SipTransaction object must be used in any subsequent calls to sendReply() for the same
  received request, if there are any.
  
  @param request The RequestEvent object that was returned by a previous call to waitRequest().
  @param statusCode The status code of the response to send (may use SipResponse constants).
  @param reasonPhrase If not null, the reason phrase to send.
  @param toTag If not null, it will be put into the 'To' header of the response. Required by
  final responses such as OK.
  @param contact If not null, it will be used to create a 'Contact' header to be added to the
  response.
  @param expires If not -1, an 'Expires' header is added to the response containing this value,
  which is the time the message is valid, in seconds.
  @return A SipTransaction object that must be passed in to any subsequent call to sendReply()
  for the same received request, or null if an error was encountered while sending the
  response. The calling program doesn't need to do anything with the returned
  SipTransaction other than pass it in to a subsequent call to sendReply() for the same
  received request.