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
要轉接來電的指定行位址。 如果 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 目的地位址,作業會作為不打擾。
地址的轉送狀態也可能受到外部影響;例如,藉由交換器上的系統管理動作,或由來自另一個月臺的用戶執行。 服務提供者可能無法察覺此狀態變更,而且可能無法與交換器已知的轉送狀態保持同步。
因為服務提供者可能不知道位址「確定」 (的轉送狀態,所以可能已經轉寄或未轉寄) 未知的方式,除非 lineForward 無法設定新的轉寄指示,否則 lineForward 會成功。 換句話說,要求所有轉送一次都取消,沒有任何轉送生效會成功。 這是因為沒有「不向前」—您只能變更先前的轉送指示集。
此作業的成功或失敗不取決於先前的轉送指令集,而且在設定不同的轉送指令時也是如此。 提供者在設定新的轉寄指示之前,應該「取消前方一切」。 由於這可能需要在模擬電話語音環境中花費時間,因此提供者可能也會想要比較目前的轉送與新轉寄,並且只發出切換的指示,以進入最終狀態, (不受影響) 保留未變更的轉送。
當 LINEFORWARDLIST 的 dwNumEntries 設定為零時叫用 lineForward 與提供 NULLlpForwardList 參數的效果相同。 它會取消目前生效的所有轉送。
注意
tapi.h 標頭會將 lineForward 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
| 需求 | 值 |
|---|---|
| 目標平台 | Windows |
| 標頭 | tapi.h |
| 程式庫 | Tapi32.lib |
| Dll | Tapi32.dll |