For more information on writing TAPI applications refer to the Win32 SDK online documentation. For more information on writing TAPI service providers refer to the TAPI Service Provider documentation.
Required:
Communications applications that dial, answer, and otherwise control telephone calls on equipment such as modems, ISDN adapters, and telephones must control those calls using the Windows Telephony API (TAPI). This includes online registration of an application. All telephony enabled applications must either use the full TAPI interface or must pass requests to a telephony centric application that does.
Recommended:
In addition to the above requirements, the following behaviors are strongly recommended for all telephony enabled applications:
Required:
Telephony centric applications must use the full Windows Telephony API (TAPI) for telephony-related functions. They must not control telephony-related equipment through proprietary interfaces, drivers, or APIs other than TAPI. In particular, the application must not access a modem by directly opening the serial port using CreateFile (“COMx”), although a “Direct to COMx” mode may be available for accessing non-modem devices.
Required:
Telephony centric applications must apply the user’s Dialing Properties settings to numbers to be dialed. This can be accomplished by passing the number to the lineTranslateAddress function before the call is placed. This number must be in canonical/international form unless the number to be dialed is an internal extension or the user has otherwise explicitly instructed the application to dial the digits “as is” without applying Dialing Properties (they should pass to lineTranslateAddress so that tone/pulse dialing settings can be applied).
Required:
Telephony centric applications must allow the user to select the device to use for calls. The device name can be obtained from the LINEDEVCAPS structure returned by the TAPI lineGetDevCaps function.
Required:
If a telephony centric application is performing extended control functions on a serial device that is also accessible through TAPI (such as a fax application issuing Class 1 or 2 fax AT commands to a fax modem), it must use LINEBEARERMODE_PASSTHROUGH as defined in TAPI rather than opening the serial device directly, so that the device is properly shared with other TAPI apps when not in use. The application must not open the serial device directly using CreateFile.
Required:
If the application uses TAPI 2.x functions, it must either explicitly link to TAPI32.dll (by calling GetProcAddress) or be linked to theTAPI32.lib explicit link library so that it will load on both Windows 95 (TAPI 1.4) and Windows NT 4.0 (TAPI 2.0). The application should gracefully degrade its features so that it works as well as possible within the limitations of TAPI 1.4 when running on Windows 95.
Recommended:
In addition to the above requirements, the following behaviors are strongly recommended for all telephony centric applications: