<b>Optional parameters:</b> depending on corresponding [@a options bits] additional parameters may follow @a status (in this order).
@arg [@ref JackServerName] <em>(char *) server_name</em> selects from among several possible concurrent server instances. Server names are unique to each user. If unspecified, use "default" unless \$JACK_DEFAULT_SERVER is defined in the process environment.
@return Opaque client handle if successful. If this is NULL, the open operation failed, @a *status includes @ref JackFailure and the caller is not a JACK client.
Open an external client session with a JACK server. This interface is more complex but more powerful than jack_client_new(). With it, clients may choose which of several servers to connect, and control whether and how to start the server automatically, if it was not already running. There is also an option for JACK to generate a unique client name, when necessary.
@param client_name of at most jack_client_name_size() characters. The name scope is local to each server. Unless forbidden by the @ref JackUseExactName option, the server will modify this name to create a unique variant, if needed.
@param options formed by OR-ing together @ref JackOptions bits. Only the @ref JackOpenOptions bits are allowed.
@param status (if non-NULL) an address for JACK to return information from the open operation. This status word is formed by OR-ing together the relevant @ref JackStatus bits.