Freigeben über


Erweiterte Zeilenfunktionen

Erweiterte Leitungsdienste (oder gerätespezifische Leitungsdienste) umfassen alle vom Dienstanbieter definierten Erweiterungen für die API. Die API definiert einen Mechanismus, der es Dienstanbietern ermöglicht, TAPI mithilfe gerätespezifischer Erweiterungen zu erweitern. Die API definiert nur den Erweiterungsmechanismus und bietet auf diese Weise Zugriff auf gerätespezifische Erweiterungen, aber die API definiert nicht deren Verhalten. Das Verhalten wird vollständig vom Dienstanbieter definiert.

TAPI besteht aus Skalar- und Bitflagskonstantendefinitionen, Datenstrukturen, Funktionen und Nachrichten. Es werden Prozeduren definiert, die es einem Anbieter ermöglichen, die meisten dieser Optionen wie folgt zu erweitern.

Für erweiterbare skalare Datenkonstanten kann ein Dienstanbieteranbieter neue Werte in einem angegebenen Bereich definieren. Da die meisten Datenkonstanten DWORDssind, ist der Bereich 0x00000000 bis 0x7FFFFFFF in der Regel für allgemeine zukünftige Erweiterungen reserviert, während 0x80000000 bis 0xFFFFFFFF für anbieterspezifische Erweiterungen verfügbar sind. Es wird davon ausgegangen, dass ein Anbieter Werte definieren würde, die natürliche Erweiterungen der von der API definierten Datentypen sind.

Für erweiterbare Bitflag-Datenkonstanten kann ein Dienstanbieteranbieter neue Werte für angegebene Bits definieren. Da die meisten Bitflagskonstanten DWORDssind, ist in der Regel eine bestimmte Anzahl der unteren Bits für allgemeine Erweiterungen reserviert, während die restlichen oberen Bits für anbieterspezifische Erweiterungen verfügbar sind. Allgemeine Bitflags werden ab Bit null zugewiesen. Anbieterspezifische Erweiterungen sollten ab Bit 31 zugewiesen werden. Dies bietet maximale Flexibilität beim Zuweisen von Bitpositionen zu gängigen Erweiterungen im Vergleich zu anbieterspezifischen Erweiterungen. Von einem Anbieter wird erwartet, dass er neue Werte definiert, bei denen es sich um natürliche Erweiterungen der von der API definierten Bitflags handelt.

Erweiterbare Datenstrukturen verfügen über ein feld mit unterschiedlicher Größe, das für die gerätespezifische Verwendung reserviert ist. Aufgrund der unterschiedlichen Größe entscheidet der Dienstanbieter über die Menge der Informationen und die Interpretation. Von einem Anbieter, der ein gerätespezifisches Feld definiert, wird erwartet, dass er diese natürlichen Erweiterungen der ursprünglichen Datenstruktur vorgibt, die von der API definiert wird.

Zwei Funktionen, lineDevSpecific und lineDevSpecificFeature, und zwei verwandte Nachrichten, LINE_DEVSPECIFIC und LINE_DEVSPECIFICFEATURE, stellen einen anbieterspezifischen Erweiterungsmechanismus bereit. Die lineDevSpecific-Funktion und die zugeordnete LINE_DEVSPECIFIC Nachricht ermöglichen es einer Anwendung, auf gerätespezifische Leitungs-, Adress- oder Anruffunktionen zuzugreifen, die mit den Telefoniediensten Basic oder Ergänzungstelefonie nicht verfügbar sind. Das Parameterprofil der lineDevSpecific-Funktion ist generisch, da von der API nur wenige Interpretationen der Parameter vorgenommen werden. Die Interpretation der Parameter wird vom Dienstanbieter definiert und muss von einer Anwendung verstanden werden, die sie verwendet. Die Parameter werden einfach über TAPI von der Anwendung an den Dienstanbieter übergeben. Eine Anwendung, die auf gerätespezifischen Erweiterungen basiert, funktioniert in der Regel nicht mit anderen Dienstanbietern. Anwendungen, die in die Dienste "Basic" und "Supplementary Telephony" geschrieben wurden, funktionieren jedoch mit dem erweiterten Dienstanbieter.

Zur Vereinfachung wird auch eine speziellere Escapefunktion bereitgestellt. Es ist ähnlich wie lineDevSpecific, platziert jedoch Interpretation für einige der Parameter. Diese speziellere Funktion ist lineDevSpecificFeature, eine gerätespezifische Escapefunktion, die das Senden von Switchfeatures an den Switch ermöglicht. Die Nachricht LINE_DEVSPECIFICFEATURE ist die gerätespezifische Nachricht, die an die Anwendung als Hinweis auf die an den Switch gesendeten Features gesendet wird. Diese Funktion und die zugehörige Nachricht ermöglichen es einer Anwendung, Tastendrücke am Funktionstelefon der Zeile zu emulieren. Da Feature-Telefone und die Bedeutung ihrer Schaltflächen herstellerspezifisch sind, ist der Featureaufruf mit lineDevSpecificFeature auch herstellerspezifisch.

Wie bereits erwähnt, gibt es keine zentrale Registrierung für Hersteller-IDs. Stattdessen wird ein Generator für eindeutige Bezeichner (EXTIDGEN) zur Verfügung gestellt.