I. Introduction

1. What is TAPI?
2. What platforms is TAPI available on?
3. What is a TAPI service provider (TSP)?
4. What is the relationship between a TAPI service provider and TAPI hardware?
5. Are TAPI applications and service providers backward or forward compatible?

Back to the FAQ index...


1. What is TAPI?

TAPI stands for Telephony API, or Telephony Application Programming Interface. TAPI was developed jointly by Microsoft and Intel, with input from a number of telephony companies, and originally released in 1994. TAPI enables Windows applications to share telephony devices with each other and provides a common means of handling different media (voice, data, fax, video, etc.) on a wide range of hardware platforms.

2. What platforms is TAPI available on?

TAPI is available on all Windows platforms from Windows 3.1 to Windows 2000. Different versions of TAPI are available on different versions of Windows. The first publicly available version of TAPI was version 1.3, which was an add-on for Windows 3.1. Version 1.3 is no longer supported, although you can still find the files and installation program on some MSDN development library CD's.

Windows 95 was the first version of Windows to integrate TAPI directly into the operating system. When originally released, Windows 95 supported TAPI 1.4, which was a fairly minor upgrade from TAPI 1.3. The biggest new feature in TAPI 1.4 was the ability to write 32-bit TAPI applications.

TAPI 2.0 was introduced with the release of Windows NT 4.0. Not only was this the first version of TAPI to be supported on the Windows NT platform, but it included a number of enhancements including ACD support and other PBX specific features.

In mid 1997, Microsoft released TAPI 2.1. This version of TAPI was available as an update that could be downloaded from Microsoft's web site. TAPI 2.1 is the first version to be supported on both the Windows 95 and NT/2000 platforms. Note that TAPI 2.0 service providers can be used on Windows 95 if TAPI 2.1 is installed and the service provider does not make use of any features specific to Windows NT.

TAPI 3.0 is the version released with Windows 2000.  As far as I know TAPI 3.0 is not available for Windows 9x or NT 4.x.

3. What is a TAPI service provider (TSP)?

The term "service provider" is nothing more than a fancy name for a driver. A TAPI service provider (TSP) is a driver that allows TAPI applications to communicate with different types of TAPI hardware. Windows 95 and NT come with a built in TSP called Unimodem. Unimodem is a "universal" modem service provider that supports a wide range of commonly used modems. When using telephony hardware other than modems, such as PBX's, voice processing cards, etc. you will typically use a TSP provided by the hardware vendor.

4. What is the relationship between a TAPI service provider and TAPI hardware?

A TAPI service provider (TSP) translates TAPI functions into commands that the hardware can understand, and translates events from the hardware into data that the TAPI application can understand. Because different telephony hardware can support different kinds of features, different TSP's can support different TAPI functions. It is also possible that a single TSP that supports different types of hardware can exhibit different behavior depending on the hardware being used. An example of this differing behavior can be found among the wide range of modems supported by Windows. If the TSP you use supports CallerID, and the modem you use also supports CallerID then a Windows application would be able to retrieve this information via TAPI. However, if you use the same TSP with a modem that does not support CallerID then the application will not be able to retrieve the CallerID information. So if you run into a problem where something doesn't work as you expect then the behavior could be traced to the hardware, the TSP, or even both.

5. Are TAPI applications and service providers backward or forward compatible?

There are three components of TAPI that determine the version being used. The first component is the operating system (see question 2), which is backward compatible but not forward compatible. If you are using an operating system that only supports TAPI 2.0 then applications and TSP's that only support TAPI 2.1 or later will not run. However, if you are using an operating system that supports TAPI 2.0, and the application and TSP both support TAPI 1.4 then the application will run properly.

The next component that determines the version is the TSP being used. When a TSP is loaded by TAPI it negotiates a range of versions that it supports. For example, a TSP may support TAPI 1.3 through TAPI 2.1, or it may support only TAPI 1.4, or it may support any other contiguous range of TAPI versions. The TSP can only be installed in an environment that is supported by the TSP. A TAPI 2.1 TSP can not be installed in a TAPI 1.4 or 2.0 environment.

The third component that determines the version is the TAPI application itself. Like TSP's, TAPI applications also negotiate a version of TAPI to work with. The application must negotiate a version of TAPI that is less than or equal to the version supported by the operating system. The application must also negotiate a version that is within the range of values supported by the installed TSP's.

Example: Assume a TAPI 2.1 operating system with two TSP's installed. TSP 1 only supports TAPI 2.1, but TSP 2 supports TAPI 1.3 through TAPI 2.1. If you run an application that only supports TAPI 1.4 then it will be able to negotiate with and use either TSP. The application will clearly work with TSP 2 since version 1.4 falls between the ranges supported by the TSP. The application can also use TSP 1 because the operating system can translate your TAPI 1.4 calls into TAPI 2.1 calls.


Back to the FAQ index...

 



charity-complexity