| CAPI-Treiber |
Das CAPI (Common ISDN Application Interface) ist eine deutsche Entwicklung und ermöglichte bereits zu sehr frühen ISDN-Zeiten den standardisierten Zugriff für Anwendungsprogramme auf ISDN-Karten. 1989 gründete die Telekom zusammen mit verschiedenen Herstellern von ISDN-Geräten den "Hersteller-Arbeitskreis ISDN-PC", um diese Schnittstelle zu entwickeln.
Wenn Sie eine ISDN-Karte kaufen, bekommen Sie normalerweise immer einen Treiber mitgeliefert, der das CAPI unterstützt. Dieser Treiber wird häufig ebenfalls einfach als CAPI bezeichnet.
Das CAPI ist ein Satz von Befehlen und Befehlsparametern, die ein Anwendungsprogramm verwendet und der CAPI-Treiber verstehen muss, damit die ISDN-Karte das macht, was das Anwendungsprogramm will. Die Befehle, die verwendet werden, sind unabhängig vom verwendeten Betriebssystem. Nur die Art, wie das Anwendungsprogramm die Befehle an den CAPI-Treiber schickt, ist betriebssystemspezifisch. Wie die Kommunikation im jeweiligen Betriebssystem abläuft, ist in einem eigenen Kapitel des CAPI für DOS, Windows, OS/2, Unix und Netware beschrieben.
Derzeit gibt es zwei relevante Beschreibungen dieser Schnittstelle:
CAPI Version 1.1 wurde zunächst speziell auf das nationale ISDN (1TR6 als D-Kanal-Protokoll) ausgerichtet. Mit den veränderten Anforderungen, die durch EURO-ISDN (E-DSS1 als D-Kanal-Protokoll) kamen, wurde die Version 2.0 des CAPI entwickelt. Anwendungen, die nur CAPI 1.1 unterstützten, laufen nicht mit CAPI-Treibern, die nur CAPI 2.0 unterstützten und umgekehrt.
Die derzeitige Situation ist so, dass es noch Programme (und auch manche CAPI-Treiber) gibt, die nur CAPI 1.1 unterstützen. Andererseits gibt es Programme und CAPI-Treiber, die nur CAPI 2.0 unterstützen. Daneben gibt es sowohl CAPI-Treiber, als auch Programme, die beide Versionen des CAPI unterstützten. Die Regel ist heute, dass CAPI-Treiber, beide Versionen des CAPI unterstützten. Solche Treiber nennt man auch "duale CAPI-Treiber" oder einfach "duale CAPI".
Die ersten Implementierungen des CAPI gab es unter DOS. Hier ist der CAPI-Treiber ein speichrresidentes Programm, auf das die ISDN-Anwendungen über einen Interrupt (standardmäßig F1h) zugreifen. Bei passiven ISDN-Karten belegen manche ISDN-Treiber bis zu 100 KBytes des konventionellen Arbeitsspeichers.
Windows-ISDN-Programme greifen über eine DLL (dynamic link library), die meist der Hardwarehersteller zusammen mit dem Treiber ausliefert, auf den CAPI-Treiber zu. 16 Bit-Programme verwenden CAPI.DLL oder CAPI20.DLL, 32 Bit-Programme verwenden CAPI32.DLL oder CAPI2032.DLL. Wie diese DLL dann auf den eigentlichen Treiber zugreift, hängt wieder von der Art der Realisierung des Treibers ab. Das "20" im Namen der DLL bedeutet jeweils , dass die DLL die Schnittstelle CAPI 2.0 bereitstellt. Der Regelfall ist der, dass ISDN-Kartenhersteller, die mit CAPI 2.0-Unterstützung Ihrer Treiber werben, sowohl eine CAPI20.DLL für Windows 3.11-Programme als auch eine CAPI2032.DLL für Windows 95/Windows NT-Programme liefern. Gerade bei Noname-Produkten sollten Sie aber darauf achten, dass das auch tatsächlich der Fall ist. Liefert ein Hersteller lediglich eine CAPI2032.DLL, bedeutet das, dass Windows 3.11-Programme (z.B. T-Online 2.0) mit dieser Karte nicht verwendet werden können.
Anfangs verwendete die CAPI.DLL oft einfach die alten DOS-Treiber. Nachteil dieser Verfahrensweise war, dass der CAPI-Treiber vor dem Starten von Windows bereits geladen sein musste und damit wertvollen konventionellen Arbeitsspeicher wegnahm. Da Windows im Protected Mode des Prozessors läuft, musste außerdem für die Zugriffe auf die DOS-CAPI der Prozessor von der CAPI.DLL jedesmal in den Real-Mode um- und wieder zurückgeschalten werden, was sehr zeitintensiv ist. Da ein DOS-CAPI normalerweise nicht darauf vorbereitet war, dass unter Windows ISDN gleichzeitig aus mehreren DOS-Boxen möglich ist, gab es auch dabei Probleme.
Mit der Zeit wurden CAPI-Treiber als sogenannte VxD-Treiber (virtual device driver) entwickelt, die den konventionellen Speicher nicht mehr belasten und auch die anderen Probleme beheben konnten. Bei Verwendung von VxD-Treibern können sowohl Windows, als auch DOS-Programme in der DOS-Box von Windows oder Windows 95 auf die CAPI zugreifen.
Auch für OS/2 gibt es an das Betriebssystem angepaßte CAPI-Treiber (z.B. von AVM oder Teles). Die sind aber seltener zu finden als Windows-Treiber.
Die folgende Abbildung zeigt zusammenfassend verschiedene Varianten für DOS und Windows (3.11 oder 95) im Überblick. Weitere Varianten finden Sie z.B. in der ISDN-Beispielinstallation für Windows 95.
Die Funktionen, die die CAPI.DLL der Anwendung zur Verfügung stellt, sind standardisiert und in der Dokumentation zum CAPI beschrieben. Das heißt aber nicht, dass CAPI.DLLs verschiedener Hersteller austauschbar sind. Wenn es Probleme gibt, kann eine Ursache dafür sein, dass Ihr ISDN-Programm eine falsche CAPI.DLL verwendet. In diesem Fall können Sie versuchen, die CAPI.DLL Ihres Hardwareherstellers in das Programmverzeichnis der ISDN-Software zu kopieren, um sicher zu sein, dass das Programm die richtige DLL verwendet.
Eine Besonderheit ist ein sogenannter distributed CAPI-Treiber (auch virtual Capi). Diese Art Treiber, ermöglicht es, in einem Netzwerk nur eine ISDN-Karte an einem Kommunikationsserver einzusetzen. Alle Arbeitsstationen können diese ISDN-Karte so nutzen, als wäre sie am Arbeitsplatz-PC eingebaut. Das sieht etwas so aus:
Der Treiber (distributed CAPI) am Arbeitsplatz bietet der ISDN-Software die CAPI-Schnittstelle, wie es auch ein CAPI-Treiber für eine lokale ISDN-Karte tun würde. Anstatt die Befehle aber direkt an eine lokale ISDN-Karte weiterzuleiten, werden die Daten über das Netzwerk an den Gegenpart der distributed CAPI am Server weitergeleitet. Erst das Programm am Server leitet die Befehle an die ISDN-Karte weiter.