TSPI_linePickup 함수(tspi.h)
TSPI_linePickup 함수는 지정된 대상 주소에서 호출 경고를 선택하고 선택한 호출에 대한 호출 핸들을 반환합니다. lpszDestAddress 매개 변수에 대해 NULL을 사용하여 호출하면 그룹 픽업이 수행됩니다. 디바이스 기능에 필요한 경우 lpszGroupID 는 경고 스테이션이 속한 그룹 식별자를 지정합니다.
구문
LONG TSPIAPI TSPI_linePickup(
DRV_REQUESTID dwRequestID,
HDRVLINE hdLine,
DWORD dwAddressID,
HTAPICALL htCall,
LPHDRVCALL lphdCall,
LPCWSTR lpszDestAddress,
LPCWSTR lpszGroupID
);
매개 변수
dwRequestID
비동기 요청의 식별자입니다.
hdLine
호출을 선택할 줄에 대한 핸들입니다.
dwAddressID
픽업이 시작되는 hdLine 의 주소입니다. 주소 식별자는 주소와 영구적으로 연결됩니다. 식별자는 운영 체제 업그레이드에서 일정하게 유지됩니다.
htCall
새 호출에 대한 TAPI 핸들입니다. 서비스 공급자는 이를 저장하고 호출 시 이벤트를 보고하는 LINEEVENT 프로시저에 대한 모든 후속 호출에서 사용해야 합니다.
lphdCall
호출에 대한 서비스 공급자의 식별자를 나타내는 HDRVCALL 에 대한 포인터입니다. 서비스 공급자는 이 프로시저가 반환되기 전에 호출에 대한 핸들로 이 위치를 채워야 합니다. 함수에 오류가 발생하면 TAPI에서 이 핸들을 무시합니다.
lpszDestAddress
호출을 선택할 주소가 포함된 null로 끝나는 유니코드 문자열에 대한 포인터입니다. 주소는 표준 링크 형식입니다.
lpszGroupID
경고 스테이션이 속한 그룹 식별자를 포함하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. 이 매개 변수는 현재 픽업 그룹 외부에서 호출을 받기 위해 일부 스위치에 필요합니다.
반환 값
dwRequestID를 반환하거나 오류가 발생하는 경우 오류 번호를 반환합니다. 함수가 성공하면 해당 ASYNC_COMPLETIONlResult 실제 매개 변수는 0이거나 오류가 발생하면 오류 번호입니다. 가능한 반환 값은 다음과 같습니다.
LINEERR_INVALLINEHANDLE, LINEERR_NOMEM, LINEERR_INVALADDRESSID, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALADDRESS, LINEERR_OPERATIONFAILED, LINEERR_INVALGROUPID, LINEERR_RESOURCEUNAVAIL.
설명
호출이 성공적으로 선택되면 서비스 공급자는 호출 상태 변경에 대한 LINE_CALLSTATE 메시지와 함께 TAPI에 알 수 있습니다. LINECALLINFO 구조체는 선택한 호출에 대한 정보를 제공합니다. 호출 이유를 픽업으로 나열합니다. 이 구조는 TSPI_lineGetCallInfo 호출하여 사용할 수 있습니다.
사용자가 호출 대기 신호를 청각적으로 검색했지만 공급자가 검색을 수행할 수 없는 호출을 선택하는 데 TSPI_linePickup 사용할 수 있는 경우 서비스 공급자는 LINEADDRESSCAPS 구조에서 LINEADDRCAPFLAGS_PICKUPCALLWAIT TRUE로 설정합니다. 이렇게 하면 서비스 공급자가 통화 대기 신호를 감지할 수 없더라도 대기 중인 호출에 응답할 수 있는 메커니즘이 사용자에게 부여됩니다. TSPI_linePickup 호출 대기 호출을 선택하는 데 사용되는 경우 lpszDestAddress 및 lpszGroupID 포인터 매개 변수는 모두 NULL입니다. 서비스 공급자는 대기 중인 호출에 대한 새 호출 핸들을 만들고 lphdCall에서 해당 핸들을 사용자에게 전달합니다. dwAddressID 매개 변수는 가장 자주 0입니다(특히 한 줄 주거의 경우).
TSPI_linePickup 두 번째 호출을 선택하는 데 사용되면 TSPI_lineSwapHold 사용하여 둘 사이를 전환할 수 있습니다. TSPI_lineDrop 하나를 삭제하고 다른 항목으로 전환하는 데 사용할 수 있습니다. 사용자가 현재 통화를 삭제하고 두 번째 호출을 선택하려는 경우 통화 대기 경고음이 발생할 때 TSPI_lineDrop 호출하고, 두 번째 호출이 울릴 때까지 기다린 다음, 새 호출 핸들에서 TSPI_lineAnswer 호출합니다. 서비스 공급자는 LINEADDRESSSTATUS의 dwAddressFeatures 멤버에 LINEADDRFEATURE_PICKUP 플래그를 설정하여 픽업이 실제로 가능한 시기를 나타냅니다.
이 함수는 호출 수명을 시작하기 위해 TSPI 모델을 따른다는 점에서 해당 TAPI 함수와 다릅니다. TAPI와 서비스 공급자는 서로 호출을 나타내는 불투명 핸들을 교환합니다. 또한 서비스 공급자는 이 절차에서 반환되기 전에 새 호출에 대한 콜백을 수행할 수 있습니다. 어떤 경우든 서비스 공급자는 일치하는 ASYNC_COMPLETION 메시지가 성공을 보고할 때까지 반환된 핸들을 "아직 유효하지 않음"으로 처리해야 합니다. 즉, 새 호출에 대한 LINEEVENT 메시지를 실행하거나 메시지의 호출 수 또는 줄에 대한 데이터 구조 상태 포함해서는 안 됩니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | tspi.h |