code: public SipPhone createSipPhone(String proxyHost, String proxyProto, int proxyPort, String me)
        throws InvalidArgumentException, ParseException {
      return new SipPhone(this, proxyHost, proxyProto, proxyPort, me);
    }
docs: This method is used to create a SipPhone object. The SipPhone class simulates a SIP User Agent.
  The SipPhone object is used to communicate with other SIP agents. Using a SipPhone object, the
  test program can make one (or more, in future) outgoing calls or (and, in future) receive one
  (or more, in future) incoming calls.
  
  @param proxyHost host name or address of the SIP proxy to use. The proxy is used for
  registering and outbound calling on a per-call basis. If this parameter is a null value,
  any registration requests will be sent to the "host" part of the "me" parameter (see
  below) and any attempt to make an outbound call via proxy will fail. If a host name is
  given here, it must resolve to a valid, reachable DNS address.
  
  @param proxyProto used to specify the protocol for communicating with the proxy server - "udp"
  or "tcp".
  @param proxyPort port number into with the proxy server listens to for SIP messages and
  connections.
  @param me "Address of Record" URI of the phone user. Each SipPhone is associated with one user.
  This parameter is used in the "from" header field.
  
  @return A new SipPhone object.
  @throws InvalidArgumentException
  @throws ParseException