다음을 통해 공유


TSPI_lineSetMediaControl 함수(tspi.h)

TSPI_lineSetMediaControl 함수는 지정된 줄, 주소 또는 호출과 연결된 미디어 스트림에서 제어 작업을 사용하거나 사용하지 않도록 설정합니다. 미디어 제어 작업은 지정된 숫자, 미디어 유형, 사용자 지정 톤 및 통화 상태를 검색하여 트리거할 수 있습니다. 지정된 새 미디어 컨트롤은 이 요청 이전에 이 줄, 주소 또는 호출에 적용된 모든 컨트롤을 대체합니다.

구문

LONG TSPIAPI TSPI_lineSetMediaControl(
  HDRVLINE                          hdLine,
  DWORD                             dwAddressID,
  HDRVCALL                          hdCall,
  DWORD                             dwSelect,
  LPLINEMEDIACONTROLDIGIT const     lpDigitList,
  DWORD                             dwDigitNumEntries,
  LPLINEMEDIACONTROLMEDIA const     lpMediaList,
  DWORD                             dwMediaNumEntries,
  LPLINEMEDIACONTROLTONE const      lpToneList,
  DWORD                             dwToneNumEntries,
  LPLINEMEDIACONTROLCALLSTATE const lpCallStateList,
  DWORD                             dwCallStateNumEntries
);

매개 변수

hdLine

줄에 대한 핸들입니다.

dwAddressID

지정된 오픈 라인 디바이스의 주소입니다. 주소 식별자는 주소와 영구적으로 연결됩니다. 식별자는 운영 체제 업그레이드에서 일정하게 유지됩니다. TAPI는 이 함수가 호출되면 이 매개 변수의 유효성을 검사하지 않습니다.

hdCall

호출에 대한 핸들입니다. hdCall의 호출 상태는 모든 상태일 수 있습니다.

dwSelect

요청된 미디어 컨트롤이 단일 호출과 연결되어 있는지, 주소의 모든 호출에 대한 기본값인지, 줄의 모든 호출에 대한 기본값인지를 지정합니다. 이 매개 변수는 다음 LINECALLSELECT_ 상수를 사용합니다.

lpDigitList

LINEMEDIACONTROLDIGIT 형식의 미디어 제어 작업을 트리거하는 숫자를 포함하는 배열에 대한 포인터입니다. 숫자 목록에 나열된 숫자가 검색될 때마다 지정된 미디어 제어 작업이 통화의 미디어 스트림에서 수행됩니다.

펄스 모드의 유효한 숫자는 '0'~'9'입니다. DTMF 모드의 유효한 숫자는 '0'~'9', 'A', 'B', 'C', 'D', '*', '#'입니다.

dwDigitNumEntries

lpDigitList의 항목 수입니다. TAPI는 이 함수가 호출되면 이 매개 변수의 유효성을 검사하지 않습니다.

lpMediaList

LINEMEDIACONTROLMEDIA 형식의 항목이 있는 배열에 대한 포인터입니다. 배열에는 dwMediaNumEntries 항목이 있습니다. 각 항목에는 모니터링할 미디어 유형, 미디어 형식 특정 정보(예: 기간) 및 미디어 제어 필드가 포함됩니다. 목록의 미디어 형식이 검색되면 해당 미디어 제어 작업이 호출의 미디어 스트림에서 수행됩니다.

dwMediaNumEntries

lpMediaList의 항목 수입니다. TAPI는 이 함수가 호출되면 이 매개 변수의 유효성을 검사하지 않습니다.

lpToneList

LINEMEDIACONTROLTONE 형식의 항목이 있는 배열에 대한 포인터입니다. 배열에는 dwToneNumEntries 항목이 있습니다. 각 항목에는 모니터링할 톤, 톤 기간 및 미디어 제어 필드에 대한 설명이 포함되어 있습니다. 목록의 톤이 감지되면 해당 미디어 제어 작업이 통화의 미디어 스트림에서 수행됩니다.

dwToneNumEntries

lpToneList의 항목 수입니다. TAPI는 이 함수가 호출되면 이 매개 변수의 유효성을 검사하지 않습니다.

lpCallStateList

LINEMEDIACONTROLCALLSTATE 형식의 항목이 있는 배열에 대한 포인터입니다. 배열에는 dwCallStateNumEntries 항목이 있습니다. 각 항목에는 호출 상태 및 미디어 제어 작업이 포함됩니다.

dwCallStateNumEntries

lpCallStateList의 항목 수입니다. TAPI는 이 함수가 호출되면 이 매개 변수의 유효성을 검사하지 않습니다.

반환 값

함수가 성공하면 0을 반환하고 오류가 발생하면 오류 번호를 반환합니다. 가능한 반환 값은 다음과 같습니다.

LINEERR_INVALADDRESSID, LINEERR_INVALPOINTER, LINEERR_INVALCALLHANDLE, LINEERR_INVALTONELIST, LINEERR_INVALCALLSELECT, LINEERR_NOMEM, LINEERR_INVALCALLSTATELIST, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALDIGITLIST, LINEERR_OPERATIONFAILED, LINEERR_INVALLINEHANDLE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALMEDIALIST.

설명

이 함수는 미디어 제어가 올바르게 시작될 때 미디어 컨트롤이 적용되는 경우가 아니라 0(성공)을 반환합니다. 이 함수가 다른 매개 변수 또는 NULLs를 사용하여 다시 호출될 때 진행 중인 미디어 제어가 변경되거나 취소됩니다.

한 번에 하나의 미디어 제어 요청만 호출에서 미해결될 수 있습니다. 요청은 미해결 상태일 수 있는 모든 를 대체합니다.

이러한 리소스에 대해 경쟁하는 서비스 공급자 및 기타 활동에 따라 시간에 따라 수행할 수 있는 동시 검색의 양이 달라질 수 있습니다. 서비스 공급자 리소스가 과도하게 커밋되면 LINEERR_RESOURCEUNAVAIL 반환합니다.

서비스 공급자가 미디어 제어를 지원하는지 여부는 LINEDEVCAPS에 표시된 디바이스 기능입니다.

TSPI_lineSetMediaControl 호출할 때마다 새 요청은 현재 적용 중인 모든 미디어 컨트롤을 재정의합니다. lpDigitList, lpMediaList, lpToneListlpCallStateList 매개 변수 중 하나 이상이 NULL인 경우 해당 숫자, 미디어 유형, 톤 또는 호출 상태 트리거 미디어 컨트롤이 비활성화됩니다. 나머지 설정을 그대로 유지하면서 미디어 제어 매개 변수의 일부만 수정하려면 애플리케이션은 계속 적용되어야 하는 부분에 대한 이전 매개 변수와 수정할 부분에 대한 새 매개 변수를 제공하는 TSPI_lineSetMediaControl 호출해야 합니다.

요구 사항

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

추가 정보

LINEDEVCAPS

LINEDIGITMODE_ 상수

LINEMEDIACONTROLCALLSTATE

LINEMEDIACONTROLDIGIT

LINEMEDIACONTROLMEDIA

LINEMEDIACONTROLTONE

LINEMEDIAMODE_ 상수

TSPI_lineGetDevCaps