TSPI_lineConditionalMediaDetection函式 (tspi.h)
每當用戶端應用程式使用 LINEMAPPER 作為 lineOpen 函數調用中的 dwDeviceID 時,TAPI 就會叫用TSPI_lineConditionalMediaDetection函式,要求掃描該行以支援所需的媒體類型和呼叫參數。 TAPI 會根據所需媒體類型的聯集以及目前在行上監視的其他媒體類型進行掃描,讓服務提供者有機會指出它是否無法同時監視所有要求的媒體類型。 如果服務提供者可以監視指定的媒體類型集,並支援 lpCallParams 中指出的功能,則會以成功指示回復。 它會讓行的作用中媒體監視模式保持不變。
語法
LONG TSPIAPI TSPI_lineConditionalMediaDetection(
HDRVLINE hdLine,
DWORD dwMediaModes,
LPLINECALLPARAMS const lpCallParams
);
參數
hdLine
服務提供者要設定媒體監視和參數功能的行句柄。
dwMediaModes
目前對呼叫應用程式感興趣的媒體類型 () 。 此參數使用其中一個 LINEMEDIAMODE_常數。
lpCallParams
LINECALLPARAMS 類型的結構的指標。 它會描述線路裝置應該可以提供的呼叫參數。 針對此測試的目的, lpCallParams 的唯一相關欄位如下:
dwBearerMode
dwMinRate
dwMaxRate
dwMediaMode
dwCallParamFlags
dwAddressMode
如果 dwAddressMode 是LINEADDRESSMODE_ADDRESSID,則行上的任何位址都是可接受的。 如果 dwAddressMode 是LINEADDRESSMODE_DIALABLEADDR,表示搜尋特定原始位址 (電話號碼) ,或如果是提供者特定的延伸模組, 則 dwOrigAddressSize/Offset 及其所參考變數部分也相關。 如果 dwAddressMode 是提供者特定的延伸模組,則其他資訊可以包含在 dwDeviceSpecific 可變大小字段。 所有其他欄位都與函式無關。
傳回值
如果函式成功或發生錯誤,則傳回零。 可能的傳回值如下所示:
LINEERR_INVALLINEHANDLE、LINEERR_OPERATIONFAILED、LINEERR_NODRIVER、LINEERR_RESOURCEUNAVAIL、LINEERR_NOMEM、LINEERR_INVALMEDIAMODE LINEERR_OPERATIONUNAVAIL。
備註
TAPI lineOpen 函式,指定 LINEMAPPER 的裝置識別碼通常會導致呼叫此程式,讓多行裝置搜捕適當的行,可能也會開啟尚未開啟的行。 成功結果表示該行適用於呼叫應用程式的需求。
如果將相同的位值傳遞至TSPI_lineMakeCall函式,TSPI_lineConditionalMediaDetection函式也會傳回成功。
如果已設定 SECURE、ORIGOFFHOOK 和 DESTOFFHOOK 位,且 dwAddressMode 參數是LINEADDRESSMODE_ADDRESSID,則函式會在行上的一或多個位址上成功時傳回成功。
如果已設定 SECURE、ORIGOFFHOOK 和 DESTOFFHOOK 位,且 dwAddressMode 參數是LINEADDRESSMODE_DIALABLEADDR,如果函式可以在 dwOrigAddress 參數所識別的位址上成功,則函式會傳回成功。
例如,服務提供者會傳回錯誤 (,LINEERR_RESOURCEUNAVAIL) 如果呼叫此函式时,如果呼叫此函式時,無法在指定的線路裝置上 (新的呼叫,如果傳回LINEERR_CALLUNAVAIL或LINEERR_RESOURCEUNAVAIL應該在開啟行之後立即叫 TSPI_lineMakeCall用) 。
TAPI 層級沒有直接對應的函式。 此程式會對應至使用裝置標識碼 LINEMAPPER 呼叫時 ,lineOpen 程式所隱含每個個別行的測試。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | tspi.h |