TSPI-Versionsverwaltung
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 Versionsverhandlungsmechanismus für Anwendungen. Es gibt zwei verschiedene Versionen, die von TAPI und dem Telefoniedienstanbieter für jedes Leitungsgerät vereinbart werden müssen. Die erste ist die Versionsnummer für die Standard- und Ergänzungstelefonie SPI, die als TSPI-Schnittstellenversion bezeichnet wird. Die andere ist für anbieterspezifische Erweiterungen, falls vorhanden, und wird als Erweiterungsversion bezeichnet. Das Format der Datenstrukturen und Datentypen, die von den Basic- und Ergänzungsfeatures von TSPI verwendet werden, wird von der TSPI-Version definiert, während die Erweiterungsversion das Format der Datenstrukturen bestimmt, die von den anbieterspezifischen Erweiterungen definiert werden.
Diese beiden Arten der Versionsaushandlung werden von zwei verschiedenen Verfahren behandelt: TSPI_lineNegotiateTSPIVersion wird verwendet, um die TSPI-Schnittstellenversion auszuhandeln, und TSPI_lineNegotiateExtVersion wird verwendet, um die Erweiterungsversion auszuhandeln. Die Aushandlung der Erweiterungsversion kann übersprungen werden, wenn Erweiterungen nicht gewünscht werden. Wenn sich diese Bereiche während der Aushandlung überschneiden, muss der Dienstanbieter als Ergebnis der Aushandlung einen Wert innerhalb des überlappenden Teils des Bereichs zurückgeben. In der Regel sollte dies der höchstmögliche Wert sein. Wenn sich die Bereiche nicht überlappen, sind die beiden Parteien inkompatibel, und die Funktion gibt einen Fehler zurück.
Die Ergebnisse einer Verhandlung zeigen einfach, dass der Dienstanbieter bereit ist, mit einer bestimmten Versionsnummer zu arbeiten, aber nicht den Dienstanbieter dazu verpflichten. Beispielsweise kann TAPI neu verhandeln, um eine ideale Version zu ermitteln, nachdem eine mögliche Version ausgehandelt wurde. Die TSPI-Schnittstellenversion wird nur festgelegt, wenn eine Zeile mit TSPI_lineOpen geöffnet wird und bis zum Schließen des Geräts besteht. Die Erweiterungsversion wird committet, wenn die TSPI_lineSelectExtVersion-Funktion aufgerufen wird, und bleibt erhalten, bis die Auswahl durch Auswählen der Erweiterungsversion 0 abgebrochen wird.
Die Auswahl der Erweiterungsversion kann häufig erfolgen, auch wenn eine Erweiterungsversion in Kraft ist. Da der Dienstanbieter auf die Erweiterungsversion festgelegt ist, 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 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 TAPI auch aktualisiert werden muss. Ebenso kann TAPI aktualisiert werden, aber dennoch Ihren älteren Dienstanbieter verwenden.