JTAPI-TAPI-Bridge Implementierung

In den letzten Wochen habe ich die Version 1.1 implementiert. Die Spezifikation ist sehr ausführlich und enthält für die einzelnen Interfaces sehr detailierte Beschreibungen der erwarteten Funktionalität. Für viele Methoden gibt es spezielle Anweisungen, in welchem Zustand sich die betroffenen Objekte vor und nach dem Methodenaufruf befinden müssen. Auch sind die erwarteten bzw. zu versendenden Events genau beschrieben.

Der prinzipielle Aufbau meiner JTAPI-TAPI-Bridge ist in der folgenden Grafik dargestellt.

Ausgangspunkt ist die derzeit aktuelle Version 1.3 des JTAPI. Ziel ist das Microsoft TAPI in der Version 2.2, der aktuellen Version für C und C++ Programme. Die Verwendung von TAPI 3.0, der Version, die vollständig als COM-Schnittstelle vorliegt, ist derzeit von mir nicht vorgesehen. Eventuell ist es aber notwendig, diese später zu verwenden, um bestimmte Funktionalitäten bereitzustellen, die TAPI in der Version 2.2 nicht bietet. So zerfällt die Implementierung in drei Teile. Der erste Teil sind die Java-Klassen, welche die geforderte Funktionalität der Schnittstellen bereitstellen. Im zweiten Teil ist der betriebssystemspezifische Teil enthalten. Dieser wird in C++ geschrieben und als Windows-DLL bereitgestellt. Ein kleines Testprogramm bildet den dritten Teil der Implementierung.

Zwei Randbedingungen habe ich mir für die Implementierung gestellt:

So ist auch eine einfache Portierung auf andere Betriebssysteme denkbar. Mir schwebt immer noch eine Implementierung für Linux vor, aber dafür fehlt derzeit noch das Wissen und die Zeit.

Für den Übergang von Java zu C++ verwende ich das Java Native Interface (JNI). JNI ist zwar etwas umständlich zu handhaben, stellt mir aber alle benötigten Funktionalitäten plattformunabhängig zur Verfügung.

In der Spezifikation zu JTAPI ist eine Mindestanforderung an eine Implementierung vorgegeben. Diese ist jetzt vollständig implementiert. Die Version 1.1 hat jetzt einen Stand erreicht, den ich mit gutem Gewissen bereitstellen kann. Zu finden ist diese Version auf den nächsten Seiten.

Auch für meine Implementierung gibt es Klassendiagramme, die geladen werden können.

Hier nun die Klassendiagramme als Power-Point-Dateien:

Datei

Größe

Inhalt

de_longsoft_telephony.ppt 42 kByte Klassendiagramm de.longsoft.telephony
de_longsoft_telephony_capabilities.ppt 29 kByte Klassendiagramm de.longsoft.telephony.capabilities


© Ralf Lange, longsoft Dresden
Kommentare und Anregungen: Webmaster Formular- letzte Änderung: 2007-02-28
Java und alle Java basierten Schutznamen und Logos sind Schutzmarken oder registrierte Schutzmarken von Sun Microsystems, Inc. in den USA und in anderen Ländern. Alle anderen erwähnten Firmen- und Produktnamen sind Schutzmarken oder registrierte Schutzmarken des jeweiligen Herstellers.