[an error occurred while processing this directive]


Exploring 2000 -
Bells and whistles (Sep 1999)
Bob Walder looks at Windows 2000 and telephony

[an error occurred while processing this directive]
This article is based on NT 5.0, Beta 3.

What do most corporate employees have on their desks these days? Chances are – apart from the still obligatory pen and paper – they will all have a PC and a telephone.


Both will be connected to a network of one kind or another. The PC will be connected to the data network, the centre of which is the file server. The telephone will be connected to the voice network, the centre of which is the PBX. With so many of us using both devices constantly, wouldn’t it be nice if they could be tied together somehow? For instance, as a call comes in to your telephone, it would be nice to see the number of the caller pop-up on your PC screen. Even better if a telephony application on your PC used that number to look-up in your customer database, find a match, and display the relevant customer record automatically as the phone begins to ring.

As telephony and call control become more common in the desktop computer, a general telephony interface is needed to enable applications to access all the telephony options available on any machine. Additionally, it is imperative that the media or data on a call is available to applications in a standard manner. IP Telephony is a demand poised for explosive growth, as organisations begin an historic shift from expensive and inflexible circuit-switched public telephone networks to intelligent, flexible and inexpensive IP networks. Windows 2000 includes a robust computer telephony infrastructure that is now in its third major version. The Telephony Application Programming Interface (TAPI) provides a uniform set of commands for any supported telephony device that is connected to your computer.


TAPI 3.0 is an architecture that provides simple and generic methods for making connections between two or more machines, and accessing any media streams involved in that connection. It abstracts call-control functionality to allow different, and seemingly incompatible communication protocols to expose a common interface to applications. When you use a Windows program to send faxes, connect to a telephone, make a call using IP, join a conference, or perform other TAPI-supported activities, there are three layers of software that enable you to use a telephony device: the application program, TAPI, and a TAPI service provider.

  • The application program enables you to make phone calls, send and receive data or faxes, or join conferences. Examples include Phone Dialler, HyperTerminal, and Microsoft Fax. In contrast to TAPI 2.1, the TAPI 3.0 API is implemented as a suite of Component Object Model (COM) objects. Moving TAPI to the object-oriented COM model allows component upgrades of TAPI features. It also allows developers to write TAPI-enabled applications in any language, such as Java, Visual Basic, or C/C++.
  • TAPI provides telephony functions for application programs, such as dialling.
  • A TAPI service provider translates the commands for a specific computer telephony device.

Microsoft and independent software vendors provide application programs that incorporate TAPI functionality. These are the TAPI service providers installed with Windows and other service providers provided by independent hardware vendors for specific telephony devices. In place of proprietary solutions that are difficult and expensive to implement, TAPI provides a single set of commands allowing hardware and software to come from different sources. When a telephony application requests an action, TAPI determines which TAPI service provider supports the device, and the service provider sends the appropriate commands to the device.

For example, the Unimodem 5 Service Provider is installed with Windows 2000. When a program wants to dial a phone number, TAPI sends the appropriate commands to the Unimodem 5 Service Provider, and the service provider sends the correct sequence of commands for dialling the number on the particular modem attached to the computer. The application program does not need to know anything about the modem.

As with OS/2 before it, Windows NT has always been a popular platform for telephony applications. With TAPI, Windows 2000 provides an even more advanced telephony platform. Windows is the operator that interconnects computer and telephony resources to direct and manage calls. TAPI-based software can provide solutions ranging from complete small or home office systems to PBX front ends integrating an organisation’s computer and telephone networks.

How TAPI makes resources available to users

On a Windows 2000 network, a hardware interface adapter on a server connects the LAN to a public or private telephone network. The adapter is supported by a TAPI service provider. Programs running on the server provide calling features such as conferencing, transferring, forwarding, holding, and automatic redialling. The server controls the calls going through the network and out onto the PBX. Network users make calls using lines. They may also use phones for call management and control, and these are both supported by the TAPI service providers. A telephony administrator makes telephony resources on a server, such as lines and phones, available to users.

