Programmeringsgränssnitt för telefoni - Telephony Application Programming Interface

Den Telephony Application Programming Interface ( TAPI ) är en Microsoft Windows API , som ger Computer Telephony Integration och möjliggör datorer som kör Microsoft Windows att använda telefonitjänster tjänster. Olika versioner av TAPI finns på olika versioner av Windows. TAPI tillåter applikationer att styra telefonifunktioner mellan en dator och telefonnät för data, fax och röstsamtal. Den innehåller grundläggande funktioner, som att ringa, svara och lägga på ett samtal. Den stöder också kompletterande funktioner, till exempel parkerings-, överförings-, konferens- och samtalsparkering som finns i PBX , ISDN och andra telefonsystem.

TAPI används främst för att styra antingen modem eller, nyligen, för att styra telefoner för företagstelefonsystem (PBX). Vid styrning en PBX telefonen är föraren från tillverkaren av telefonsystemet. Vissa tillverkare tillhandahåller drivrutiner som tillåter kontroll av flera handenheter. Detta kallas traditionellt för ”tredjepartskontroll”. Andra tillverkare tillhandahåller drivrutiner som tillåter kontroll av en enda handenhet. Detta kallas "förstapartskontroll". Tredjepartsdrivrutiner är utformade så att applikationer kan se och/eller styra flera tillägg samtidigt. Vissa telefonsystem tillåter bara en tredjepartsanslutning åt gången. Förstepartsdrivrutiner är utformade så att applikationer kan övervaka och/eller styra ett tillägg i taget. Telefonsystem tillåter naturligtvis många av dessa anslutningar samtidigt. Modemanslutningar är av natur första part.

TAPI kan också användas för att styra röstaktiverade telefonienheter, inklusive röstmodem och dedikerad hårdvara, till exempel Dialogic- kort.

Historia

TAPI introducerades 1993 som ett resultat av gemensam utveckling av Microsoft och Intel . Den första allmänt tillgängliga versionen av TAPI var version 1.3, som släpptes som en patch ovanpå Microsoft Windows 3.1. Version 1.3-drivrutiner var endast 16-bitars. Version 1.3 stöds inte längre, även om vissa MSDN -utvecklingsbiblioteks -CD -skivor fortfarande innehåller filerna och patchar.

Med Microsoft Windows 95 integrerades TAPI i operativsystemet. Den första versionen på Windows 95 var TAPI 1.4. TAPI 1.4 hade stöd för 32-bitars applikationer.

TAPI -standarden stöder både anslutningar från enskilda datorer och LAN -anslutningar som betjänar valfritt antal datorer.

TAPI 2.0 introducerades med Windows NT 4.0. Version 2.0 var den första versionen på Windows NT -plattformen. Det gjorde ett betydande steg framåt genom att stödja ACD- och PBX -specifik funktionalitet.

1997 släppte Microsoft TAPI version 2.1. Denna version av TAPI var tillgänglig som en nedladdningsbar uppdatering och var den första versionen som stöds på både Microsoft Windows 95 och Windows NT/2000 plattformar.

TAPI 3.0 släpptes 1999 tillsammans med Windows 2000 . Denna version möjliggör IP -telefoni ( VoIP ) genom att tillhandahålla enkla och generiska metoder för att upprätta anslutningar mellan två (med H.323 ) eller fler (med hjälp av IP Multicast ) datorer och erbjuder nu också tillgång till alla medieströmmar (MSP -drivrutiner) som är involverade i anslutningen.

Windows XP inkluderade både TAPI 3.1 och TAPI 2.2. TAPI 3.1 stöder Microsoft Component Object Model och tillhandahåller en uppsättning COM -objekt till programprogrammerare. Denna version använder filterminaler som gör att applikationer kan spela in strömmande data till en fil och spela upp den inspelade data till en ström. En USB -telefon -TSP ( Telephony Service Provider ) inkluderades också som gör att ett program kan styra en USB -telefon och använda den som en slutpunkt för strömning. TAPI 3.0 eller TAPI 3.1 är inte tillgängliga på operativsystem tidigare än Windows 2000 respektive Windows XP.

Den Telephony Server Application Programming Interface ( TSAPI ) är en liknande standard som utvecklats av Novell för NetWare -servrar.

Telefonadressformat

TAPI använder Microsofts kanoniska adressformat för telefonnummer för att ringa telefonsamtal. Det är ett derivat av E.123 internationell notation.

Den kanoniska adressen är en textsträng med följande format: +Country␣(AreaCode)␣ SubscriberNumber | Subaddress ^ Name CRLF. Riktnummer, underadress och namn är valfria; den sistnämnda kan bära anknytningsnummer för direkt inåt uppringning och samtalspartners namn , som används av ISDN / E1 / T1 telekommunikationsprotokoll.

