TSPI_lineCompleteTransfer函式 (tspi.h)

TSPI_lineCompleteTransfer函式會完成在諮詢呼叫中聯機之合作物件的指定呼叫轉移。 如果 dwTransferMode LINETRANSFERMODE_CONFERENCE,原始通話句柄會變更為會議通話。 否則,服務提供者應該傳送呼叫狀態消息,將呼叫變更為 閑置

語法

LONG TSPIAPI TSPI_lineCompleteTransfer(
  DRV_REQUESTID dwRequestID,
  HDRVCALL      hdCall,
  HDRVCALL      hdConsultCall,
  HTAPICALL     htConfCall,
  LPHDRVCALL    lphdConfCall,
  DWORD         dwTransferMode
);

參數

dwRequestID

異步要求的標識碼。

hdCall

要轉移之呼叫的服務提供者句柄。 hdCall 的呼叫狀態可以是 onHoldPendingTransfer

hdConsultCall

呼叫的句柄,表示與傳輸目的地的連接。 hdConsultCall 的呼叫狀態可以連線迴響忙碌繼續

htConfCall

只有在 dwTransferMode 指定為LINETRANSFERMODE_CONFERENCE時,此參數才有效。 服務提供者必須儲存此參數值,並在呼叫上報告事件的所有後續 呼叫 中使用它。 否則會忽略此參數。

lphdConfCall

HDRVCALL 的指標,代表呼叫的服務提供者標識符。 只有在 dwTransferMode 指定為LINETRANSFERMODE_CONFERENCE時,此參數才有效。 服務提供者必須在從此函式傳回之前,填入新會議通話的句柄。

dwTransferMode

指定如何解析起始的傳輸要求。 此參數使用其中一個 LINETRANSFERMODE_常數

傳回值

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

LINEERR_INVALCALLHANDLE、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALCALLSTATE、LINEERR_OPERATIONFAILED、LINEERR_NOMEM LINEERR_RESOURCEUNAVAIL。

備註

此函式會完成原始呼叫 hdCall 的傳輸至目前透過 hdConsultCall 連線的合作物件。 諮詢通話通常會在配置為 TSPI_lineSetupTransfer一部分的諮詢通話上撥打,但可以是交換器能夠傳輸 hdCall 的任何呼叫。

轉移要求可以解析為轉移或三向會議通話。 當解析為傳輸時,透過 hdCallhdConsultCall 連線的合作物件會彼此連線,而 hdCallhdConsultCall 都會轉換為閑置狀態。

當解析為會議時,所有三方都會進入會議通話。 現有的通話句柄都維持有效狀態,但轉換至 會議 狀態。 會議通話句柄會建立並傳回,並轉換為 已連線 狀態。

您也可以使用 TSPI_lineBlindTransfer來執行通話的盲目傳輸。

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

規格需求

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

另請參閱

ASYNC_COMPLETION

LINEEVENT

LINETRANSFERMODE_常數

LINE_CALLSTATE

TSPI_lineBlindTransfer

TSPI_lineCloseCall

TSPI_lineSetupTransfer