共用方式為


lineForwardW 函式 (tapi.h)

lineForward 函式會根據指定的轉寄指示,轉送指定行上指定位址的呼叫。 當原始位址 (dwAddressID) 轉送時,該位址的指定來電會由 參數轉移至其他號碼。 此函式提供正向和不要打擾功能的組合。 此函式也可以取消目前生效的轉送。

語法

LONG lineForwardW(
  HLINE                   hLine,
  DWORD                   bAllAddresses,
  DWORD                   dwAddressID,
  LPLINEFORWARDLIST const lpForwardList,
  DWORD                   dwNumRingsNoAnswer,
  LPHCALL                 lphConsultCall,
  LPLINECALLPARAMS const  lpCallParams
);

參數

hLine

線路裝置的句柄。

bAllAddresses

指定行上的所有原始位址,或只指定位址是要轉送。 如果 TRUE,則會轉送該行上的所有位址 ,並忽略 dwAddressID;如果 FALSE,則只會轉送指定為 dwAddressID 的位址。

dwAddressID

要轉送來電之指定行上的位址。 如果 bAllAddresses TRUE,則會忽略此參數。

地址標識碼與位址永久相關聯;標識碼在操作系統升級之間維持不變。

lpForwardList

描述特定轉送指示之類型 LINEFORWARDLIST類型之可變大小的數據結構的指標。

dwNumRingsNoAnswer

通話前的響鈴數目會被視為「沒有答案」。如果 dwNumRingsNoAnswer 超出範圍,則實際值會設定為允許範圍內最接近的值。

lphConsultCall

HCALL 位置的指標。 在某些電話語音環境中,這個位置會載入一個諮詢電話的句柄,該電話是用來諮詢要轉接的當事人,而應用程式會成為此通話的初始唯一擁有者。 即使在呼叫轉接不需要諮詢電話的環境中,此指標也必須有效。 如果未建立諮詢電話,此句柄會設定為 NULL

lpCallParams

LINECALLPARAMS 類型的結構指標 。 除非 lineForward 需要建立轉送目的地的呼叫,否則會忽略此指標(而且會傳回 lphConsultCall 的呼叫,在此情況下,lpCallParams 為選擇性)。 如果 NULL,則會使用預設呼叫參數。 否則,會使用指定的呼叫參數來建立 hConsultCall

傳回值

如果函式是以異步方式完成,則傳回正要求標識碼,如果發生錯誤,則傳回負錯誤號碼。 如果函式成功,則對應 LINE_REPLY 訊息的 dwParam2 參數為零,如果發生錯誤,則為負錯誤號碼。 可能的傳回值為:

LINEERR_INVALLINEHANDLE、LINEERR_NOMEM、LINEERR_INVALADDRESSID、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALADDRESS、LINEERR_OPERATIONFAILED、LINEERR_INVALCOUNTRYCODE、LINEERR_RESOURCEUNAVAIL、LINEERR_INVALPOINTER、LINEERR_STRUCTURETOOSMALL、LINEERR_INVALPARAM、LINEERR_UNINITIALIZED。

言論

成功的轉送只會指出服務提供者已接受要求,而不是在交換器上設定轉送。 LINE_ADDRESSSTATE(轉送)訊息會確認已在交換器上設定轉送。

地址轉送仍有效,直到再次呼叫此函式為止。 最新的轉送清單會取代舊的轉寄清單。 藉由將 NULL 指標指定為 lpForwardList,即可取消轉送。 如果針對轉送清單中的專案指定了 NULL 目的地位址,則此作業會做為 do-not-打擾。

地址的轉送狀態也可能受到外部影響;例如,在交換器或使用者從另一個月臺執行系統管理動作。 服務提供者可能無法察覺此狀態變更,而且可能無法與交換器已知的轉送狀態保持同步。

因為服務提供者可能不知道位址的轉送狀態「確定」(也就是說,它可能以未知的方式轉寄或未預期),所以除非無法設定新的轉寄指示,否則 lineForward 會成功。 換句話說,要求在沒有任何轉送生效時取消所有轉送都會成功。 這是因為沒有「不可原諒」—您只能變更先前的轉送指示集。

此作業的成功或失敗不取決於先前的轉送指令集,在設定不同的轉送指示時,也是如此。 提供者在設定新的轉寄指示之前,應該「無所事事」。 因為這可能會在模擬電話語音環境中花費時間,因此提供者可能也想要比較目前的轉送與新的轉送,並且只向切換發出指示以進入最終狀態(不會受到影響的未變更轉送)。

LINEFORWARDLIST dwNumEntries 設為零時叫用 lineForward,其效果與提供 NULLlpForwardList 參數的效果相同。 它會取消目前生效的所有轉送。

注意

tapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 lineForward 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
目標平臺 窗戶
標頭 tapi.h
連結庫 Tapi32.lib
DLL Tapi32.dll

另請參閱

轉寄概觀

LINECALLPARAMS

LINEFORWARDLIST

LINE_ADDRESSSTATE

LINE_REPLY

補充線路服務函式

TAPI 2.2 參考概觀