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