code: public void dispose() {
      this.removeRequestListener(Request.NOTIFY, this);
  
      // drop calls
      while (!callList.isEmpty()) {
        ((SipCall) callList.get(0)).dispose();
      }
  
      unregister(contactInfo.getContactHeader().getAddress().getURI().clone().toString(), 15000);
  
      super.dispose();
    }
docs: This method releases all resources associated with this SipPhone. Neither this SipPhone object
  nor its SipSession base class should be used again after calling the dispose() method.
  Server/proxy unregistration occurs and SipCall(s) associated with this SipPhone are dropped. No
  un-SUBSCRIBE is done for active Subscriptions in the buddy list.
  
  @see org.cafesip.sipunit.SipCall#dispose()