다음을 통해 공유


이벤트 라우팅

lineSetTerminal 함수를 사용하면 애플리케이션이 지정된 하위 수준 이벤트(스위치와 스테이션 간에 교환됨)의 라우팅을 제어하거나 표시하지 않을 수 있습니다. lineSetTerminal사용하여 애플리케이션은 이러한 이벤트(예: 줄, 주소 또는 호출 미디어 스트림 이벤트)가 라우팅되는 터미널 디바이스를 지정합니다.

다양한 이벤트 클래스의 라우팅을 개별적으로 제어하여 각 이벤트 클래스에 대해 별도의 터미널을 지정할 수 있습니다. 이벤트 클래스에는 램프, 단추, 디스플레이, 벨소리, 후크위치 및 미디어 스트림이 포함됩니다.

예를 들어 서비스 공급자와 하드웨어에서 수행할 수 있는 경우 호출의 미디어 스트림(예: 음성)을 모든 트랜스듀서 디바이스로 보낼 수 있습니다. 일반적으로 트랜스듀서 TAPI의 후크위치 디바이스라고 하는 것과 같으며 마이크와 스피커가 있습니다. 스위치에서 휴대폰으로의 링 이벤트는 컴퓨터 화면의 시각적 경고에 매핑되거나 휴대폰 디바이스로 라우팅될 수 있습니다. 램프 이벤트 및 표시 이벤트는 무시하거나 휴대폰 디바이스로 라우팅할 수 있습니다(일반 전화 세트로 동작하는 것으로 표시됨). 마지막으로 휴대폰 장치에서 단추를 누르면 줄에 전달되거나 전달되지 않을 수 있습니다. 어떤 경우에도 이 줄에서 낮은 수준의 신호를 라우팅해도 TAPI의 선 부분에 영향을 주지 않으며, 이는 항상 하위 수준 이벤트를 해당 기능과 동등한 수준으로 매핑합니다. 라인 디바이스에서 사용할 수 있는 터미널 및 해당 기능을 확인하려면 lineGetDevCaps줄 디바이스의 기능을 참조하세요.

처음에는 애플리케이션이 모든 이벤트의 라우팅(lineSetTerminal사용)을 표시하지 않았으며 사용자가 헤드셋을 현재 I/O 디바이스로 선택한다고 가정합니다. 들어오는 호출은 LINE_CALLSTATE 메시지와 울리는 표시가 있는 LINE_LINEDEVSTATE 메시지를 보냅니다. 모든 이벤트의 라우팅이 표시되지 않으므로 링 이벤트는 휴대폰으로 라우팅되지 않으므로 벨소리가 표시되지 않습니다. 대신, 애플리케이션은 팝업 대화 상자와 헤드셋의 시스템 경고음으로 사용자에게 알립니다.

사용자가 통화에 응답하기로 결정합니다. 사용자의 현재 I/O 디바이스는 헤드셋이므로 전화 통신 애플리케이션은 수신 통화에서 lineSetTerminal 호출하여 통화 미디어를 헤드셋으로 라우팅하고 통화에 응답합니다. 또한 애플리케이션은 lineSetTerminal 호출하여 램프를 라우팅하고 정보 이벤트를 휴대폰 세트로 표시하여 평소와 같이 동작할 수 있습니다.

두 번째 예제에서는 들어오는 호출이 사용자의 컴퓨터에서 경고를 표시한다고 가정합니다. 사용자는 마우스로 응답 옵션을 선택하는 대신 휴대폰의 핸드셋을 선택하여 통화에 응답하기로 결정합니다. 휴대폰의 offhook 상태는 애플리케이션에 메시지를 보냅니다. 애플리케이션은 사용자가 대화를 수행할 전화 핸드셋을 선택하라는 요청으로 이 상태를 해석할 수 있습니다. 그런 다음 애플리케이션은 lineSetTerminal 호출하여 통화 시 음성 데이터를 전화 세트로 라우팅합니다.