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 데이터 구조의 transferHeld 및 transferMake 플래그는 서비스 공급자가 사용하는 모델을 보고합니다.
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 |