Lines - In Telephony, a line is any media stream (data, voice, or video) supported by a TAPI service provider. For a modem, the line represents an actual telephone line. For other devices, it can represent another media stream, such as a gateway to the Internet. Calls are made using a line provided by a TAPI service provider. A single line can support more than one call at a time, such as with call waiting and conferencing. The TAPI service provider determines how physical devices are represented by TAPI lines.

Phones - A phone in TAPI represents terminal equipment that is supported by a TAPI service provider. In TAPI, a "phone" closely models a physical telephone, but may not be actual hardware. It includes the concepts of a hook switch, handset, speaker, microphone, display, lamps, and programmable buttons. As with an actual telephone on your desk, a phone may be used without actually making calls to someone else. For example, you can use a telephone handset to listen to or retrieve voice mail messages.

A phone does not have to represent actual hardware, but can be emulated in software. For instance, this type of phone might be an application that uses TAPI or a TAPI service provider. A physical phone is not required to manage a media stream and, although all TAPI service providers support lines, not all TAPI service providers support phones.

Other TAPI Applications

Besides supporting classic telephony providers, TAPI 3.0 supports standard H.323 conferencing and IP multicast conferencing. TAPI 3.0 utilises the Windows 2000 Active Directory service to simplify deployment within an organisation, and it supports quality of service (QoS) features to improve conference quality and network manageability.

H.323 - This is a comprehensive International Telecommunications Union (ITU) standard for multimedia communications (voice, video, and data) over connectionless networks that do not provide a guaranteed quality of service, such as IP-based networks and the Internet. It provides for call control, multimedia management, and bandwidth management for point-to-point and multipoint conferences.

H.323 allows multimedia streaming over current packet-switched networks. To counter the effects of LAN latency, H.323 uses as a transport the Real-time Transport Protocol (RTP), an IETF standard designed to handle the requirements of streaming real-time audio and video over the Internet.

IP Multicast – This is an extension to IP that allows for efficient group communication. IP Multicast arose out of the need for a lightweight, scalable conferencing solution that solved the problems associated with real-time traffic over a datagram, "best-effort" network. There are many advantages to using IP Multicast: scalability, fault tolerance, robustness, and ease of set-up.

Quality of Service - In contrast to traditional data traffic, multimedia streams, such as those used in IP Telephony or videoconferencing, may be extremely bandwidth and delay sensitive, imposing unique quality of service (QoS) demands on the underlying networks that carry them. Unfortunately, IP, with a connectionless, "best-effort" delivery model, does not guarantee delivery of packets in order, in a timely manner, or at all. In order to deploy real-time applications over IP networks with an acceptable level of quality, certain bandwidth, latency, and jitter requirements must be guaranteed, and must be met in a fashion that allows multimedia traffic to coexist with traditional data traffic on the same network.

QoS in TAPI 3.0 is handled through the DirectShow RTP filter, which negotiates bandwidth capabilities with the network based on the requirements of the DirectShow codecs associated with a particular media stream.

How TAPI supports telephony

Through TAPI, Windows 2000 supports computer-telephony integration, from simple small office or home-based solutions to full-scale, enterprise-wide solutions. Low-level solutions enable an individual to use telephony, for instance, to:

  • Use a computer as an answering machine or voice mailbox.
  • Use a computer to send and receive faxes.
  • Use a microphone and speaker or a speakerphone connected to a multimedia computer as a phone system.
  • Log on to a computer from a remote location.

These solutions are typically supported by a direct connection from a desktop computer to a phone line with a modem. Enterprise wide solutions rely on a network and enable an organisation to:

  • Use a computer either as a multi-line phone system or as a multifunction PBX controller.
  • Provide a voice-mail system across the enterprise.
  • Provide a fax system across the enterprise.
  • Provide on-demand audio information services that allow callers to retrieve pre-recorded or computer-generated text-to-speech information
  • Fax information to customers on demand, based on touch-tone keys or other input.
  • Implement automatic, list-based dialling for telemarketing.
  • Deliver database information related to a call (such as a customer profile or account information) at the same time it is switched to a desktop.
  • Create a single, easy-to-use client application to manage all communications, such as voice, pager, email, and conferencing.
  • Provide dial-up access to the network.

[an error occurred while processing this directive]