Die in CONZEPT 16 integrierte TAPI-Schnittstelle ermöglicht die Verwendung computerbasierter Telefonie-Funktionen in CONZEPT 16-Anwendungen.
Voraussetzung für die Verwendung der TAPI ist ein sogenannter TSP (Telephony Service Provider). Dieser Treiber regelt die Steuerung und die Kommunikation mit der eigentlichen Telefon-Hardware, wie z.B. einer Telefonanlage.
Einleitung
Die TAPI-Schnittstelle bietet neben dem Wählen einer Nummer durch TapiDial()
auch die Möglichkeit eingehende Aufrufe zu überwachen. Letzteres geschieht mit dem Befehl TapiListen()
.
Als erstes Argument muss dem Befehl ein Tapi-Gerät übergeben werden. TapiOpen()
stellt eine entsprechende Liste bereit. Als weiteres Argument ist ein Deskriptor auf ein Frame-Objekt notwendig. Das EvtTapi-Ereignis des Frame wird dann aufgerufen, wenn Anrufe auf dem überwachten TAPI-Gerät eingehen.
Wird die EvtTapi-Funktion trotz aktivierter Überwachung nicht aufgerufen, dann liegt das möglicherweise daran, dass bereits eine Windows-Anwendung läuft, die ebenfalls eine Überwachung desselben TAPI-Gerätes vornimmt.
Monitoring
Das oben genannte Szenario tritt ein, wenn die Anwendung Besitzrechte für die Überwachung anfordert. Das ist bei TapiListen()
standardmäßig der Fall. Dadurch können alle Funktionen der TAPI-Schnittstelle verwendet werden.
Ist dies jedoch nicht notwendig, dann kann mit der Option _TapiListenMonitor
ein Monitoring für das TAPI-Gerät erreicht werden, ohne dass Besitzrechte angefordert werden. Die Anwendung erhält wie gewohnt alle Ereignisse, kann jedoch bestimmte Funktionen nicht durchführen:
TapiDevice->spTapiFlags # _TapiListenMonitor;
TapiDevice->TapiListen(true,FrameHandle);
Weiterführende Informationen zur Verwendung der TAPI-Schnittstelle sind in der CONZEPT 16-Dokumentation enthalten.
Eine Antwort
Die Herausforderung bei TapiListen() ist, keine Puffer, Dateizeiger usw. des eigentlich gerade laufenden Vorgangs zu verstellen.
(wenn man z.B. Infos zum Anrufer anzeigen will)