TSPI_lineSetupTransfer函式 (tspi.h)

TSPI_lineSetupTransfer函式會起始 hdCall 所指定呼叫的傳輸。 它會建立諮詢通話 lphdConsultCall,而該通話可撥打該方,以成為轉移的目的地。

語法

LONG TSPIAPI TSPI_lineSetupTransfer(
  DRV_REQUESTID          dwRequestID,
  HDRVCALL               hdCall,
  HTAPICALL              htConsultCall,
  LPHDRVCALL             lphdConsultCall,
  LPLINECALLPARAMS const lpCallParams
);

參數

dwRequestID

異步要求的標識碼。

hdCall

要轉移之呼叫的句柄。 hdCall 的呼叫狀態可以連線

htConsultCall

TAPI 處理新的暫時諮詢通話。 服務提供者必須儲存此專案,並在新的諮詢呼叫上報告事件的所有後續 LINEEVENT 程式呼叫中使用它。

lphdConsultCall

HDRVCALL 的指標,代表新諮詢通話的服務提供者標識碼。 服務提供者必須在這個程式傳回之前,填入這個位置的新諮詢呼叫句柄。 如果函式產生錯誤,TAPI 會忽略此句柄。 hdConsultCall 的呼叫狀態不適用。

設定撥接電話以進行轉移時,會自動配置另一個通話 (諮詢通話) ,以透過TAPI) 啟用應用程式 (,以使用 TSPI_lineDial) 轉接通話的派對) 來撥打 (位址。 在完成轉移之前,原始合作物件可以透過此諮詢通話進行交談。

此傳輸程式可能不適用於某些線路裝置。 TAPI 可能需要使用TSPI_lineUnhold) 來識別傳輸目的地 而不是呼叫這個程式,而不需要保留現有的保留呼叫 (。 在支援跨位址通話轉移的交換器上,諮詢通話可以存在於與要轉移的通話不同的位址上。 您也可以使用 TSPI_lineMakeCall將諮詢通話設定為全新的通話,以傳送目的地。

LINEADDRESSCAPS 數據結構中的 transferHeldtransferMake 旗標會報告服務提供者所使用的模型。

lpCallParams

LINECALLPARAMS 結構的指標,包含建立諮詢通話時要使用的呼叫參數。 如果服務提供者使用預設值) (不需要特殊呼叫安裝參數,則可以將此參數設定為 NULL

傳回值

會傳回 dwRequestID,如果發生錯誤,則傳回錯誤號碼。 如果函式成功,則對應ASYNC_COMPLETIONlResult 實際參數為零,如果發生錯誤,則為錯誤號碼。 可能的傳回值如下所示:

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

備註

如果要轉移的呼叫不是處於有效狀態,則服務提供者會傳回LINEERR_INVALCALLSTATE。

此作業會設定 hdCall 所指定呼叫的傳輸。 轉移的設定階段會建立諮詢通話,以將目的地的位址傳送給 (要轉移給交換器) ,同時保留要轉移的通話。 這個新呼叫稱為 (hdConsultCall) 的諮詢通話,而且可以操作 (例如,與原始呼叫無關的卸除) 。

當諮詢通話到達 撥號 通話狀態時,TAPI 可以藉由撥打目的地位址並追蹤其進度,或取消保留現有的通話,繼續轉移通話。 使用TSPI_lineCompleteTransfer完成原始呼叫至選取目的地 傳輸。

當諮詢通話存在時,原始呼叫通常會轉換為 onholdPendingTransfer 狀態。

TSPI_lineUnhold函式可以復原具有 onHoldPendingTransfer 呼叫狀態的呼叫。 如果這樣做,任何諮詢通話通常會進入 閑置 狀態。

在遵循 transferHeldtransferMake 傳輸模型的電話語音環境中,此程式會傳回LINEERR_OPERATIONFAILED,而且不會配置諮詢通話句柄。

您可以叫用 TSPI_lineDrop來 取消諮詢通話。 卸除諮詢通話之後,原始通話通常會轉換回 聯機 狀態。

此函式與對應的 TAPI 函式不同,因為它會遵循 TSPI 模型,以開始呼叫的存留期。 TAPI 和服務提供者交換不透明的句柄,代表彼此的呼叫。 此外,服務提供者可以在從這個程式傳回之前,先執行新呼叫的回呼。 在任何情況下,服務提供者也必須將傳回的句柄視為「無效」,直到比對 ASYNC_COMPLETION 訊息回報成功為止。 換句話說,它不得針對新呼叫發出任何 LINEEVENT 訊息,或將它包含在該行的訊息或狀態數據結構中的呼叫計數中。

規格需求

需求
目標平台 Windows
標頭 tspi.h

另請參閱

LINEADDRESSCAPS

LINECALLPARAMS

LINE_CALLSTATE

TSPI_lineBlindTransfer

TSPI_lineCompleteTransfer

TSPI_lineDial

TSPI_lineDrop

TSPI_lineSwapHold

TSPI_lineUnhold