Telephony Application Programming Interface

The Telephony Application Programming Interface (TAPI) is a Microsoft Windows API, which provides computer telephony integration and enables PCs running Microsoft Windows to use telephone services.

TAPI allows applications to control telephony functions between a computer and telephone network for data, fax, and voice calls.

It also supports supplementary functions, such as hold, transfer, conference, and call park found in PBX, ISDN, and other telephone systems.

TAPI can also be used to control voice-enabled telephony devices, including voice modems and dedicated hardware such as Dialogic cards.

Version 1.3 is no longer supported, although some MSDN development library CDs still contain the files and patches.

This version enables IP telephony (VoIP) 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 stream (MSP driver) involved in the connection.

TAPI uses Microsoft canonical address format for telephone numbers[1][2] to make phone calls.

The canonical address is a text string with the following format: +Country␣(AreaCode)␣ SubscriberNumber | Subaddress ^ Name CRLF.

Area code, subaddress and name are optional; the latter can carry extension number for direct inward dialing and calling party name, as used by ISDN/E1/T1 telecommunication protocols.

Dialing rules are used to transform the canonical phone number into a dialable calling sequence for the modem, depending on the user's location.

[1][2] The calling sequence can contain dialable numbers such as digits 0-9 and DTMF tones ABCD*#, formatting characters ␣ .

Even though TAPI provides an abstract model of phone lines, telephony applications are still heavily impacted by the specific behavior of the underlying hardware.

The only notable exception who never natively supported TAPI was the Avaya Communication Manager, which relied solely on the TSAPI interface for connectivity.

TAPI compatible PBX solutions include Aastra (400/800), Aastra (MX-ONE), Alcatel (OXO/OXE), Avaya (BCM, IP Office), Cisco (Call Manager), Ericsson-LG (eMG80, iPECS, ipLDK), NEC-Philips (iS3000, IPC100/500), NEC (SL1000, SV8100/9100), Nitsuko (DXE600/328), Panasonic (KX-TDA/TDE/NCP, KX-NS1000), Samsung (OfficeServ), Unify (3000/4000, Openscape Office), ShoreTel, and ZyXEL (X6004/X2002).