Extended Telephony Services

The API contains a mechanism that allows service-provider vendors to extend the Telephony API using device-specific extensions. Extended Telephony Services (or Device-Specific Services) include all extensions to the API defined by a particular service provider. Because the API defines the extension mechanism only, the definition of the Extended-Telephony Service behavior must be completely specified by the service provider.

TAPI's extension mechanism allows service-provider vendors to define new values for some enumeration types and bit flags and to add members to most data structures. The interpretation of extensions is keyed off the service provider's extension identifier, an identifier for the specification of the set of extensions supported, which may cross several manufacturers. Special functions and messages such as lineDevSpecific and phoneDevSpecific are provided in the API to allow an application to directly communicate with a service provider. The parameters for each function are also defined by the service provider.

Vendors are not required to register in order to be assigned extension identifiers. Instead, a utility called EXTIDGEN (extidgen.exe) is provided within the Microsoft Platform SDK that allows the local generation of extension identifiers. This unique identifier is composed of an Ethernet-adapter address, a random number, and the time of day. An identifier is assigned to a set of extensions (before distribution), not to each individual instance of an implementation of those extensions.