Interfaccia di programmazione dell'applicazione di telefonia - Telephony Application Programming Interface
La Telephony Application Programming Interface ( TAPI ) è un'API di Microsoft Windows , che fornisce l'integrazione della telefonia del computer e consente ai PC che eseguono Microsoft Windows di utilizzare i servizi telefonici . Diverse versioni di TAPI sono disponibili su diverse versioni di Windows. TAPI consente alle applicazioni di controllare le funzioni di telefonia tra un computer e la rete telefonica per dati, fax e chiamate vocali. Include funzioni di base, come comporre, rispondere e riagganciare una chiamata. Supporta anche funzioni supplementari, come attesa, trasferimento, conferenza e parcheggio chiamate presenti in PBX , ISDN e altri sistemi telefonici.
TAPI viene utilizzato principalmente per controllare i modem o, più recentemente, per controllare i telefoni del sistema telefonico aziendale (PBX). Quando si controlla un telefono PBX , il driver è fornito dal produttore del sistema telefonico. Alcuni produttori forniscono driver che consentono il controllo di più telefoni. Questo è tradizionalmente chiamato "controllo di terze parti". Altri produttori forniscono driver che consentono il controllo di un singolo telefono. Questo è chiamato "controllo di prima parte". I driver di terze parti sono progettati per consentire alle applicazioni di vedere e/o controllare più estensioni contemporaneamente. Alcuni sistemi telefonici consentono solo una connessione di terzi alla volta. I driver proprietari sono progettati per consentire alle applicazioni di monitorare e/o controllare un interno alla volta. I sistemi telefonici consentono naturalmente molti di questi collegamenti contemporaneamente. Le connessioni modem sono per natura di prima parte.
TAPI può essere utilizzato anche per controllare dispositivi di telefonia abilitati alla voce, inclusi modem vocali e hardware dedicato come le schede Dialogic .
Storia
TAPI è stato introdotto nel 1993 come risultato dello sviluppo congiunto di Microsoft e Intel . La prima versione pubblicamente disponibile di TAPI è stata la versione 1.3, rilasciata come patch su Microsoft Windows 3.1. I driver della versione 1.3 erano solo a 16 bit. La versione 1.3 non è più supportata, sebbene alcuni CD della libreria di sviluppo MSDN contengano ancora i file e le patch.
Con Microsoft Windows 95 , TAPI è stato integrato nel sistema operativo. La prima versione su Windows 95 era TAPI 1.4. TAPI 1.4 supportava le applicazioni a 32 bit.
Lo standard TAPI supporta sia le connessioni da singoli computer che le connessioni LAN che servono un numero qualsiasi di computer.
TAPI 2.0 è stato introdotto con Windows NT 4.0. La versione 2.0 è stata la prima versione sulla piattaforma Windows NT. Ha fatto un significativo passo avanti supportando le funzionalità specifiche di ACD e PBX .
Nel 1997, Microsoft ha rilasciato TAPI versione 2.1. Questa versione di TAPI era disponibile come aggiornamento scaricabile ed è stata la prima versione supportata su entrambe le piattaforme Microsoft Windows 95 e Windows NT/2000.
TAPI 3.0 è stato rilasciato nel 1999 insieme a Windows 2000 . Questa versione abilita la telefonia IP ( VoIP ) fornendo metodi semplici e generici per effettuare connessioni tra due (usando H.323 ) o più (usando IP Multicast ) e ora offre anche la possibilità di accedere a qualsiasi flusso multimediale (driver MSP) coinvolto in la connessione.
Windows XP includeva sia TAPI 3.1 che TAPI 2.2. TAPI 3.1 supporta il Microsoft Component Object Model e fornisce un set di oggetti COM ai programmatori di applicazioni. Questa versione utilizza Terminali file che consentono alle applicazioni di registrare i dati in streaming su un file e riprodurre questi dati registrati in un flusso. È stato incluso anche un USB Phone TSP ( Telephony Service Provider ) che consente a un'applicazione di controllare un telefono USB e utilizzarlo come endpoint di streaming. TAPI 3.0 o TAPI 3.1 non sono disponibili sui sistemi operativi precedenti rispettivamente a Windows 2000 e Windows XP.
La Telephony Server Application Programming Interface ( TSAPI ) è uno standard simile sviluppato da Novell per i server NetWare .
Formato dell'indirizzo di telefono
TAPI utilizza il formato dell'indirizzo canonico Microsoft per i numeri di telefono per effettuare chiamate. È un derivato della notazione internazionale E.123 .
L'indirizzo canonico è una stringa di testo con il seguente formato: +Country␣(AreaCode)␣ SubscriberNumber | Subaddress ^ Name CRLF. Prefisso, sottoindirizzo e nome sono facoltativi; quest'ultimo può portare il numero di interno per la selezione passante diretta e il nome del chiamante , come utilizzato dai protocolli di telecomunicazione ISDN / E1 / T1 .
Le regole di composizione vengono utilizzate per trasformare il numero di telefono canonico in una sequenza di chiamata componibile per il modem , a seconda della posizione dell'utente. Le regole di composizione includono la composizione a lunghezza variabile per il prefisso, l'accesso alla linea esterna e i prefissi di accesso internazionali, nonché l'accesso all'ufficio centrale e i numeri di carte telefoniche / carte di credito .
La sequenza di chiamata può contenere numeri componibili come cifre 0-9e toni DTMFABCD*# , caratteri di formattazione ␣ . -e caratteri di controllo ! P T , W @ $ ? ;che corrispondono al comando Dial del set di comandi Hayes AT . Sono definiti i seguenti caratteri di controllo:
- ! - hookflash, cioè mezzo secondo agganciato seguito da mezzo secondo sganciato ;
- P - modalità di composizione a impulsi ;
- T - modalità di composizione a toni ;
- , - pausa di composizione (durata specificata dal dispositivo);
- W - attendere il segnale di linea libera ;
- @ - attende la "risposta a bassa voce", cioè il tono di richiamata seguito da alcuni secondi di silenzio;
- $ - attendi un segnale di fatturazione, come il tono di richiesta della carta di credito;
- ? - indica che l'utente deve ricevere una richiesta prima di continuare (risulta in un errore dell'applicazione poiché l'API non ha i mezzi per implementare una richiesta dell'utente);
- ; - il numero non è completo e sarà terminato in seguito (valido solo in un numero componibile).
TAPI 2.x contro TAPI 3.x
Si tratta di un malinteso comune che TAPI 3.0 (o TAPI 3.1 ) sostituisce TAPI 2.x .
TAPI 2.xe le versioni precedenti erano scritte in C ; l'API utilizza i puntatori alle strutture. Di conseguenza, TAPI 2.x è di facile accesso da applicazioni C o C++ , ma può essere scomodo da usare da molti altri linguaggi di programmazione .
TAPI 3.x è stato progettato con un'interfaccia COM ( Component Object Model ). Ciò è stato fatto con l'intento di renderlo accessibile ad applicazioni di livello superiore come quelle sviluppate in VB o altri ambienti che forniscono un facile accesso a COM ma non gestiscono i puntatori in stile C.
TAPI 3.x ha un insieme di funzionalità leggermente diverso da TAPI 2.x. L'aggiunta del controllo multimediale integrato è stata l'aggiunta più significativa. Ma TAPI 3.x non include tutte le funzionalità di TAPI 2.x, come il supporto per la classe Phone.
Un problema molto notevole con TAPI 3.x è la mancanza di supporto per il codice gestito ( ambiente .NET ). Come documentato nell'articolo Microsoft KB 841712 , Microsoft attualmente non prevede di supportare TAPI 3.x direttamente dai linguaggi di programmazione .NET. Tuttavia, Mark Smith ha fornito una libreria C++ gestita chiamata ITAPI3 e un wrapper 2.x per .NET. Altri sviluppatori forniscono librerie per lavorare indirettamente con PBX abilitati TAPI.
Un motivo spesso trascurato per cui uno sviluppatore di applicazioni potrebbe scegliere tra TAPI 2.xe TAPI 3.x dovrebbe essere la raccomandazione dei fornitori di hardware. Anche se TAPI fornisce un modello astratto di linee telefoniche, le applicazioni di telefonia sono ancora fortemente influenzate dal comportamento specifico dell'hardware sottostante. La risoluzione dei problemi relativi al comportamento di solito richiede la collaborazione dei fornitori di software e hardware. Poiché esiste una relazione quasi 1:1 tra l'interfaccia TAPI Service Provider (TSP) e l'interfaccia TAPI 2.x, la collaborazione è spesso più semplice se l'applicazione è progettata utilizzando TAPI 2.x. L'esperienza con TAPI 3.x varia in modo significativo tra i fornitori di hardware.
Hardware conforme a TAPI
Su Windows , il supporto TAPI era quasi universale nell'hardware di telefonia come modem vocali (sia interni che esterni) e schede di espansione per computer come le schede di telefonia Dialogic . L'unica eccezione degna di nota che non ha mai supportato TAPI in modo nativo è stata Avaya Communication Manager, che si basava esclusivamente sull'interfaccia TSAPI per la connettività.
Molti sistemi PBX forniscono interfacce modem compatibili con TAPI. Le soluzioni PBX compatibili con TAPI includono 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 e ZyXEL (X6004/X2002).
I driver di terze parti sono spesso disponibili per i sistemi telefonici che non dispongono di driver realizzati dai produttori.
Guarda anche
- TSAPI
- JTAPI (API di telefonia Java)
- Microsoft NetMeeting
- Formato numero di telefono Microsoft
- Fornitore di servizi di telefonia
- H.323
Riferimenti
- ^ a b c MSDN: Applicazioni TAPI - Controllo dispositivo - Indirizzo canonico
- ^ a b Microsoft Technet: regole di composizione e formato dell'indirizzo canonico
- ^ https://github.com/markjulmar/itapi3
- ^ https://github.com/markjulmar/atapi.net
- ^ https://sourceforge.net/projects/siptapi/
- ^ Riferimento del programmatore