擴充行函數
擴充的線路服務 (或裝置特定線路服務,) 包含 API 的所有服務提供者定義延伸模組。 API 會定義一種機制,讓服務提供者廠商能夠使用裝置特定的擴充功能來擴充 TAPI。 API 只會定義擴充機制,因此可提供裝置特定延伸模組的存取權,但 API 不會定義其行為。 行為完全由服務提供者定義。
TAPI 包含純量和位旗標常數定義、資料結構、函式和訊息。 定義程式可讓廠商擴充大部分的程式,如下所示。
針對可延伸的純量資料常數,服務提供者廠商可以在指定的範圍內定義新的值。 由於大部分的資料常數都是 DWORD,通常0x00000000到 0x7FFFFFFF 的範圍會保留給常見的未來延伸模組,而0x80000000透過 0xFFFFFFFF 可供廠商特定的擴充功能使用。 假設廠商會定義值,這些值是 API 所定義之資料類型的自然延伸。
針對可延伸的位旗標資料常數,服務提供者廠商可以定義指定位的新值。 由於大部分的位旗標常數都是 DWORD,因此通常特定數目的較低位會保留給一般擴充功能,而其餘的上限位則可供廠商特定的擴充功能使用。 一般位旗標會從位零開始指派;廠商特定的擴充功能應該從位 31 向下指派。 這可提供將位位置指派給常見延伸模組與廠商特定延伸模組的最大彈性。 廠商預期會定義新的值,這些值是 API 所定義之位旗標的自然延伸。
可延伸資料結構具有保留給裝置特定用途的可變大小欄位。 服務提供者會決定資訊量和解譯的大小。 定義裝置特定欄位的廠商預期會讓 API 所定義之原始資料結構的這些自然延伸。
兩個函式 lineDevSpecific 和 lineDevSpecificFeature,以及兩個相關訊息 ,LINE_DEVSPECIFIC 和 LINE_DEVSPECIFICFEATURE提供廠商特定的擴充機制。 lineDevSpecific函式和相關聯的LINE_DEVSPECIFIC訊息可讓應用程式存取基本或增補電話語音無法使用的裝置特定線路、位址或通話功能。 lineDevSpecific函式的參數設定檔是泛型,因此 API 會對參數進行少量解譯。 參數的解譯是由服務提供者所定義,而且必須由使用這些參數的應用程式瞭解。 參數只會透過 TAPI 從應用程式傳遞至服務提供者。 依賴裝置特定擴充功能的應用程式通常無法與其他服務提供者搭配使用;不過,寫入基本和增補電話語音服務的應用程式將會與延伸服務提供者搭配使用。
為了方便起見,也會提供更特殊的逸出函式。 這類似于 lineDevSpecific,但會將解譯放在某些參數上。 這個更特製化的函式是 lineDevSpecificFeature,這是裝置特定的逸出函式,可允許將交換器功能傳送至交換器。 訊息 LINE_DEVSPECIFICFEATURE 是傳送至應用程式的裝置特定訊息,表示傳送至參數的功能。 此函式及其相關聯的訊息可讓應用程式模擬線路功能電話上的按鈕按下。 由於功能手機及其按鈕的意義是廠商特定的,因此使用 lineDevSpecificFeature 的功能調用也是廠商特定的。
如先前所述,沒有製造商識別碼的中央登錄。 相反地,會提供唯一識別碼產生器 (EXTIDGEN) 。