[This is preliminary documentation and subject to change.]
A terminal object represents the sink or renderer at the termination or origination point of a connection. The terminal object can map to hardware used for human interaction, such as a telephone or microphone, but can also be a file or any other device capable of receiving input or creating output.
A terminal object allows the user to select the devices used and perhaps to provide a common way to control them (such as audio or video controls). If the application does not want TAPI 3.0 to set up the terminal (or sink), it has the option of not specifying a terminal. This is only applicable if one or more media streams used during the call are set up with DirectShow. In that case, the application is responsible for handling any terminal issues.
Each terminal belongs to a terminal class. A terminal class represents a specific type of terminal, such as a handset or soundcard. TAPI 3.0 defines certain terminal classes, and new terminal classes can be registered. Defined terminal classes include handset, headset, soundcard, monitor, camera, and file. See Terminal Classes for current definitions. Each terminal class is assigned a globally unique identifier (GUID).
Terminal classes can be either STATIC or DYNAMIC. A STATIC terminal usually corresponds to hardware – a single device that already exists, and cannot be created "on the fly". A DYNAMIC terminal represents a terminal that can be created, such as a file or a network connection.
Terminals support DirectShow by default. The IsStandardTerminal method of the ITTerminal interface can be used to determine if the terminal supports DirectShow. A non-standard terminal with no DirectShow support cannot manipulate the media stream from TAPI 3.0.
TAPI 3.0 defines a base audio terminal interface and a base video terminal interface. These interfaces have core methods, such as put_Volume, to control the terminal. Applications using DirectShow may control the terminal directly through the DirectShow interfaces.
If the application does not select a default terminal device for each media type it supports, TAPI 3.0 can select one.