TSPI_lineMakeCall 함수(tspi.h)

TSPI_lineMakeCall 함수는 지정된 줄에서 지정된 대상 주소에 대한 호출을 배치합니다. 필요에 따라 기본 호출 설정 매개 변수 외에 다른 항목이 요청되면 호출 매개 변수를 지정할 수 있습니다.

구문

LONG TSPIAPI TSPI_lineMakeCall(
  DRV_REQUESTID          dwRequestID,
  HDRVLINE               hdLine,
  HTAPICALL              htCall,
  LPHDRVCALL             lphdCall,
  LPCWSTR                lpszDestAddress,
  DWORD                  dwCountryCode,
  LPLINECALLPARAMS const lpCallParams
);

매개 변수

dwRequestID

비동기 요청의 식별자입니다.

hdLine

새 호출이 시작되는 줄에 대한 핸들입니다.

htCall

새 호출에 대한 TAPI 핸들입니다. 서비스 공급자는 이를 저장하고 호출 시 이벤트를 보고하는 LINEEVENT 프로시저에 대한 모든 후속 호출에서 사용해야 합니다.

lphdCall

호출 핸들에 대한 포인터입니다. 서비스 공급자는 이 프로시저가 반환되기 전에 호출에 대한 핸들로 이 위치를 채워야 합니다. 함수에 오류가 발생하면 TAPI에서 이 핸들을 무시합니다.

lpszDestAddress

대상 주소를 지정하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. 표준 전화 걸기 가능 번호 형식을 따릅니다. 이 포인터는 다이얼이 없는 주소(항상 미리 정의된 번호에 자동으로 연결되는 핫 전화와 마찬가지로)나 TSPI_lineDial 사용하여 모든 전화 걸기를 수행할 때 NULL로 지정할 수 있습니다. 후자의 경우 TSPI_lineMakeCall 다이얼링이 시작될 때까지 일반적으로 다이얼톤 상태로 유지되는 사용 가능한 통화 모양을 할당합니다. 역 멀티플렉싱 기능이 있는 서비스 공급자는 애플리케이션에서 한 번에 여러 주소를 지정할 수 있습니다.

dwCountryCode

호출된 파티의 국가 또는 지역 코드입니다. 값을 0으로 지정하면 구현에서 기본값이 사용됩니다.

lpCallParams

LINECALLPARAMS 구조체에 대한 포인터입니다. 이 구조를 사용하면 TAPI가 호출을 설정하는 방법을 지정할 수 있습니다. NULL을 지정하면 기본 3.1kHz 음성 통화가 설정되고 줄의 임의 원본 주소가 선택됩니다. 이 구조는 호출 전달자 모드, 데이터 속도, 예상 미디어 형식, 원본 주소, 호출자 ID 정보 차단 및 전화 걸기 매개 변수와 같은 요소를 선택합니다.

반환 값

dwRequestID를 반환하거나 오류가 발생하는 경우 오류 번호를 반환합니다. 함수가 성공하면 해당 ASYNC_COMPLETIONlResult 실제 매개 변수는 0이거나 오류가 발생하면 오류 번호입니다. 가능한 반환 값은 다음과 같습니다.

LINEERR_ADDRESSBLOCKED, LINEERR_INVALLINESTATE, LINEERR_BEARERMODEUNAVAIL, LINEERR_INVALRATE, LINEERR_CALLUNAVAIL, LINEERR_INVALLINEHANDLE, LINEERR_DIALBILLING, LINEERR_INVALADDRESS, LINEERR_DIALQUIET, LINEERR_INVALADDRESSID, LINEERR_DIALDIALTONE, LINEERR_INVALCALLPARAMS, LINEERR_DIALPROMPT, LINEERR_NOMEM, LINEERR_INUSE, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALADDRESSMODE, LINEERR_OPERATIONFAILED, LINEERR_INVALBEARERMODE, LINEERR_RESOURCEUNAVAIL, LINEERR_ INVALCOUNTRYCODE, LINEERR_RATEUNAVAIL, LINEERR_INVALMEDIAMODE, LINEERR_USERUSERINFOTOOBIG.

설명

현재 이 작업을 수행할 수 있는 상태가 아닌 경우 서비스 공급자는 LINEERR_INVALLINESTATE 반환합니다. 현재 유효한 작업 목록은 LINEDEVSTATUS 구조체의 dwLineFeatures 멤버(LINEFEATURE 형식)에서 찾을 수 있습니다. ( TSPI_lineGetLineDevStatus 호출하면 LINEDEVSTATUS의 정보가 업데이트됩니다.)

서비스 공급자가 LINEERR_DIALBILLING, LINEERR_DIALQUIET, LINEERR_DIALDIALTONE 또는 LINEERR_DIALPROMPT 반환하는 경우 TSPI_lineMakeCall 수행하지 않는 작업을 수행하지 않아야 합니다. 예를 들어 부분 전화 걸기 및 끄기 없음이 있습니다. 서비스 공급자가 먼저 지원되지 않는 문자 수를 미리 검사해야 하므로 이 때문입니다.

TSPI_lineMakeCall 애플리케이션에 SUCCESS 회신 콜백 메시지를 반환한 후 서비스 공급자는 TSPI_lineOpen 전달된 lpfnEventProcLINE_CALLSTATE 메시지를 전송하여 TAPI에 호출 진행 상황을 알려야 합니다. 일반적인 보고 시퀀스는 다이얼 톤, 전화 걸기, 진행, 링백 및 연결일 수 있습니다. 보고된 첫 번째 상태가 반드시 LINECALLSTATE_DIALTONE 것은 아닙니다. 서비스 공급자는 이러한 상태 중 보고되는 수를 선택합니다. 애플리케이션이 적절한 작업을 수행할 수 있도록 가능한 한 많이 전송하는 것이 좋습니다.

서비스 공급자는 처음에 줄에서 모니터링된 미디어 유형 집합 이상에 대해 새 호출에 대해 미디어 모니터링을 수행합니다.

다이얼 문자열이 NULL인 경우 서비스 공급자는 줄을 다이얼톤 상태로 이동하고(Comm 기반 서비스 공급자의 경우 ATD가 포함됨) LINECALLSTATE_DIALTONE 나타내는 호출 상태 메시지를 보냅니다.

다이얼 문자열이 ';'로 끝나는 경우 (세미콜론) 서비스 공급자는 부분 번호로 전화를 걸어 LINECALLSTATE_DIALING 메시지를 보냅니다. 이 호출은 TSPI_lineDial 호출하여 완료됩니다.

다이얼 문자열에 서비스 공급자가 지원하지 않는 문자(W, @, $, ?)가 포함된 경우 서비스 공급자는 다이얼 문자열을 스캔하고 첫 번째 잘못된 문자에 해당하는 오류를 반환(동기적으로)해야 합니다.

LINECALLPARAMFLAGS_IDLE 플래그가 설정된 경우 서비스 공급자는 현재 줄 상태 검사 합니다(끄기 및 다이얼 톤 감지와 동일). 이 IDLE 플래그가 설정되어 있고 다이얼 톤이 없으면 오류 LINEERR_CALLUNAVAIL 함수가 실패합니다. IDLE 플래그가 설정되지 않았거나 다이얼 톤이 있는 경우 전화 걸기를 계속할 수 있습니다.

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

요구 사항

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

추가 정보

ASYNC_COMPLETION

LINECALLPARAMS

LINEEVENT

LINE_CALLSTATE

TSPI_lineDial

TSPI_lineDrop