lineSetMediaControl 함수(tapi.h)
lineSetMediaControl 함수는 지정된 줄, 주소 또는 호출과 연결된 미디어 스트림에서 제어 작업을 사용하거나 사용하지 않도록 설정합니다. 미디어 제어 작업은 지정된 숫자, 미디어 유형, 사용자 지정 톤 및 호출 상태를 검색하여 트리거할 수 있습니다.
구문
LONG lineSetMediaControl(
HLINE hLine,
DWORD dwAddressID,
HCALL hCall,
DWORD dwSelect,
LPLINEMEDIACONTROLDIGIT const lpDigitList,
DWORD dwDigitNumEntries,
LPLINEMEDIACONTROLMEDIA const lpMediaList,
DWORD dwMediaNumEntries,
LPLINEMEDIACONTROLTONE const lpToneList,
DWORD dwToneNumEntries,
LPLINEMEDIACONTROLCALLSTATE const lpCallStateList,
DWORD dwCallStateNumEntries
);
매개 변수
hLine
열린 줄 디바이스에 대한 핸들입니다.
dwAddressID
지정된 열린 줄 디바이스의 주소 식별자입니다. 주소 식별자는 주소와 영구적으로 연결됩니다. 식별자는 운영 체제 업그레이드에서 일정하게 유지됩니다.
hCall
호출에 대한 핸들입니다. 애플리케이션은 호출의 소유자여야 합니다. hCall의 호출 상태는 모든 상태일 수 있습니다.
dwSelect
요청된 미디어 컨트롤이 단일 호출과 연결되어 있는지 여부는 주소의 모든 호출에 대한 기본값이거나 줄의 모든 호출에 대한 기본값입니다. 이 매개 변수는 LINECALLSELECT_ 상수 중 하나뿐입니다.
lpDigitList
LINEMEDIACONTROLDIGIT 형식의 미디어 제어 작업을 트리거할 숫자를 포함하는 배열에 대한 포인터입니다. 숫자 목록의 숫자가 검색될 때마다 호출의 미디어 스트림에서 지정된 미디어 제어 작업이 수행됩니다.
펄스 모드의 유효한 숫자는 '0'~'9'입니다. DTMF 모드의 유효한 숫자는 '0'~'9', 'A', 'B', 'C', 'D', '*', '#'입니다.
dwDigitNumEntries
lpDigitList의 항목 수입니다.
lpMediaList
LINEMEDIACONTROLMEDIA 형식의 항목이 있는 배열에 대한 포인터입니다. 배열에 dwMediaNumEntries 항목이 있습니다. 각 항목에는 모니터링할 미디어 유형, 미디어 유형 특정 정보(예: 기간) 및 미디어 제어 필드가 포함됩니다. 목록의 미디어 형식이 검색되면 해당 미디어 제어 작업이 호출의 미디어 스트림에서 수행됩니다.
dwMediaNumEntries
lpMediaList의 항목 수입니다.
lpToneList
LINEMEDIACONTROLTONE 형식의 항목이 있는 배열에 대한 포인터입니다. 배열에는 dwToneNumEntries 항목이 있습니다. 각 항목에는 모니터링할 톤, 톤 기간 및 미디어 제어 필드에 대한 설명이 포함되어 있습니다. 목록의 톤이 감지되면 해당 미디어 제어 작업이 호출의 미디어 스트림에서 수행됩니다.
dwToneNumEntries
lpToneList의 항목 수입니다.
lpCallStateList
LINEMEDIACONTROLCALLSTATE 형식의 항목이 있는 배열에 대한 포인터입니다. 배열에는 dwCallStateNumEntries 항목이 있습니다. 각 항목에는 호출 상태 및 미디어 제어 작업이 포함됩니다. 지정된 호출이 목록의 호출 상태 중 하나로 전환될 때마다 해당 미디어 제어 작업이 호출됩니다.
dwCallStateNumEntries
lpCallStateList의 항목 수입니다.
반환 값
요청이 성공하면 0을 반환하고 오류가 발생하면 음수 오류 번호를 반환합니다. 가능한 반환 값은 다음과 같습니다.
LINEERR_INVALADDRESSID, LINEERR_NOMEM, LINEERR_INVALCALLHANDLE, LINEERR_NOTOWNER, LINEERR_INVALCALLSELECT, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLSTATELIST, LINEERR_OPERATIONFAILED, LINEERR_INVALDIGITLIST, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALLINEHANDLE, LINEERR_UNINITIALIZED, LINEERR_INVALMEDIALIST, LINEERR_INVALPOINTER, LINEERR_INVALTONELIST.
설명
lineSetMediaControl 함수는 미디어 컨트롤이 적용된 시점이 아니라 미디어 컨트롤이 올바르게 시작된 경우 성공한 것으로 간주됩니다. 다른 매개 변수 또는 NULL을 사용하여 이 함수를 다시 호출하여 진행 중인 미디어 제어가 변경되거나 취소됩니다. lpDigitList, lpMediaList, lpToneList 및 lpCallStateList 매개 변수 중 하나 이상이 NULL인 경우 해당 숫자, 미디어 유형, 톤 또는 호출 상태 트리거 미디어 컨트롤이 비활성화됩니다. 나머지 설정을 적용하는 동안 미디어 컨트롤 매개 변수의 일부만 수정하려면 애플리케이션이 lineSetMediaControl을 호출하여 적용 상태를 유지해야 하는 부분에 대한 이전 매개 변수와 수정할 부분에 대한 새 매개 변수를 제공해야 합니다.
hCall을 선택하고 호출이 종료되거나 애플리케이션이 핸들의 할당을 취소하면 해당 호출에 대한 미디어 제어가 취소됩니다.
호출의 소유자인 모든 애플리케이션은 원칙에 따라 통화에 대한 미디어 제어 요청을 할 수 있습니다. 호출을 소유한 모든 애플리케이션의 호출에서 단일 미디어 제어 요청만 미해결될 수 있습니다. lineSetMediaControl이 호출 될 때마다 새 요청은 호출 애플리케이션 또는 다른 소유 애플리케이션에 의해 설정되었는지 여부에 관계없이 호출에 적용되는 모든 미디어 제어를 재정의합니다.
이러한 리소스에 대해 경쟁하는 서비스 공급자 및 기타 활동에 따라 시간에 따라 수행할 수 있는 동시 검색 수가 달라질 수 있습니다. 서비스 공급자 리소스가 과도하게 커밋되면 LINEERR_RESOURCEUNAVAIL 오류가 반환됩니다.
서비스 공급자가 미디어 제어를 지원하는지 여부는 디바이스 기능입니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | tapi.h |
라이브러리 | Tapi32.lib |
DLL | Tapi32.dll |