Platform SDK: TAPI

Version Negotiation

Over time, different versions may exist for TAPI applications, TAPI, and the service providers. Optimal interoperability of a TAPI application requires knowledge of not just the application's TAPI version, but also of the TAPI DLL, TAPISVR, and service provider versions.

Failure to do proper version negotiation can result in serious problems. For example, some heavily used structures have data members added from one version to the next. If the structure size does not match what the application or TAPI expects, the consequences range from memory leaks to intermittent AVs.

For additional information on TAPI versioning, see TAPI 2 Versioning.

TAPI 2 applications negotiate with TAPI and TAPISVR during lineInitializeEx. Applications perform device negotiation with service providers by calling lineNegotiateAPIVersion for each line that the application might use.

TAPI 3 does not yet have different versions, so version negotiation is not needed.