/**
   * Starts a new InviteTransactionClient and initializes the dialog state information.
   *
   * @param callee the callee url (and display name)
   * @param caller the caller url (and display name)
   * @param contact the contact url OR the contact username
   * @param session_descriptor SDP body
   * @param icsi the ICSI for this session
   */
  public void invite(
      String callee,
      String caller,
      String contact,
      String session_descriptor,
      String icsi) { // modified by mandrajg
    printLog("inside invite(callee,caller,contact,sdp)", LogLevel.MEDIUM);
    if (!statusIs(D_INIT)) return;
    // else
    NameAddress to_url = new NameAddress(callee);
    NameAddress from_url = new NameAddress(caller);
    SipURL request_uri = to_url.getAddress();

    NameAddress contact_url = null;
    if (contact != null) {
      if (contact.indexOf("sip:") >= 0) contact_url = new NameAddress(contact);
      else
        contact_url =
            new NameAddress(
                new SipURL(contact, sip_provider.getViaAddress(), sip_provider.getPort()));
    } else contact_url = from_url;

    Message invite =
        MessageFactory.createInviteRequest(
            sip_provider,
            request_uri,
            to_url,
            from_url,
            contact_url,
            session_descriptor,
            icsi); // modified by mandrajg
    // do invite
    invite(invite);
  }
 /**
  * Re-invites the remote user.
  *
  * <p>Starts a new InviteTransactionClient and changes the dialog state information
  *
  * <p>Parameters: <br>
  * - contact : the contact url OR the contact username; if null, the previous contact is used <br>
  * - session_descriptor : the message body
  */
 public void reInvite(String contact, String session_descriptor) {
   printLog("inside reInvite(contact,sdp)", LogLevel.MEDIUM);
   if (!statusIs(D_CALL)) return;
   // else
   Message invite = MessageFactory.createInviteRequest(this, session_descriptor);
   if (contact != null) {
     NameAddress contact_url;
     if (contact.indexOf("sip:") >= 0) contact_url = new NameAddress(contact);
     else
       contact_url =
           new NameAddress(
               new SipURL(contact, sip_provider.getViaAddress(), sip_provider.getPort()));
     invite.setContactHeader(new ContactHeader(contact_url));
   }
   reInvite(invite);
 }