Platform SDK: TAPI

Call Scenario Using A TSP/MSP Pair

The following diagram illustrates the progress of an incoming call that involves both a TSP and an MSP.

Incoming Call Setup

  1. The TSP sends a LINE_NEWCALL message to TAPISRV. The call state is LINECALLSTATE_OFFERING.
  2. TAPISRV notifies clients of the call.
  3. TAPI3 creates the TAPI Call object, then calls ITMSPAddress::CreateMSPCall, which is implemented by the MSP.
  4. The MSP creates an MSP Call object and default streams based on the media types required for the call. It returns an IUnknown pointer to the MSP call object.
  5. TAPI3 aggregates the MSP Call object into the TAPI Call object, making interfaces such as ITStreamControl available to the application. It then notifies the application of the new call.

The application may then use methods such as ITStream::SelectTerminal to complete preparations for call completion.

Incoming Call Completion

TSP/MSP Communication During Call Progress

Once the call is in progress, the TSP and the MSP communicate by passing opaque buffers through TAPISRV and TAPI3.

The exact process and content of communication between service providers is specific to a given TSP/MSP set.

Note  For outgoing calls, the MSP typically knows about the call before the TSP. If the MSP tries to communicate with the TSP before the TSP is informed about a call, the communication will fail. When the MSP and the TSP need to exchange information concerning a specific call, the TSP should initiate communication.