lineForward 函式 (tapi.h)

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

語法

LONG lineForward(
  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 會成功,除非無法設定新的轉送指示。 換句話說,要求一次取消所有轉送,且沒有任何轉送生效。 這是因為沒有「不順向」—您只能變更先前的轉送指示集。

這項作業的成功或失敗不取決於先前的轉送指令集,而設定不同的轉送指令時則相同。 提供者在設定新的轉送指示之前,應該「不順向所有專案」。 由於這可能需要一段時間在模擬電話語音環境中,提供者可能也會想要比較目前的轉送與新的轉送,而且只會發出切換的指示,以進入最終狀態, (維持未變更的轉寄) 。

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

規格需求

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

另請參閱

轉寄概觀

LINECALLPARAMS

LINEFORWARDLIST

LINE_ADDRESSSTATE

LINE_REPLY

增補線路服務函式

TAPI 2.2 參考概觀