Default Terminal Selection Mechanism
The concept of multitrack terminal makes it even more desirable for TAPI to provide a simplified method of selecting a terminal on a stream or streams. The Default Terminal Selection mechanism is designed to address this.
Selecting a Terminal on a Call
The Default Terminal Selection feature is provided via the ability to select a terminal on a call.
The call object exposes a new interface, ITBasicCallControl2. The interface exposes the same methods as ITBasicCallControl, plus three new methods: RequestTerminal, SelectTerminalOnCall, and UnselectTerminalOnCall.
ITBasicCallControl2::RequestTerminal creates a terminal, given the terminal class, direction, and media type. It looks through the lists of supported static and dynamic terminals to find and create the requested terminal.
ITBasicCallControl2::SelectTerminalOnCall selects the terminal (or, in the case of a multitrack terminal, enumerates, creates if needed, and selects the track terminals) on the stream (or streams) available on the call.
The algorithm for matching call streams to the terminal (or tracks available on the terminal) is described in the documentation for ITBasicCallControl2::SelectTerminalOnCall.
Calling ITBasicCallControl2::UnselectTerminalOnCall causes the terminal (single-track or multitrack) to be unselected from the call. See the method's documentation for more details.
Selecting a Terminal on ITStream
Selecting a single-track terminal on ITStream (by calling ITStream::SelectTerminal) selects the terminal on the stream. This is the usual TAPI 3 terminal selection procedure.
Only single-tracks terminals can be selected on a stream. Selecting a multitrack terminal on a stream will fail, because the stream will not recognize the media type and direction.