TAPI 서비스 공급자 개요

TAPI 애플리케이션은 자체 프로세스 공간에 상주합니다. TAPI 애플리케이션은 Tapi32.dll 또는 Tapi3.dll 프로세스에 로드하고 TAPI는 프라이빗 RPC 인터페이스를 통해 TAPISRV와 통신합니다. TSP는 TAPISRV의 컨텍스트에서 실행됩니다. 지정된 TSP는 사용자의 컴퓨터가 아닌 컴퓨터에 상주할 수 있으며 원격 TSP를 사용하여 액세스할 수 있습니다. TAPISRV는 SVCHOST 내에서 서비스 프로세스로 구현됩니다. MSP는 애플리케이션의 프로세스 공간 내에 있으며 항상 로컬입니다.

TSP/MSP 쌍은 가상 프라이빗 통신 경로를 갖는 것으로 간주될 수 있습니다. TAPISRV 또는 TAPI DLL로 해석되지 않는 불투명 버퍼를 사용하여 둘 사이에 정보를 보낼 수 있습니다.

일부 서비스 공급자는 관련된 하드웨어와 관련된 작업을 구현합니다. TAPI 2.x는 lineDevSpecific 또는 phoneDevSpecific 함수를 통해 이러한 작업에 대한 액세스를 제공합니다. TAPI 3.x는 공급자별 인터페이스를 노출합니다.

다음 다이어그램에서는 독립 실행형 TSP(Unimodem) 하나와 TSP/MSP 쌍 1개(H.323)를 보여 주는 컨트롤 및 정보의 흐름을 보여 줍니다.

제어 및 정보의 독립 실행형 tsp 및 쌍을 이루는 tsp/msp 흐름

다음 다이어그램은 TSP와 MSP를 모두 포함하는 들어오는 호출의 진행률을 보여 줍니다.

tsp 및 msp를 사용하여 수신 호출

수신 전화 설정

  • TSP는 LINE_NEWCALL 메시지를 TAPISRV로 보냅니다. 호출 상태가 LINECALLSTATE_OFFERING.
  • TAPISRV는 호출을 클라이언트에 알릴 수 있습니다.
  • TAPI3은 TAPI Call 개체를 만든 다음, MSP에 의해 구현되는 ITMSPAddress::CreateMSPCall을 호출합니다.
  • MSP는 호출에 필요한 미디어 형식 에 따라 MSP Call 개체 및 기본 스트림을 만듭니다. MSP 호출 개체에 대한 IUnknown 포인터를 반환합니다.
  • TAPI3은 MSP Call 개체를 TAPI Call 개체에 집계하여 ITStreamControl 과 같은 인터페이스를 애플리케이션에서 사용할 수 있도록 합니다. 그런 다음 새 호출의 애플리케이션을 알 수 있습니다.

그런 다음, 애플리케이션은 ITStream::SelectTerminal 과 같은 메서드를 사용하여 호출 완료를 위한 준비를 완료할 수 있습니다.

수신 호출 완료

통화 진행 중 TSP/MSP 통신

호출이 진행되면 TSP와 MSP는 TAPISRV 및 TAPI3을 통해 불투명 버퍼를 전달하여 통신합니다.

  • TSP는 LINE_SENDMSPDATA 메시지를 TAPISRV로 보내 MSP에 정보를 보냅니다.
  • MSP는 ITMSPAddress::ReceiveTSPData 메서드를 통해 TSP 에서 정보를 받습니다. 데이터가 MSP 호출 개체와 관련된 경우 MSP 호출 개체에 대한 인터페이스 포인터가 해당 메서드의 매개 변수로 제공됩니다.
  • MSP는 MSP_TSP_DATA 이벤트를 TAPI 3으로 전송하여 TSP에 정보를 보냅니다.
  • TSP는 TSPI_lineReceiveMSPData 함수를 통해 MSP로부터 정보를 받습니다.

서비스 공급자 간의 정확한 통신 프로세스 및 콘텐츠는 지정된 TSP/MSP 집합과 관련이 있습니다.

참고

발신 호출의 경우 MSP는 일반적으로 TSP 이전의 호출에 대해 알고 있습니다. TSP가 호출에 대해 알리기 전에 MSP가 TSP와 통신하려고 하면 통신이 실패합니다. MSP 및 TSP가 특정 호출과 관련된 정보를 교환해야 하는 경우 TSP는 통신을 시작해야 합니다.