A service provider can extend TAPI using device-specific extensions. The service provider must uniquely identify the extensions by using an extension identifier. Applications retrieve and use this unique identifier to determine what extensions the service provider supports.
The extensions can apply to several manufacturers. Special functions and messages such as lineDevSpecific and phoneDevSpecific are provided in TAPI. They are used to allow the extension of the set of functions (in contrast to enumerations, bit flags, and data structure members) supported by the service provider. The parameters for each function are also defined by the service provider.
An identifier is assigned to a set of extensions (before distribution), not to each individual instance of an implementation of those extensions. The EXTIDGEN utility in TSPI generates unique extension identifiers for service providers. It uses an Ethernet-adapter address, a random number, and the time of day to generate an identifier, so it is extremely unlikely that the resulting extension identifier will conflict with any other service provider. As a result, there is no need for vendors to register extension identifiers.
The EXTIDGEN utility does not generate extension identifiers unless the computer on which it is run is also running NetBIOS or other network software.