code: public SipTransaction sendReinvite(String newContact, String displayName, String body,
        String contentType, String contentSubType) {
      return sendReinvite(newContact, displayName, body, contentType, contentSubType, null, null);
    }
docs: This method sends a basic RE-INVITE on the current dialog.
  <p>
  This method returns when the request message has been sent out. The calling program must
  subsequently call the waitReinviteResponse() method (one or more times) to get the response(s)
  and perhaps the sendReinviteOkAck() method to send an ACK. On the receive side, pertinent
  methods include waitForReinvite(), respondToReinvite(), and waitForAck().
  
  @param newContact An URI string (ex: sip:bob@192.0.2.4:5093) for updating the remote target URI
  kept by the far end (target refresh), or null to not change that information.
  @param displayName Display name to set in the contact header sent to the far end if newContact
  is not null.
  @param body A String to be used as the body of the message, for changing the media session. Use
  null for no body bytes.
  @param contentType The body content type (ie, 'application' part of 'application/sdp'),
  required if there is to be any content (even if body bytes length 0). Use null for no
  message content.
  @param contentSubType The body content sub-type (ie, 'sdp' part of 'application/sdp'), required
  if there is to be any content (even if body bytes length 0). Use null for no message
  content.
  @return A SipTransaction object if the message was successfully sent, null otherwise. You don't
  need to do anything with this returned object other than to pass it to methods that you
  call subsequently for this operation, namely waitReinviteResponse() and
  sendReinviteOkAck().