Freigeben über


Übersicht über TAPI-Dienstanbieter

TAPI-Anwendungen befinden sich in ihrem eigenen Prozessbereich. TAPI-Anwendungen laden die Tapi32.dll oder Tapi3.dll in ihren Prozess, und TAPI kommuniziert mit TAPISRV über eine private RPC-Schnittstelle. Ein TSP wird im Kontext von TAPISRV ausgeführt. Ein bestimmter TSP kann sich auf einem anderen Computer als dem Computer des Benutzers befinden und wird über einen Remote-TSP zugegriffen. TAPISRV wird als Dienstprozess in SVCHOST implementiert. Ein MSP befindet sich im Prozessbereich der Anwendung und ist immer lokal.

Ein TSP/MSP-Paar kann als virtuelles privates Kommunikationspfad angesehen werden. Informationen können zwischen den beiden mit undurchsichtigen Puffern gesendet werden, die weder von TAPISRV noch von der TAPI-DLL interpretiert werden.

Einige Dienstanbieter implementieren Vorgänge, die für die betroffene Hardware spezifisch sind. TAPI 2.x ermöglicht den Zugriff auf solche Vorgänge über die Funktion lineDevSpecific oder phoneDevSpecific . TAPI 3.x macht anbieterspezifische Schnittstellen verfügbar.

Das folgende Diagramm veranschaulicht den Fluss von Steuerelementen und Informationen mit einem eigenständigen TSP (Unimodem) und einem TSP/MSP-Paar (H.323).

eigenständiger tsp- und gekoppelter tsp/msp-Fluss von Steuerung und Informationen

Das folgende Diagramm veranschaulicht den Fortschritt eines eingehenden Anrufs, der sowohl einen TSP als auch einen MSP umfasst.

eingehender Anruf mit einem tsp und einem msp

Einrichtung eingehender Anrufe

  • Der TSP sendet eine LINE_NEWCALL-Nachricht an TAPISRV. Der Anrufstatus ist LINECALLSTATE_OFFERING.
  • TAPISRV benachrichtigt Clients des Anrufs.
  • TAPI3 erstellt das TAPI-Call-Objekt und ruft dann ITMSPAddress::CreateMSPCall auf, das vom MSP implementiert wird.
  • Der MSP erstellt ein MSP-Aufrufobjekt und Standarddatenströme basierend auf den Medientypen , die für den Aufruf erforderlich sind. Es gibt einen IUnknown-Zeiger auf das MSP-Aufrufobjekt zurück.
  • TAPI3 aggregiert das MSP-Aufrufobjekt im TAPI-Aufrufobjekt, sodass Schnittstellen wie ITStreamControl für die Anwendung verfügbar sind. Anschließend wird die Anwendung des neuen Aufrufs benachrichtigt.

Die Anwendung kann dann Methoden wie ITStream::SelectTerminal verwenden, um die Vorbereitungen für den Abschluss des Aufrufs abzuschließen.

Abschluss eingehender Anrufe

  • Die Anwendung ruft ITBasicCallControl::Answer auf.
  • TAPI3 ruft lineAnswer auf.
  • TAPISERV ruft TSPI_lineAnswer auf.
  • Der TSP initiiert das Anrufstreaming. Normalerweise sendet der TSP eine Nachricht an den entsprechenden MSP, und der MSP startet die Streams. In einigen TSP/MSP-Implementierungen startet der TSP die Streams.

TSP/MSP-Kommunikation während des Anruffortschritts

Nachdem der Aufruf ausgeführt wurde, kommunizieren der TSP und der MSP, indem undurchsichtige Puffer über TAPISRV und TAPI3 übergeben werden.

  • Der TSP sendet Informationen an den MSP, indem die LINE_SENDMSPDATA Nachricht an TAPISRV gesendet wird.
  • Der MSP empfängt Informationen vom TSP über die ITMSPAddress::ReceiveTSPData-Methode . Wenn die Daten mit einem MSP-Aufrufobjekt verknüpft sind, wird ein Schnittstellenzeiger auf das MSP-Aufrufobjekt als Parameter dieser Methode bereitgestellt.
  • Der MSP sendet Informationen an den TSP, indem ein MSP_TSP_DATA-Ereignis an TAPI 3 gesendet wird.
  • Der TSP empfängt Informationen vom MSP über die TSPI_lineReceiveMSPData-Funktion .

Der genaue Prozess und Inhalt der Kommunikation zwischen Dienstanbietern ist spezifisch für eine bestimmte TSP/MSP-Gruppe.

Hinweis

Bei ausgehenden Anrufen kennt der MSP in der Regel den Anruf vor dem TSP. Wenn der MSP versucht, mit dem TSP zu kommunizieren, bevor der TSP über einen Anruf informiert wird, schlägt die Kommunikation fehl. Wenn der MSP und der TSP Informationen über einen bestimmten Anruf austauschen müssen, sollte der TSP die Kommunikation initiieren.