다음을 통해 공유


TSPI_lineSetTerminal 함수(tspi.h)

TSPI_lineSetTerminal 함수를 사용하면 TAPI가 지정된 줄, 주소 또는 호출과 관련된 터미널 정보를 라우팅할 터미널 정보를 지정할 수 있습니다. 이 작업은 호출이 줄에서 진행 중인 동안 사용하여 필요에 따라 이벤트를 다른 디바이스로 라우팅할 수 있도록 할 수 있습니다.

구문

LONG TSPIAPI TSPI_lineSetTerminal(
  DRV_REQUESTID dwRequestID,
  HDRVLINE      hdLine,
  DWORD         dwAddressID,
  HDRVCALL      hdCall,
  DWORD         dwSelect,
  DWORD         dwTerminalModes,
  DWORD         dwTerminalID,
  DWORD         bEnable
);

매개 변수

dwRequestID

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

hdLine

줄에 대한 핸들입니다.

dwAddressID

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

hdCall

호출에 대한 핸들입니다. 호출 상태는 모든 상태일 수 있습니다( dwSelect 가 LINECALLSELECT_CALL 경우).

dwSelect

줄, 주소 또는 지정된 호출에 대해 터미널 설정을 요청할지 여부를 지정합니다. 줄 또는 주소를 지정하면 이벤트가 줄 또는 주소 자체에 적용되거나 줄 또는 주소의 모든 새 호출에 대한 기본 초기 설정으로 사용됩니다. 이 매개 변수는 LINECALLSELECT_ 상수 중 하나를 사용합니다.

dwTerminalModes

지정된 터미널로 라우팅할 하위 수준 이벤트의 클래스입니다. 이 매개 변수에 LINETERMMODE_ 상수 중 하나를 사용합니다.

dwTerminalID

지정된 이벤트를 라우팅할 터미널 디바이스의 디바이스 식별자입니다. 터미널 식별자는 0에서 dwNumTerminals 에서 1을 뺀 범위의 작은 정수입니다. 여기서 dwNumTerminals 및 각 터미널이 처리할 수 있는 터미널 모드는 LINEDEVCAPS의 서비스 공급자에 의해 표시됩니다.

참고 이러한 터미널 식별자는 다른 디바이스 식별자와 관련이 없으며 디바이스 기능을 통해 서비스 공급자에 의해 정의됩니다. TAPI는 이 함수가 호출되면 이 매개 변수의 유효성을 검사하지 않습니다.
 

bEnable

TRUE이면 dwTerminalID가 유효하고 지정된 이벤트 클래스가 해당 터미널로 라우팅됩니다. FALSE인 경우 이러한 이벤트는 dwTerminalID로 라우팅되지 않습니다. TAPI는 이 함수가 호출되면 이 매개 변수의 유효성을 검사하지 않습니다.

반환 값

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

LINEERR_INVALLINEHANDLE, LINEERR_INVALTERMINALID, LINEERR_INVALADDRESSID, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALCALLHANDLE, LINEERR_NOMEM, LINEERR_INVALCALLSELECT, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALTERMINALMODE, LINEERR_OPERATIONFAILED.

설명

서비스 공급자는 리소스 초과 커밋으로 인해 작업을 완료할 수 없거나 하드웨어 제한 또는 서비스 공급자/디바이스 드라이버 제한으로 인해 너무 많은 터미널이 설정된 경우 LINEERR_RESOURCEUNAVAIL 반환합니다.

TAPI는 이 작업을 사용하여 하위 수준 줄 이벤트의 특정 클래스를 지정된 터미널 디바이스로 라우팅하거나 이러한 이벤트의 라우팅을 완전히 억제할 수 있습니다. 예를 들어 음성을 별도의 오디오 I/O 디바이스(헤드셋)로 라우팅할 수 있고, 램프 및 디스플레이 이벤트를 로컬 휴대폰 디바이스로 라우팅할 수 있으며, 단추 이벤트 및 벨소리 이벤트를 모두 표시하지 않을 수 있습니다.

통화 진행률 톤 및/또는 메시지는 미디어와 동일한 위치로 라우팅됩니다. 예를 들어 오디오 신호가 휴대폰으로 가는 경우 사용 중인 신호(아날로그) 또는 사용 중(디지털)을 나타내는 Q.931 메시지도 마찬가지입니다.

서비스 공급자는 dwSelectdwTerminalModes 의 조합이 합법적인지 여부를 결정해야 합니다.

이 작업은 지정된 회선 디바이스에서 호출이 활성화된 경우에도 언제든지 호출할 수 있습니다. 예를 들어 사용자가 로컬 휴대폰 집합을 사용하는 것을 다른 오디오 I/O 디바이스로 전환할 수 있습니다.

이 함수는 동일한 이벤트를 여러 터미널로 동시에 라우팅하기 위해 여러 번 호출할 수 있습니다. 이벤트를 다른 터미널로 다시 라우팅하려면 TAPI는 애플리케이션이 먼저 기존 터미널에 대한 라우팅을 사용하지 않도록 설정하고 다음으로 이벤트를 새 터미널로 라우팅하는 것이 좋습니다. 그러나 서비스 공급자는 애플리케이션의 요청을 순서대로 수용하기 위해 최선을 다해야 합니다.

터미널 식별자 할당은 서비스 공급자에 의해 수행되며 LINEDEVCAPS 는 서비스 공급자가 사용할 수 있는 터미널 식별자를 나타냅니다. 이러한 유형의 이벤트 라우팅을 지원하지 않는 서비스 공급자는 터미널 디바이스가 없음을 나타냅니다(LINEDEVCAPSdwNumTerminals는 0으로 설정됨).

줄 또는 주소의 LineSetTerminal은 해당 줄 또는 주소의 모든 기존 호출에 영향을 주지만 다른 주소의 호출에는 영향을 주지 않습니다. 또한 해당 줄 또는 주소에서 향후 호출에 대한 기본값을 설정합니다. 한 번에 여러 개의 연결된 호출이 활성화된 줄 또는 주소는 각 호출에 대해 서로 다른 라우팅을 적용할 수 있습니다.

이러한 이벤트가 현재 해당 터미널로 라우팅되지 않는 경우 하위 수준 이벤트를 터미널로 라우팅하지 않도록 설정하면 함수가 성공한 후 지정된 이벤트가 해당 터미널로 라우팅되지 않는 한 오류를 생성할 필요가 없습니다.

요구 사항

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

추가 정보

ASYNC_COMPLETION

LINECALLSELECT_ 상수

LINETERMMODE_ 상수