TSPI-Versionierung
Im Laufe der Zeit können verschiedene Versionen von TAPI, Anwendungen und Dienstanbietern erstellt werden. Diese neuen Versionen können neue Definitionen erstellen, z. B. für neue Features, neue Member in Datenstrukturen und neue Bitfelder. Versionsnummern sind daher erforderlich, um anzugeben, wie verschiedene Datenstrukturen interpretiert werden sollen.
Um eine optimale Interoperabilität verschiedener Versionen von Anwendungen, Versionen von TAPI selbst und Versionen von Dienstanbietern durch verschiedene Anbieter zu ermöglichen, bietet Microsoft Telefonie einen einfachen Mechanismus zur Versionsaushandlung für Anwendungen. Es gibt zwei verschiedene Versionen, die von TAPI und dem Telefoniedienstanbieter für jedes Liniengerät vereinbart werden müssen. Die erste ist die Versionsnummer für die Spi für die einfache und ergänzende Telefonie, die als TSPI-Schnittstellenversion bezeichnet wird. Das andere gilt für anbieterspezifische Erweiterungen, sofern vorhanden, und wird als Erweiterungsversion bezeichnet. Das Format der Datenstrukturen und Datentypen, die von den Basic- und Supplementary-Features von TSPI verwendet werden, wird durch die TSPI-Version definiert, während die Erweiterungsversion das Format von Datenstrukturen bestimmt, die von den anbieterspezifischen Erweiterungen definiert werden.
Diese beiden Arten der Versionsaushandlung werden von zwei verschiedenen Prozeduren verarbeitet: TSPI _ lineNegotiateTSPIVersion wird verwendet, um die TSPI-Schnittstellenversion auszuhandeln, und TSPI _ lineNegotiateExtVersion wird verwendet, um die Erweiterungsversion auszuhandeln. Die Erweiterungsversionsaushandlung kann übersprungen werden, wenn Erweiterungen nicht gewünscht sind. Wenn sich diese Bereichseingaben während der Aushandlung überschneiden, muss der Dienstanbieter einen Wert innerhalb des überlappenden Teils des Bereichs als Ergebnis der Aushandlung zurückgeben. In der Regel sollte dies der höchstmögliche Wert sein. Wenn sich die Bereiche nicht überschneiden, sind die beiden Parteien inkompatibel, und die Funktion gibt einen Fehler zurück.
Die Ergebnisse einer Aushandlung deuten einfach darauf hin, dass der Dienstanbieter bereit ist, mit einer bestimmten Versionsnummer zu arbeiten, den Dienstanbieter jedoch nicht dazu zu committen. Beispielsweise kann TAPI neu aushandeln, um eine ideale Version zu bestimmen, nachdem eine mögliche Version ausgehandelt wurde. Für die TSPI-Schnittstellenversion wird nur ein Commit ausgeführt, wenn eine Zeile mit tspi _ lineOpen geöffnet wird und bis zum Schließen des Geräts überdauert wird. Für die Erweiterungsversion wird ein Commit ausgeführt, wenn die _ TSPI-Funktion lineSelectExtVersion aufgerufen wird, und bleibt erhalten, bis die Auswahl durch Auswahl der Erweiterungsversion 0 (null) abgebrochen wird.
Die Auswahl der Erweiterungsversion kann mehrmals erfolgen, auch wenn eine Erweiterungsversion wirksam ist. Da für den Dienstanbieter ein Commit auf die Erweiterungsversion ausgeführt wird, beschränkt sich der Bereich der unterstützten Versionen auf genau diese Erweiterungsversion. Betrachten Sie beispielsweise einen Dienstanbieter, der normalerweise mit den Erweiterungsversionen 1.0 bis 5.5 kompatibel ist. Wenn Version 3.0 in Kraft ist, während ein Aufrufer versucht, eine Version im Bereich von 1.0 bis 5.5 auszuhandeln, gibt die Aushandlung 3.0 zurück.
Da TAPI die Version aushandelt, können Sie ein Upgrade eines Dienstanbieters auf neue Versionen der Schnittstelle durchführen, ohne dass auch TAPI aktualisiert werden muss. Auf ähnliche Weise kann TAPI aktualisiert werden, aber trotzdem Ihren älteren Dienstanbieter verwenden.