both the Microsoft Windows 95 and Windows NT/2000 platforms. TAPI 3.0 was released in 1999 together with Windows 2000. This version enables IP telephony (VoIP) by providing simple and generic methods for making connections between two (using H.323) or more (using IP multicast) computers and now also offers the ability to access any media stream (MSP driver) involved in the connection. Windows XP included both TAPI 3.1 and TAPI 2.2. TAPI 3.1 supports the Microsoft Component Object Model and provides a set of COM objects to application programmers. This version uses File Terminals which allow applications to record streaming data to a file and play this recorded data back to a stream. A USB Phone TSP (Telephony Service Provider) was also included which allows an application to control a USB phone and use it as a streaming endpoint. TAPI 3.0 or TAPI 3.1 are not available on operating systems earlier than Windows 2000 and Windows XP respectively. The Telephony Server Application Programming Interface (TSAPI) is a similar standard developed by Novell for NetWare servers. Telephone address format TAPI uses Microsoft canonical address format for telephone numbers to make phone calls. It is a derivative of E.123 international notation. The canonical address is a text string with the following format: +Country␣(AreaCode)␣ SubscriberNumber | Subaddress ^ Name CRLF. Area code, subaddress and name are optional; the latter can carry extension number for direct inward dialing and calling party name, as used by ISDN/E1/T1 telecommunication protocols. Dialing rules are used to transform the canonical phone number into a dialable calling sequence for the modem, depending on the user's location. The dialing rules include variable-length dialing for area code, trunk access and international access prefixes, as well as central office access and calling card/credit card numbers. The calling sequence can contain dialable numbers such as digits 0-9 and DTMF tones ABCD*#, formatting characters ␣ . -, and control characters ! P T , W @ $ ? ; which correspond to the Dial command of the Hayes AT command set. The following control characters are defined: ! - hookflash, i.e. half second on-hook followed by half second off-hook; P - pulse dialing mode; T - tone dialing mode; , - pause dialing (duration specified by the device); W - wait for dial tone; @ - wait for "quiet answer", i.e. the ringback tone followed by several seconds of silence; $ - wait for a