Uppringningsregler används för att omvandla det kanoniska telefonnumret till ett uppringningsbart samtal för modemet , beroende på användarens plats. Uppringningsreglerna inkluderar uppringning med variabel längd för riktnummer, stamåtkomst och internationella åtkomstprefix, samt centrala kontors- och telefonkorts- / kreditkortsnummer .

Samtalssekvensen kan innehålla uppringbara nummer som siffror 0-9och DTMF -toner ABCD*#, formateringstecken ␣ . -och kontrolltecken ! P T , W @ $ ? ;som motsvarar uppringningskommandot i Hayes AT -kommandosatsen . Följande kontrolltecken definieras:

! -hookflash, dvs en halv sekund på kroken följt av en halv sekund av kroken ;
P - pulsuppringningsläge ;
T - tonuppringningsläge ;
, - pausuppringning (varaktighet som anges av enheten);
W - vänta på kopplingston ;
@ - vänta på "tyst svar", dvs ringsignalen följt av flera sekunders tystnad;
$ - vänta på en faktureringssignal, till exempel kreditkortets snabbton;
? - indikerar att användaren ska uppmanas innan han fortsätter (resulterar i ett applikationsfel eftersom API: n inte har några möjligheter att implementera en användarprompt);
; - numret är inte komplett och kommer att slutföras senare (gäller endast i ett uppringbart nummer).

TAPI 2.x vs TAPI 3.x

Det är en vanlig missuppfattning att TAPI 3.0 (eller TAPI 3.1 ) ersätter TAPI 2.x .

TAPI 2.x och tidigare versioner skrevs i C ; API: n använder pekare till strukturer. Följaktligen är TAPI 2.x lätt att komma åt från C- eller C ++ - applikationer, men det kan vara besvärligt att använda från många andra programmeringsspråk .

TAPI 3.x har utformats med ett COM -gränssnitt ( Component Object Model ). Detta gjordes med avsikt att göra det tillgängligt för applikationer på högre nivå, till exempel utvecklat i VB eller andra miljöer som ger enkel åtkomst till COM men inte hanterar pekare i C-stil.

TAPI 3.x har en något annan uppsättning funktioner än TAPI 2.x. Tillägget av integrerad mediekontroll var det viktigaste tillägget. Men TAPI 3.x innehåller inte all funktionalitet som TAPI 2.x gör, som stöd för telefonklassen.

Ett mycket anmärkningsvärt problem med TAPI 3.x är bristen på stöd för hanterad kod ( .NET -miljö). Som dokumenterat i Microsoft KB -artikel 841712 har Microsoft för närvarande inga planer på att stödja TAPI 3.x direkt från .NET -programmeringsspråk. Mark Smith har dock tillhandahållit ett hanterat C ++ - bibliotek som heter ITAPI3 och en 2.x -omslag för .NET. Andra utvecklare tillhandahåller bibliotek för att arbeta indirekt med TAPI -aktiverade växlar.

En ofta förbisedd anledning till att en applikationsutvecklare kan välja mellan TAPI 2.x och TAPI 3.x bör vara maskinvaruleverantörernas rekommendation. Även om TAPI tillhandahåller en abstrakt modell av telefonlinjer, påverkas telefoniapplikationer fortfarande starkt av det specifika beteendet hos den underliggande maskinvaran. Felsökning av beteendeproblem kräver vanligtvis både mjukvaru- och maskinvaruleverantörer för att samarbeta. Eftersom det finns nästan ett 1: 1 -förhållande mellan TAPI Service Provider (TSP) -gränssnittet och TAPI 2.x -gränssnittet, är samarbete ofta lättare om programmet är utformat med TAPI 2.x. Erfarenheten av TAPI 3.x varierar avsevärt mellan hårdvaruleverantörer.

TAPI -kompatibel hårdvara

I Windows var TAPI -stöd nästan universellt inom telefonihårdvara som röstmodem (både interna och externa) och datorutvidgningskort som Dialogic -telefonkort . Det enda anmärkningsvärda undantaget som aldrig ursprungligen stödde TAPI var Avaya Communication Manager, som enbart förlitade sig på TSAPI -gränssnittet för anslutning.

Många PBX- system tillhandahåller TAPI-kompatibla modemgränssnitt. TAPI-kompatibla PBX-lösningar inkluderar 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 , Wildix och ZyXEL (X6004/X2002).

Tredjepartsdrivrutiner är ofta tillgängliga för telefonsystem som inte har drivrutiner tillverkade av tillverkarna.

Se även

Referenser

externa länkar