다음을 통해 공유


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 실제 매개 변수는 함수가 성공하면 0이거나 오류가 발생하면 오류 번호입니다. 가능한 반환 값은 다음과 같습니다.

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 함수는 호출 상태가HoldPendingTransfer인 호출을 복구할 수 있습니다. 이 작업이 완료되면 상담 전화는 일반적으로 유휴 상태로 전환됩니다.

transferHeld 또는 transferMake 전송 모델을 따르는 전화 통신 환경에서 이 절차는 LINEERR_OPERATIONFAILED 반환하며 상담 통화 핸들을 할당하지 않습니다.

상담 전화는 TSPI_lineDrop 호출하여 취소할 수 있습니다. 상담 전화를 끄면 원래 통화는 일반적으로 연결된 상태로 다시 전환됩니다.

이 함수는 호출 수명을 시작하기 위해 TSPI 모델을 따른다는 점에서 해당 TAPI 함수와 다릅니다. TAPI 및 서비스 공급자는 서로 호출을 나타내는 불투명 핸들을 교환합니다. 또한 서비스 공급자는 이 절차에서 반환되기 전에 새 호출에 대한 콜백을 수행할 수 있습니다. 어쨌든 서비스 공급자는 일치하는 ASYNC_COMPLETION 메시지가 성공을 보고할 때까지 반환된 핸들을 "아직 유효하지 않음"으로 처리해야 합니다. 즉, 새 호출에 대한 LINEEVENT 메시지를 발급하거나 메시지의 호출 수 또는 줄에 대한 상태 데이터 구조에 포함해서는 안 됩니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 tspi.h

추가 정보

LINEADDRESSCAPS

LINECALLPARAMS

LINE_CALLSTATE

TSPI_lineBlindTransfer

TSPI_lineCompleteTransfer

TSPI_lineDial

TSPI_lineDrop

TSPI_lineSwapHold

TSPI_lineUnhold