共用方式為


lineForwardA 函式 (tapi.h)

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

語法

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

參數

hLine

線條裝置的句柄。

bAllAddresses

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

dwAddressID

要轉接來電的指定行位址。 如果 bAllAddressesTRUE,則會忽略此參數。

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

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 目的地位址,作業會作為不打擾。

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

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

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

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

注意

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

規格需求

需求
目標平台 Windows
標頭 tapi.h
程式庫 Tapi32.lib
Dll Tapi32.dll

另請參閱

轉寄概觀

LINECALLPARAMS

LINEFORWARDLIST

LINE_ADDRESSSTATE

LINE_REPLY

增補行服務函式

TAPI 2.2 參考概觀