Versions and Conversions

Every TAPI application and TSP is developed for a specific version of TAPI. However, TAPI allows for quite a bit of flexibility between TSPs and applications. TAPI applications and TSPs do not have to use the same version in order to communicate.

The lineNegotiateAPIVersion function allows an application and TSP to agree on a version to use. A single TSP could be capable of handling more than one version, and an application must "fall back" to using an older version if using an older TSP. In lineNegotiateAPIVersion, the dwApiVersion parameter defaults to a value according to version, as follows:

TAPI
Version
dwApiVersion
default value
1.3 0x00010003
1.4 0x00010004
2.0 0x00020000
2.1 0x00020001

However, TAPI makes this much easier as long as the TSP itself is using a newer version than the application. If the TSP is indeed newer, then TAPI is capable of translating "down" to the application's version. For example, TAPI 2.0 TSPs do not need to be specifically capable of dealing with TAPI version 1.4. If a TAPI 1.4 application is run, TAPI converts all TAPI 2.0 structures and messages into TAPI 1.4 equivalents, or as close as possible. If there is no close approximation in TAPI 1.4, then all TAPI 2.0-specific information will be lost.