Telephony Application Programming Interface
From Wikipedia, the free encyclopedia
The Telephony Application Programming Interface (TAPI) is an API, which enables PCs running Microsoft Windows to use telephone services. Different versions of TAPI are available on different versions of Windows. TAPI was introduced in 1993 as the result of joint development by Microsoft and Intel. The first publicly available version of TAPI was version 1.3, which was released as a patch on top of Microsoft Windows 3.1. Version 1.3 is no longer supported, although some MSDN development library CDs still contain the files and patch.
With Microsoft Windows 95, TAPI was integrated into the operating system. The first version on Windows 95 was TAPI 1.4. That version was not very different from 1.3. The biggest enhancement of TAPI 1.4 was support for 32-bit applications.
The TAPI standard supports both connections from individual computers and LAN connections serving any number of computers.
TAPI 2.0 was introduced with Windows NT 4.0. Version 2.0 was the first version on the Windows NT platform. It made a nice step forward by supporting some ACD and PBX specific functionality.
In 1997, Microsoft released TAPI version 2.1. This version of TAPI was available as a downloadable update and was the first version to be supported on both the Microsoft Windows 95 and NT/2000 platforms.
TAPI 3.0 was released in 1999 together with Windows 2000. This version enables IP telephony by providing simple and generic methods for making connections between two (using H.323) or more (using IP Multicast) computers and now also offers the ability to access any media streams involved in the connection.
The release of Windows XP included TAPI 3.1. TAPI 3.1 supports the Microsoft Component Object Model and provides a set of COM objects to application programmers. This version uses File Terminals which allow applications to record streaming data to a file and play this recorded data back to a stream. A USB Phone TSP (TAPI Service Provider) was also included which allows an application to control a USB phone and use it as a streaming endpoint.
The Telephony Server Application Programming Interface (TSAPI) is a similar standard developed by Novell for NetWare servers.
[edit] TAPI 2.x vs TAPI 3.x
It is a common error to think that TAPI 3.0 (or TAPI 3.1) is the "improved" version of TAPI 2.x. The fact is that TAPI 2.x is written in C/C++ so that it could be accessible from C/C++ or unmanaged code. On the other hand, TAPI 3.x is designed with the COM (Component Object Model) interface, with the intention of making it accessible from managed code (.NET environment). TAPI 3.x has a slightly different set of functions and does not neccessarily support all functionalities that TAPI 2.x does. One of the most noticeable differences between those two are the supports to Phone class (speakerphone volume control in particular), for that TAPI 2.x appears to be the better choice for programmer.
[edit] TAPI compliant hardware
Telephony hardware that supports TAPI includes most voice modems and some telephony cards such as Dialogic boards.