- Telephony Application Programming Interface
The Telephony Application Programming Interface (TAPI) is a
Microsoft Windows API, which providescomputer telephony integration and enables PCs runningMicrosoft Windows to usetelephone services. Different versions of TAPI are available on different versions of Windows.History
TAPI was introduced in
1993 as the result of joint development byMicrosoft andIntel . 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 patches.With Microsoft
Windows 95 , TAPI was integrated into the operating system. The first version on Windows 95 was TAPI 1.4. TAPI 1.4 had 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 significant step forward by supporting 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 Windows NT/2000 platforms.
TAPI 3.0 was released in 1999 together with
Windows 2000 . This version enables IP telephony (VoIP ) by providing simple and generic methods for making connections between two (usingH.323 ) or more (usingIP Multicast ) computers and now also offers the ability to access any media streams involved in the connection.Windows XP included both TAPI 3.1 and TAPI 2.2. TAPI 3.1 supports theMicrosoft 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. AUSB Phone TSP (Telephony 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 byNovell forNetWare servers.TAPI 2.x vs TAPI 3.x
It is a common misconception that TAPI 3.0 (or TAPI 3.1) replaces TAPI 2.x. TAPI 2.x (and all earlier versions) is written in C/C++ and requires applications to make heavy use of C style pointer arithmetic. This makes TAPI fast and easy to access from C/C++ applications, but it also makes it difficult to use from many other
programming language s.On the other hand, TAPI 3.x was designed with a COM (Component Object Model) interface. This was done with the intent of making it accessible from managed languages like Java or other environments that provide easy access to COM but don't deal with C-style pointers.
TAPI 3.x has a slightly different set of functionality than TAPI 2.x. The addition of integrated media control was the most significant addition. But TAPI 3.x doesn't include all functionality that TAPI 2.x does, like support for the Phone class.
One very notable issue with TAPI 3.x is the lack of support for managed code (.NET environment). As documented in Microsoft KB Article [http://support.microsoft.com/default.aspx?scid=kb;en-us;841712 841712] , Microsoft currently has no plans to support TAPI 3.x directly from .Net programming languages. However, Mark Smith has provided a Managed C++ library called [http://www.julmar.com/tapi/ TSP++ 3.0] .
One often overlooked reason an application developer might choose between TAPI 2.x and TAPI 3.x should be the hardware vendors recommendation. Even though TAPI provides an abstract model of phone lines, telephony applications are still heavily impacted by the specific behavior of the underlying hardware. Troubleshooting behavior issues usually requires both software and hardware vendors to collaborate. Because there is almost a 1:1 relationship between the TAPI Service Provider (TSP) interface and the TAPI 2.x interface, collaboration is often easier if the application is designed using TAPI 2.x. Experience with TAPI 3.x varies significantly between hardware vendors.
TAPI compliant hardware
Telephony hardware that supports TAPI includes most voice modems and some telephony cards such as Dialogic boards.ee also
*JTAPI (Java Telephony API)
*Microsoft NetMeeting
*Telephony Service Provider
*H.323 External links
*
MSDN [http://msdn2.microsoft.com/en-us/library/ms950407.aspx Library about TAPI]
* [http://www.i-b-a-m.de/Andreas_Marschall's_TAPI_and_TSPI_FAQ.htm Andreas Marschall's TAPI and TSPI FAQ]
* [http://www.tapi.info www.tapi.info Wiki Site about TAPI]
* [http://www.kaed.com/kdtele/index.html KDTele Tools - Programming Library for TAPI from Kaed Systems]
* [http://www.julmar.com/_Media/tspv3053.exe TSP++ 3.0 - .NET managed Library for TAPI from Mark Smith]
* [http://www.deepsoftware.com/nrcomm/index.html nrComm Lib Delphi/C++Builder component library with TAPI support]
Wikimedia Foundation. 2010.