Telefonnummern findet man praktisch in jeder Datenbank. Lästig und fehleranfällig ist aber – gerade bei langen internationalen Nummern – das Ablesen und Eintippen ins Telefon, wenn etwa ein Kunde angerufen werden soll, der noch nicht in den Nummernspeicher des Telefons aufgenommen wurde. Unter der Voraussetzung, dass eine Telefonanlage vorhanden ist, die die so genannte TAPI-Schnittstelle unterstützt, lässt sich mit nur wenigen Zeilen VBA-Code ein Verbindungsaufbau aus Access heraus auf Knopfdruck realisieren.
TAPI – Die Voraussetzung
Windows offeriert eine Systemschnittstelle, die sich TAPI nennt: Telephony Application Programming Interfaces. Das ist eine Zwischenschicht, die Anwendungen mit Treibern eines Telefondienstanbieters verbindet. Solche Treiber werden mit TK-Anlagen ausgeliefert und bestehen selbst oft aus einem umfangreichen Set von Konfigurationsanwendungen.
Sie sind manchmal aber auch recht spartanisch ausgelegt, wie etwa der TAPI-Dienst der AVM Fritz!Box, von der später noch die Rede sein wird. Diese Treiber kommunizieren unmittelbar mit der Telefonanlage – sei es über ein serielles Kabel, einen USB-Anschluss oder das Netzwerk.
Diese TAPI Service Provider (TSP) genannten Treiber – normalerweise DLLs – stellen zwar einen Satz genormter Funktionen zur Verfügung, mit denen man sich als Programmierer indessen aber genauso wenig beschäftigen muss wie zum Beispiel mit Grafikkartentreibern. Denn diese Arbeit nimmt Ihnen die Windows-TAPI-Schnittstelle ab, die sich ihrerseits per VBA über zwei Methoden ansprechen lässt: Entweder über API-Aufrufe, also Deklarationen auf die tapi32.dll, oder über einen Verweis auf die Microsoft Telephony 3.0 Library. Wichtig ist zunächst nur dies: Sollten Sie oder Ihr Kunde über eine TK-Anlage verfügen, die einen TAPI-Treiber besitzt, dann steht einem Verbindungsaufbau zwischen Access und der Anlage nichts im Wege.
Ob ein solcher Treiber installiert ist, lässt sich in der Systemsteuerung mit dem Applet „Telefon- und Modemoptionen“ ermitteln. Unter dem Reiter Erweitert sind dort alle installierten TSPs aufgelistet, wie in Bild 1 zu erkennen ist.
Bild 1: TAPI-Telefondienstanbieter in der Windows Systemsteuerung
Wenn Sie einen Eintrag der Liste markieren, dann wird unter Umständen die Schaltfläche Konfigurieren… aktiv, mit der Sie Einstellungen für die Kommunikation zwischen Anlage und TAPI vornehmen können.
Bei ausgewachsenen Telefonanlagen gleicht die Konfigurationsseite, die der Hersteller hier bereitstellt, oft selbst einer umfangreichen Anwendung, die ohne Lektüre von Unterlagen oder der Online-Hilfe kaum zu durchschauen ist. Dies soll an dieser Stelle nur deshalb erwähnt werden, weil eine korrekte Einrichtung der Anlage erst die Voraussetzung dafür ist, dass unsere Beispieldatenbank dann auch so reibungslos läuft, wie sie sollte.
Access-Beispiel: Adressformular
In der Beispieldatenbank Waehlenmitaccess.mdb öffnet sich beim Start ein Mini-Adressformular, dargestellt in Bild 2. Neben den Anschriftdaten enthält es drei Felder zur Eingabe von Telefonnummern. Dahinter sind jeweils Schaltflächen mit Telefonsymbolen angebracht. Wenn alles gut geht, dann verbindet ein Klick auf eine der Schaltflächen Ihr Telefon mit der Nummer des Teilnehmers.
Bild 2: Beispielformular mit über Button wählbaren Telefonnummern
Dabei kommt erstaunlicherweise nur eine einzige API-Funktion zum Einsatz, die Sie im Modul mdlTAPICALL der Datenbank finden. Erstaunlich deshalb, weil TAPI eigentlich Hunderte von Funktionen und Objekten enthält.
Tatsächlich handelt es sich in diesem Beitrag nur um die Beschreibung einer sehr rudimentären Telefonieschnittstelle, die sich die in Windows gut versteckte Wählhilfe zunutze macht. Die API-Funktion tapiRequestMakeCall ruft nämlich genau diese Wählhilfe auf, weil sie in Windows als Standardanwendung für TAPI eingestellt ist. Sie muss, damit das Wählen über das Formular funktioniert, zusätzlich zur oben erwähnten Einrichtung des TAPI-Treibers erst konfiguriert werden.
Wählhilfe
Wenn Sie unter Windows XP arbeiten, dann werden Sie im Startmenü vergeblich nach der Wählhilfe suchen. Windows XP legt bei Installation keine Verknüpfung zu dieser Anwendung an – aus welchen Gründen auch immer.
Sie können sie einfach aufrufen, indem Sie per Startmenü/Ausführen den Dialog zum Eingeben von Befehlen öffnen und über das dortige Eingabefeld die Anwendung dialer.exe starten. Die Wählhilfe ist eine komplette kleine Telefon-Anwendung mit Nummernliste, Protokollierung und Konferenzraum, die nicht nur wählen, sondern auch Anrufe entgegennehmen kann und sogar Bildschirmtelefonie ermöglicht. Das alles ist an dieser Stelle aber nicht interessant, denn wichtig sind für unseren Zweck lediglich die Einstellungen der Wählhilfe, die beim Aufruf der API-Funktion zum Tragen kommen.
Wenn Sie den Menübefehl Bearbeiten/Optionen… ausführen, sollte der Dialog aus Bild 3 erscheinen.
Bild 3: Erforderliche Einstellungen der Wählhilfe, Teil 1
Aktivieren Sie hier in der Optionsgruppe grundsätzlich den Eintrag Telefon – das bedeutet telefonieren über TAPI. Im Kombinationsfeld für Telefonanrufe wählen Sie den TAPI-Provider aus, den Sie für Ihre Telefonanlage installiert haben. Manchmal stehen hier mehrere gleichlautende Einträge zur Auswahl, das sind dann im Allgemeinen die unterschiedlichen ISDN-Kanäle, die über den Provider anwählbar sind.
Bild 4 zeigt die zweite Registerkarte des Dialogs.
Bild 4: Einstellungen der Wählhilfe, Teil 2
Hier ist nur wichtig, dass Sie für Leitung den Eintrag Telefonanrufe auswählen. Die anderen Einstellmöglichkeiten beziehen sich nur auf den Fall, dass Sie über die Soundkarte des Rechners und ein Headset telefonieren oder gar über Internet-Videotelefonie eine Webcam einsetzen möchten.
Nachdem Sie die Einstellungen übernommen haben, können Sie die Wählhilfe wieder schließen.
Nun wird es spannend: Geben Sie in das Beispielformular eine Telefonnummer ein und klicken Sie auf die nebenstehende Schaltfläche. Nun sollte sich abermals die Wählhilfe öffnen, aber in anderem Gewand. Auf dem Bildschirm blenden sich links oben Dialogflächen ein, die im Vordergrund bleiben und sich etwa wie in Bild 5 präsentieren.
Bild 5: Ansicht der Wählhilfe bei Anruf aus Access über tapiRequestMakeCall
Während der obere Teil der Dialoge unwichtig ist, weil Sie ja nicht über die Soundkarte telefonieren wollen, gibt der untere Teil Informationen über die Verbindung wieder. Bild 5 zeigt, dass die Nummer (999) 128886 gewählt wurde, und zwar über die Anwendung AiU Demodatenbank, und dass die Verbindung sich im Status des Anwählens befindet („Gegenseite wird gesucht…“).
Wenn der Teilnehmer abnimmt, ändert sich der Status in „Online“. Gleichzeitig sollte Ihre eingerichtete Nebenstelle klingeln, mit der Sie dann das Gespräch mit Ihrem Gegenüber führen können.
Wenn der Gesprächspartner wieder auflegt, steht dort „Anruf beendet“. Die Verbindung können Sie zu jedem Zeitpunkt über die Schaltfläche Trennen abbrechen. Nach getätigtem Anruf schließen Sie die Dialoge mit der Schließen-Schaltfläche.
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
den kompletten Artikel im PDF-Format mit Beispieldatenbank
diesen und alle anderen Artikel mit dem Jahresabo