1.7 Versioning and Capability Negotiation
This section describes the versioning and capability negotiation performed during this protocol.
Supported Transports: The Fax Server and Client Remote Protocol uses RPC over TCP only.
Protocol Versions: There are four versions of this protocol and the associated fax API. Section 2.2.85 defines the identifiers of these four protocol and API versions.
When the fax client calls FAX_ConnectFaxServer (section 3.1.4.1.10) to create a new connection to a fax server, the fax client communicates its protocol and API version. On return, the fax server answers with its own protocol and API version. The FAX_ConnectFaxServer section describes the fax-specific error codes that are defined for each protocol and fax API version. The methods that are to be implemented differently, depending on the protocol and fax API version, have these differences documented in their respective subsections.
There are two server interfaces and one client interface for this protocol. Both server interfaces share the same RPC UUID and version numbers, but are otherwise incompatible with each other. The FaxObs Server Interface (section 3.1.4.2) is a now obsolete interface implemented by server implementations of the first version of this protocol. The Fax Server Interface (section 3.1.4.1) is the current interface implemented by subsequent versions up to and including the current version of this protocol. All clients implement the same FAX client interface (section 3.2.4).
A server in a domain uses the default server principal name for the Simple and Protected GSSAPI Negotiation Mechanism (SPNEGO) security provider, the Authentication Service (AS) constant RPC_C_AUTHN_LEVEL_PKT_PRIVACY. For general information concerning Windows AS constants, see [MSDN-AUTHN].
An RPC client uses the default server principal name for the SPNEGO security provider, the AS constant RPC_C_AUTHN_LEVEL_PKT_PRIVACY. An RPC client always uses the packet authentication level, as specified in [MS-RPCE] section 3.3.1.5.2.
Localization: The protocol does not contain locale-specific information.
Capability Negotiation: No capability negotiation mechanism is built into the protocol.