다음을 통해 공유


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로 끝나는 유니코드 문자열에 대한 포인터입니다. 이 매개 변수는 현재 픽업 그룹 외부에서 호출을 받기 위해 일부 스위치에 필요합니다.

lpszGroupIDlpszDestAddress에 대한 NULL 포인터를 사용하여 단독으로 지정할 수 있습니다. 또는 디바이스에서 필요한 경우 lpszDestAddress 외에도 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 호출 대기 호출을 선택하는 데 사용되는 경우 lpszDestAddresslpszGroupID 포인터 매개 변수는 모두 NULL입니다. 서비스 공급자는 대기 중인 호출에 대한 새 호출 핸들을 만들고 lphdCall에서 해당 핸들을 사용자에게 전달합니다. dwAddressID 매개 변수는 가장 자주 0입니다(특히 한 줄 주거의 경우).

TSPI_linePickup 두 번째 호출을 선택하는 데 사용되면 TSPI_lineSwapHold 사용하여 둘 사이를 전환할 수 있습니다. TSPI_lineDrop 하나를 삭제하고 다른 항목으로 전환하는 데 사용할 수 있습니다. 사용자가 현재 통화를 삭제하고 두 번째 호출을 선택하려는 경우 통화 대기 경고음이 발생할 때 TSPI_lineDrop 호출하고, 두 번째 호출이 울릴 때까지 기다린 다음, 새 호출 핸들에서 TSPI_lineAnswer 호출합니다. 서비스 공급자는 LINEADDRESSSTATUSdwAddressFeatures 멤버에 LINEADDRFEATURE_PICKUP 플래그를 설정하여 픽업이 실제로 가능한 시기를 나타냅니다.

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

요구 사항

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

추가 정보

ASYNC_COMPLETION

LINEADDRESSCAPS

LINEADDRESSSTATUS

LINECALLINFO

LINECALLSTATUS

LINEEVENT

LINE_CALLSTATE

TSPI_lineAnswer

TSPI_lineDrop

TSPI_lineGetCallInfo

TSPI_lineGetCallStatus

TSPI_lineSwapHold