TSPI 版本控制
經過一段時間後,可能會產生不同版本的 TAPI、應用程式和服務提供者。 這些新版本可以進行新的定義,例如新功能、資料結構中的新成員,以及新的位欄位。 因此,需要版本號碼來指出如何解譯各種資料結構。
為了允許不同應用程式版本、TAPI 本身的版本,以及不同廠商的服務提供者版本的最佳互通性,Microsoft Telephony 為應用程式提供簡單的版本交涉機制。 TAPI 和每一行裝置的電話語音服務提供者必須同意兩個不同的版本。 第一個是基本和增補電話語音 SPI 的版本號碼,稱為 TSPI 介面版本。 另一個是針對提供者特定的擴充功能,如果有的話,而且稱為 擴充功能版本。 TSPI 基本和增補功能所使用的資料結構和資料類型的格式是由 TSPI 版本所定義,而延伸模組版本則決定廠商特定延伸模組所定義的資料結構格式。
這兩種類型的版本交涉是由兩個不同的程式處理: TSPI_lineNegotiateTSPIVersion 用來交涉 TSPI 介面版本,而 TSPI_lineNegotiateExtVersion 用來交涉延伸模組版本。 如果不想使用擴充功能,則可以略過延伸模組版本交涉。 如果在交涉重迭期間輸入這些範圍,服務提供者必須在範圍重迭部分內傳回值,作為交涉的結果。 通常,這應該是最高的可能值。 如果範圍不重迭,則兩方不相容,而且函式會傳回錯誤。
交涉的結果只是表示服務提供者願意在特定版本號碼上運作,但不要認可服務提供者來執行此動作。 例如,TAPI 可以在交涉可能的版本之後重新交涉,以判斷理想的版本。 只有在使用 TSPI_lineOpen 開啟行並存留到裝置關閉之前,才會認可 TSPI 介面版本。 呼叫 TSPI_lineSelectExtVersion 函式時,擴充功能版本會認可,直到選取延伸模組版本零取消為止。
延伸模組版本選取可能會多次發生,包括延伸模組版本生效時。 因為服務提供者已認可至延伸模組版本,所以其支援版本的範圍會縮小到該擴充版本。 例如,假設服務提供者通常與延伸模組 1.0 到 5.5 版相容。 如果 3.0 版生效,而呼叫端嘗試交涉 1.0 到 5.5 範圍內的版本,交涉會傳回 3.0。
由於 TAPI 會交涉版本,因此您可以將服務提供者升級至新版本的介面,而不需要同時升級 TAPI。 同樣地,TAPI 也可以升級,但仍使用您較舊的服務提供者。