미디어 모니터링

호출이 연결된 상태이면 호출을 통해 데이터를 전송할 수 있습니다. 호출 미디어 형식은 이 미디어 스트림의 데이터 형식(예: 해당 데이터 형식 또는 상위 수준 프로토콜)을 나타냅니다.

TAPI를 사용하면 통화의 미디어 유형 변경에 대한 알림과 함께 애플리케이션을 제공할 수 있습니다. 알림은 통화의 새 미디어 유형을 나타냅니다. 서비스 공급자는 이 결정을 내리는 방법을 결정합니다. 예를 들어 서비스 공급자는 미디어 스트림의 신호 처리를 사용하여 미디어 유형을 확인하거나 다른 미디어 스트림에 할당된 고유한 벨소리 패턴 또는 대역 외 신호 프로토콜로 전달된 정보 요소에 의존할 수 있습니다. 미디어 형식 결정과 관계없이 애플리케이션은 기존 통화에서 미디어 형식 변경에 대한 정보를 간단히 알 수 있습니다.

자세한 내용과 현재 정의된 TAPI 미디어 유형 또는 모드 목록은 LINEMEDIAMODE_ 상수를 참조하세요. 서비스 공급자는 고도로 특수화된 디바이스에 대한 공급자별 미디어 유형을 구현할 수 있습니다. 이러한 정보는 디바이스 설명서에서 찾을 수 있습니다.

TAPI에서 정의한 미디어 유형은 다음과 같습니다.

  • 알 수 없습니다. 호출의 미디어 형식은 현재 알려져 있지 않습니다. 호출은 분류되지 않습니다.
  • 대화형 음성. 통화에서 음성 에너지가 감지되었고, 통화는 애플리케이션의 끝에 있는 사람과 대화형 음성 통화로 처리됩니다.
  • 자동화된 음성. 통화 시 음성 에너지가 감지되었고 통화는 음성 통화로 처리되지만 응답기 애플리케이션과 같이 애플리케이션의 끝에 사람이 없습니다.
  • 데이터 모뎀. 호출 시 모뎀 세션입니다. 현재 모뎀 프로토콜을 사용하려면 호출된 스테이션이 핸드셰이크를 시작해야 합니다. 들어오는 데이터 모뎀 호출의 경우 애플리케이션은 일반적으로 긍정 검색을 수행할 수 없습니다. 서비스 공급자가 이 결정을 내리는 방법은 선택 사항입니다. 예를 들어 들어오는 호출에 응답한 직후의 무음 기간은 추론으로 사용하여 데이터 모뎀 호출일 수 있음을 결정할 수 있습니다.
  • G3 팩스. 통화에 대한 그룹 3 팩스 세션입니다.
  • G4 팩스. 통화에 대한 그룹 4 팩스 세션입니다.
  • Tdd. 통화의 미디어 스트림은 청각 장애인 프로토콜에 대한 전화 통신 디바이스를 사용합니다.
  • 디지털 데이터. 지정되지 않은 형식의 디지털 데이터 스트림입니다.
  • Teletex, Videotex, Telex, Mixed. 이러한 서비스는 동일한 이름의 텔레매틱 서비스에 해당합니다.
  • Adsi. 호출 시 아날로그 디스플레이 서비스 인터페이스 세션입니다. ADSI는 휴대폰에 다운로드된 영숫자 정보와 휴대폰의 소프트 단추를 사용하여 음성 통화를 향상시킵니다.

애플리케이션은 lineMonitorMedia를 사용하여 지정된 호출에서 미디어 모니터링을 사용하거나 사용하지 않도록 설정할 수 있습니다. 애플리케이션은 모니터링에 관심이 있는 미디어 유형을 지정하고 미디어 모니터링을 사용하도록 설정하면 미디어 형식 변경이 감지되면 애플리케이션에 LINE_MONITORMEDIA 메시지로 알림을 받습니다. 이 메시지는 미디어 유형 변경이 감지된 호출 핸들과 새 미디어 형식을 제공합니다.

lineGetCallInfo에서 보고한 호출의 미디어 유형과 LINE_MONITORMEDIA 메시지별 미디어 형식 이벤트 보고서 간에는 차이가 있습니다. 통화의 미디어 유형은 통화의 소유자 애플리케이션에 의해서만 결정되며 미디어 모니터링 이벤트에 의해 자동으로 변경되지 않습니다. 한 가지 예외는 TAPI 동적 링크 라이브러리에서 호출의 첫 번째 소유자를 선택하기 위해 수행할 수 있는 초기 미디어 형식 결정입니다. 이 경우 라이브러리가 호출의 소유자라고 주장할 수 있습니다.

라인 디바이스가 열린 미디어 유형에 대해 기본 미디어 유형 모니터링이 수행됩니다. 이렇게 하면 애플리케이션이 요구하는 내용에 따라 호출이 애플리케이션에 전달되기 전에 들어오는 호출의 미디어 유형을 확인할 수 있습니다. 통화의 미디어 모니터링 scope 통화 수명에 의해 바인딩됩니다. 통화에 대한 미디어 모니터링은 통화가 끊어지 거나 유휴 상태가 되는 즉시 종료됩니다.

애플리케이션은 lineGetID를 호출하여 열린 줄과 연결된 다양한 디바이스 클래스에 대한 디바이스 식별자를 가져올 수 있습니다. 이 함수는 줄 핸들, 주소 또는 호출 핸들과 디바이스 클래스 설명을 사용합니다. 열린 줄 디바이스, 주소 또는 호출과 연결된 지정된 디바이스 클래스의 디바이스에 대한 디바이스 식별자를 반환합니다. 디바이스 클래스가 "tapi/line"인 경우 줄 디바이스의 디바이스 식별자가 반환됩니다. 디바이스 클래스가 "mci/wave"인 경우 mci waveaudio 디바이스의 디바이스 식별자가 반환되어(지원되는 경우) 회선에서 호출을 통해 오디오의 녹음 또는 재생과 같은 활동을 허용합니다.

애플리케이션은 반환된 디바이스 식별자를 해당 미디어 API와 함께 사용하여 디바이스의 기능을 쿼리한 후 미디어 디바이스를 열 수 있습니다. 예를 들어 애플리케이션이 선을 파형 디바이스로 사용해야 하는 경우 먼저 waveInGetDevCaps 및/또는 waveOutGetDevCaps 를 호출하여 디바이스의 파형 기능을 결정해야 합니다. 북아메리카 전화 통신에서 지원하는 일반적인 파형 데이터 형식은 초당 8,000개의 샘플에서 8비트 m-law이지만, 웨이브 디바이스 드라이버는 이 샘플 속도와 컴파일을 다른 일반적인 멀티미디어 오디오 형식으로 변환할 수 있습니다.

이후에 파형 API를 사용하여 오디오 재생을 위한 선 디바이스를 열려면 애플리케이션에서 waveOutOpen을 호출합니다. waveOutOpen의 구현은 디바이스에 따라 다릅니다. 이 함수를 구현하기 위한 다양한 옵션이 있습니다.