TSPI_lineSetTerminal函式 (tspi.h)

TSPI_lineSetTerminal函式可讓 TAPI 指定要路由傳送與指定行、位址或呼叫相關的終端機資訊。 此作業可在呼叫進行時使用,以允許視需要將事件路由傳送至不同的裝置。

語法

LONG TSPIAPI TSPI_lineSetTerminal(
  DRV_REQUESTID dwRequestID,
  HDRVLINE      hdLine,
  DWORD         dwAddressID,
  HDRVCALL      hdCall,
  DWORD         dwSelect,
  DWORD         dwTerminalModes,
  DWORD         dwTerminalID,
  DWORD         bEnable
);

參數

dwRequestID

異步要求的標識碼。

hdLine

線條的句柄。

dwAddressID

指定開啟行裝置上的位址。 位址標識符會永久與地址相關聯;標識碼在操作系統升級期間會維持不變。 呼叫此函式時,TAPI 不會驗證此參數。

hdCall

呼叫的句柄。 如果 dwSelect 是LINECALLSELECT_CALL) ,則呼叫狀態可以是任何狀態 (。

dwSelect

指定是否要求終端機設定的行、位址,或只要求指定的呼叫。 如果指定行或位址,事件會套用至該行或位址本身,或做為行或位址上所有新呼叫的預設初始設定。 此參數使用其中一個 LINECALLSELECT_常數

dwTerminalModes

類別 () 要路由傳送至指定終端機的低階事件。 針對此參數使用其中一個 LINETERMMODE_常數

dwTerminalID

要路由傳送指定事件之終端機裝置的裝置標識碼。 終端機標識碼是介於 0 到 dwNumTerminals 減一之間的小整數,其中 dwNumTerminals 和終端機模式每個終端機都能夠處理, 由 LINEDEVCAPS 中的服務提供者指出。

注意 這些終端機標識碼與其他裝置標識碼沒有關聯,而且由服務提供者透過裝置功能定義。 呼叫此函式時,TAPI 不會驗證此參數。
 

bEnable

如果 TRUE,dwTerminalID 是有效的,而且指定的事件類別會路由至該終端機或從該終端機路由傳送。 如果 為 FALSE,這些事件不會路由傳送至 dwTerminalID 或從中路由傳送。 呼叫此函式時,TAPI 不會驗證此參數。

傳回值

會傳回 dwRequestID,如果發生錯誤,則傳回錯誤號碼。 如果函式成功,則對應ASYNC_COMPLETIONlResult 實際參數為零,如果發生錯誤,則為錯誤號碼。 可能的傳回值如下所示:

LINEERR_INVALLINEHANDLE、LINEERR_INVALTERMINALID、LINEERR_INVALADDRESSID、LINEERR_RESOURCEUNAVAIL、LINEERR_INVALCALLHANDLE、LINEERR_NOMEM、LINEERR_INVALCALLSELECT、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALTERMINALMODE、LINEERR_OPERATIONFAILED。

備註

如果因為資源過度認可而無法完成作業,或因為硬體限制或服務提供者/設備驅動器限制而設定太多終端機,則服務提供者會傳回LINEERR_RESOURCEUNAVAIL。

TAPI 可以使用這項作業,將特定類別的低階線路事件路由至指定的終端機裝置,或完全隱藏這些事件的路由。 例如,語音可以路由傳送至個別的音訊 I/O 裝置 (頭戴式裝置) ,也可以路由傳送至本機手機裝置,也可以完全隱藏按鈕事件和響鈴事件。

呼叫進度音調和/或訊息會路由傳送到與媒體相同的位置。 例如,如果音訊號要前往手機,那麼忙碌訊號會 (類比) 或 Q.931 訊息,指出忙碌 (數位) 。

服務提供者必須判斷 dwSelectdwTerminalModes 的組合是否合法。

即使指定線路裝置上的呼叫作用中,隨時都可以呼叫這項作業。 例如,這可讓使用者從使用本機手機設定切換到另一個音訊 I/O 裝置。

您可以多次呼叫此函式,同時將相同的事件路由傳送至多個終端機。 若要將事件重新路由傳送至不同的終端機,TAPI 建議應用程式先停用路由至現有的終端機,然後再將事件路由傳送至新的終端機。 不過,服務提供者應盡最大努力以任何順序容納應用程式的要求。

服務提供者會指派終端機標識碼, 而LINEDEVCAPS 表示服務提供者可用的終端機標識碼。 不支援這種事件路由的服務提供者表示它們沒有終端裝置 (LINEDEVCAPS 中的 dwNumTerminals 設定為零) 。

行或位址上的LineSetTerminal會影響該行或位址上所有現有的呼叫,但不會影響其他位址的呼叫。 它也會設定該行或位址上未來呼叫的預設值。 任何一次有多個已連線通話的線路或地址,對於每個通話都可以有不同的路由。

當這些事件目前未路由傳送到該終端機或從該終端機路由傳送至該終端機時,只要函式成功之後,指定的事件就不會路由傳送到該終端機或從該終端機路由傳送至終端機。

規格需求

需求
目標平台 Windows
標頭 tspi.h

另請參閱

ASYNC_COMPLETION

LINECALLSELECT_常數

LINETERMMODE_常數