lineSetupTransfer 函式 (tapi.h)

lineSetupTransfer 函式會起始hCall參數所指定呼叫的傳輸。 它會建立一個諮詢通話 lphConsultCall,該通話可撥打方成為轉移目的地。 應用程式會取得 lphConsultCall 參數的擁有者許可權。

語法

LONG lineSetupTransfer(
  HCALL                  hCall,
  LPHCALL                lphConsultCall,
  LPLINECALLPARAMS const lpCallParams
);

參數

hCall

要轉移之呼叫的控制碼。 應用程式必須是呼叫的擁有者。 必須連線hCall的撥號狀態。

lphConsultCall

hCall控制碼的指標。 此位置接著會載入識別暫時諮詢呼叫的控制碼。 設定轉移通話時,會自動設定諮詢通話,讓 lineDial 撥打與通話新轉移目的地相關聯的位址。 在完成轉移之前,原始合作物件可以透過此諮詢通話進行交談。 hConsultCall的撥號狀態不適用。

此傳輸程式可能不適用於某些線路裝置。 應用程式可能需要忽略新的諮詢通話,並使用 lineUnhold) 來識別轉移目的地 (現有的保留通話。 在支援跨位址通話轉移的交換器上,諮詢通話可以存在於與要轉移的通話不同的位址上。 您也可以將諮詢通話設定為 透過 lineMakeCall到轉移目的地的全新通話。 呼叫的位址功能會指定哪些形式的傳輸。

lpCallParams

LINECALLPARAMS結構的指標,其中包含建立諮詢呼叫時要使用的呼叫參數。 如果不需要任何特殊的呼叫安裝參數,這個參數可以設定為 Null

傳回值

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

LINEERR_BEARERMODEUNAVAIL、LINEERR_INVALRATE、LINEERR_CALLUNAVAIL、LINEERR_NOMEM、LINEERR_INUSE、LINEERR_NOTOWNER、LINEERR_INVALADDRESSMODE、LINEERR_OPERATIONFAILED、LINEERR_INVALBEARERMODE、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALCALLHANDLE、LINEERR_RATEUNAVAIL、LINEERR_INVALCALLPARAMS、LINEERR_RESOURCEUNAVAIL、LINEERR_INVALCALLSTATE、LINEERR_STRUCTURETOOSMALL、LINEERR_INVALLINESTATE、LINEERR_UNINITIALIZED、LINEERR_INVALMEDIAMODE、LINEERR_USERUSERINFOTOOBIG LINEERR_INVALPOINTER。

備註

lineSetupTransfer 函式會設定hCall所指定呼叫的傳輸。 轉移的設定階段會建立一個諮詢通話,讓應用程式能夠傳送目的地位址, (將合作物件轉移至交換器) ,同時保留要轉移的通話。 這個新呼叫稱為 (hConsultCall) 的諮詢通話,而且可以卸載或操作與原始呼叫無關。

當諮詢通話到達 撥號 通話狀態時,應用程式可以撥打目的地位址並追蹤其進度,或取消保留現有的通話,繼續轉移通話。 使用 lineCompleteTransfer完成對所選目的地的原始來電轉接。

當諮詢通話存在時,原始呼叫通常會轉換為 onholdPendingTransfer 狀態。 應用程式可以使用 lineSwapHold在諮詢通話與原始通話之間切換。 您可以叫用 lineDrop 來取消諮詢通話。 卸載諮詢通話之後,原始通話通常會轉換回 連線 狀態。 如果原始呼叫的撥號狀態為 onholdPendingTransfer則 lineUnhold 函式可用來復原呼叫。 在此情況下,諮詢通話的撥號狀態會設定為 閒置

應用程式也可以在單一步驟中轉移呼叫,而不需要使用 lineBlindTransfer處理介入諮詢呼叫。

需求

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

另請參閱

LINECALLPARAMS

LINE_REPLY

增補行服務函式

TAPI 2.2 參考概觀

傳輸概觀

lineBlindTransfer

lineCompleteTransfer

lineDial

lineDrop

lineMakeCall

lineSwapHold

lineUnhold