共用方式為


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 可透過 lineDevSpecificphoneDevSpecific 函式來存取這類作業。 TAPI 3.x 會公開 提供者特定的介面

下圖說明控件和資訊的流程,其中顯示一個獨立 TSP (Unimodem) 和一個 TSP/MSP 配對 (H.323)。

獨立 tsp 和配對 tsp/msp 控制和資訊流

下圖說明涉及 TSP 和 MSP 的連入呼叫進度。

使用 tsp 和 msp 來電接聽

來電設定

然後,應用程式可以使用像是 ITStream::SelectTerminal 等方法來完成呼叫完成的準備工作。

內送通話完成

  • 應用程式會呼叫 ITBasicCallControl::Answer
  • TAPI3 會執行 lineAnswer 呼叫
  • TAPISERV 會呼叫 TSPI_lineAnswer
  • TSP 會開始呼叫串流。 通常,TSP 會將訊息傳送至對應的 MSP,而 MSP 會啟動數據流。 在某些 TSP/MSP 實作中,TSP 會啟動數據流。

通話進度期間的 TSP/MSP 通訊

呼叫進行之後,TSP 和 MSP 會透過 TAPISRV 和 TAPI3 傳遞不透明緩衝區來進行通訊。

  • TSP 透過將 LINE_SENDMSPDATA 訊息傳送至 TAPISRV,來將資訊傳送給 MSP。
  • MSP 會透過 ITMSPAddress::ReceiveTSPData 方法,從 TSP 接收資訊。 如果數據與 MSP 呼叫物件相關,則會提供 MSP 呼叫物件的介面指標做為該方法的參數。
  • MSP 透過向 TAPI 3 傳送 MSP_TSP_DATA 事件,將資訊傳送至 TSP。
  • TSP 會透過 TSPI_lineReceiveMSPData 函式從 MSP 接收資訊。

服務提供者之間的確切程式和通訊內容是特定 TSP/MSP 集合特有的。

注意

對於外撥電話,MSP 通常會比 TSP 更早知道有這通電話。 如果 MSP 嘗試在通知 TSP 呼叫之前與 TSP 通訊,則通訊將會失敗。 當 MSP 和 TSP 需要交換有關特定呼叫的資訊時,TSP 應該起始通訊。