Internet Telephony with H.323
H.323 is an ITU-T protocol that is used to provide voice and video services over data networks. At the most basic level, H.323 allows users to make point-to-point audio and video phone calls over the intranet. The Microsoft implementation also allows voice-only calls to be made to conventional phones using IP-PSTN Gateways, and audio-video calls to be made over the Internet. For more information about H.323, see the link to the International Telecommunication Union Web site on the Web Resources page http://windows.microsoft.com/windows2000/reskit/webresources .
Placing H.323 Calls with the Dialer
The TAPI Phone Dialer application can be used to place H.323 audio and video calls over IP networks. The dialing user interface allows called parties to be identified in numerous ways. Frequently called users can be added to speed dial lists. The Dial dialog box can also be used to place calls by specifying the computer name or IP address of the computer on which the called party's H.323 application is running.
After resolving the caller's identification to the IP address of the computer on which he/she is available, the dialer makes TAPI calls, which are routed to the Microsoft H.323 Telephony Service Provider. The service provider then initiates H.323 protocol exchanges to set up the call. The Media Service Provider associated with the H.323 TSP uses audio and video resources available on the computer to connect the caller and party receiving the call in an audio or audio/video conference.
The Windows Address Book can also be used to place H.323 Internet Telephony calls using the dialer.
To place H.323 Internet Telephony calls using the dialer
Run WAB. Create a new contact and fill in the information fields.
Click Properties , and then click the Business tab; enter the user's name, e-mail address, computer name, or IP address.
To place a call to a user, click Start and point to Programs , Accessories , and AddressBook .
Right-click on the entry in the Windows Address Book .
Select Action , and then select Dial .
This invokes the Phone Dialer, which places the call.
Receiving H.323 Calls
The TAPI Phone Dialer also has the capability to listen for incoming H.323 IP Telephony calls, notify the user when such calls are detected, and accept or reject the calls based upon the user's choice. To enable this functionality, the Phone Dialer application must always be running. The dialer can be minimized into an icon on the system tray for ease of use.
Using Windows 2000 Directory Services
Windows 2000 provides a set of directory services that allow telephone calls to be made by specifying individuals by name rather than their phone numbers or IP addresses. TAPI provides services that search the Windows 2000 directory to translate user names or e-mail addresses into respective telephony addresses, and then places calls to those addresses.
Two different directory services can be used with TAPI applications running on Windows 2000.
Active Directory ™ directory service is a recent Windows 2000 feature that provides scalable, centrally administered, automatically replicated, and persistent storage. It is used to store various attributes of information in a set of objects that represent the resources available on the network. TAPI utilizes the IPPhone attribute of User objects to store information about the computer name or IP Address on which the specific user is available for H.323 Internet telephony calls.
The Phone Dialer application automatically locates the user object for the logged in user, and updates the IPPhone attribute. When other users attempt to place calls to the user, the Rendezvous object inside TAPI performs a directory search to translate the user's name or e-mail address to his computer name or IP address. The application can then use the H.323 TSP, and specify the IP address to place the call.
The Microsoft® Site Server ILS Service is another directory service that can be used with TAPI applications on Windows 2000–based computers. This service is distinct from Active Directory in that it is less scalable, and does not provide persistent, centrally-administered data storage. The TAPI Phone Dialer creates a user object on the Site Server ILS Service when the application starts up, and places the user's IP address inside it in a form that is compatible with NetMeeting. This can be used by the Phone Dialer and other TAPI applications to place calls to the user by specifying his name or e-mail address. The advantage of using the Site Server ILS Service is that it allows NetMeeting users to view users of TAPI applications and place calls to them by simply double-clicking their names from the directory view pane of NetMeeting.
The Microsoft H.323 TSP and MSP together implement an H.323 version 1.0 protocol stack. The protocol consists of three layers of individual signaling protocols:
Registration, Admission, and Status
Registration, Admission, and Status
Registration, Admission, and Status uses UDP ports 1718 and 1719 for discovery, registration, and call admission requests between Gatekeepers and H.323 applications. This layer is optional, and is not currently implemented by the Microsoft H.323 Telephony Service Provider in Windows 2000.
Q.931 uses TCP port 1720 for call setup, alerting, tear down, and other connection oriented signaling. This signaling layer relies on the knowledge of caller's IP address, which is provided by the TAPI Rendezvous control COM object using Windows 2000 directory services. This layer is supported by the Microsoft H.323 Telephony Service Providers.
H.245 uses dynamic TCP ports for media-oriented signaling, such as negotiating media types and setting up media channels. This layer is supported by the Microsoft H.323 Telephony Service Providers.
Media Streams with RTP
H.323 makes use of the IETF Real-Time Transport Protocol (RTP)for transferring digitized audio and video data between the various parties participating in a call. This protocol utilizes dynamic UDP ports negotiated between the sender and receiver of specific media streams. Each RTP packet contains one or more media payloads, and other relevant information such as timestamps and sequence numbers. TAPI 3.0 incorporates an implementation of the RTP protocol stack.
Audio and Video Codecs
Audio and video codecs are used to compress digitized audio and video signals before transmission by the sender, and then decompress them on the receiving computer before they are played for the user. The effect of this compression-decompression operation is that network bandwidth utilization is reduced and traffic load on the network is minimized.
The Microsoft H.323 Media Service Provider uses G.711 and G.723.1 codecs for audio signals, and H.261 and H.263 codecs for video signals.
Figure 15.2 illustrates how codecs are used for video compression and decompression.
Figure 15.2 Codecs Used for Video Compression and Decompression
Calling Through IP-PSTN Gateways
The H.323 protocol incorporates support for placing calls from data networks to the switched circuit PSTN network, and vice versa. The main advantage is that the long-distance portion of the call can be carried on private or public data networks, and the call can then be placed onto the switched voice network to bypass long-distance toll charges.
For example, a user in a Seattle branch office could call Boston, with the phone call going across the corporate network from branch office Seattle to a branch office in Boston, where it would then be switched to a PSTN network to be completed as a local call. This is especially effective in cases where enterprises own private WAN links to their subsidiaries and branch offices. These can be used to carry audio signals in addition to data, and result in lower long-distance telephone bills paid by the company.
The H.323 TSP provides support for Gateway (a bridge from IP to PSTN) calling through the use of a static configuration option, accessible through Phone and Modem Options in Control Panel .
To specify the IP address of the IP-PSTN Gateway
From the Start menu, point to Settings , and then click Control Panel .
Double-click Phone and modem options .
Click the Advanced tab, and then select the Microsoft H.323 Telephony Service Provider.
Click Configure . Select the Use H.323 Gateway check box and type the computer name or IP address of the IP-PSTN Gateway in the text box.
Users can specify the IP address or computer name of an IP-PSTN Gateway through which all IP-PSTN calls are routed by the H.323 TSP. The IP-PSTN Gateway is expected to be running an ITU-T H.323 v1.0 interoperable H.323 application.
Figure 15.3 provides an example of a PSTN Gateway.
Figure 15.3 PSTN Gateway
Calling Through Firewalls
H.323 calls cannot pass through firewalls based on simple network address translation (NAT) solutions due to the complexity of H.323. Special application layer proxy servers are required in order to make and receive calls between computers on networks separated by firewalls.
Many enterprises choose to erect firewalls between their private corporate intranets and the Internet for security reasons. This has the effect of complicating the passage of H.323 based Internet telephone calls across the Internet.
The Microsoft H.323 TSP incorporates support for firewall traversal. Phone and Modem Options (in Control Panel) can be used to specify the inner IP address of the firewall computer. This allows calls to be made and received across the Internet.
To specify the IP address of the H.323 Proxy
From the Start menu, point to Settings , and then select Control Panel .
Double-click Phone and modem options .
Click the Advanced tab, and select the Microsoft H.323 Telephony Service Provider.
Click Configure . Select the Use H.323 Proxy check box and type the computer name or IP address of the inner edge of the H.323 proxy/firewall computer in the text box.
Calling Through Gatekeepers
Gatekeepers are useful tools for managing IP Telephony clients and providing address resolution, call routing, call logging, and other services. The current implementation of H.323 Service Provider does not include support for making H.323 calls using Gatekeepers.
Quality of Service Support
TAPI includes quality of service (QoS) support to improve conference quality and network manageability. QoS can be supported on ATM networks as well as on packet-based networks such as the Internet.
QoS information in TAPI is exchanged between applications and service providers in FLOWSPEC structures that are defined in Windows Sockets 2.0. Support for QoS is not restricted to ATM transports; any service provider can implement QoS features.
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. These requirements are indicated to the RTP filter by the codecs through its own QoS interface. The RTP filter then uses the COM Winsock2 GQoS interfaces to indicate its QoS requirements to the Winsock2 QoS service provider (QoS SP). The QoS SP, in turn, invokes a number of varying QoS mechanisms appropriate for the application, the underlying media, and the network, in order to guarantee appropriate end-to-end QoS. These mechanisms include:
The Resource Reservation Protocol (RSVP) for providing QoS over non-ATM networks. RSVP is a signaling protocol which enables the sender and receiver in a communication session to set up a reserved QoS highway between them. The RSVP message carries the reservation request to each router and switch along the communication path between the sender and receiver.
Local Traffic Control, a QoS mechanism for reducing delay and latency in the transmission of network traffic, and for providing traffic control for networks which do not comply with RSVP such as legacy networks, broadcast networks or over-provisioned networks.
Packet Scheduling, which manages the queues set up by the packet classifier. It retrieves the packets from the queues and sends them across the QoS-reserved highway.
802.1p, which defines a mechanism by which traffic can be handled at a certain priority within LANs. It includes an implicit signaling mechanism and special traffic handling mechanisms in the LAN devices. Typically, hosts or routers which are sending traffic into a LAN mark submitted packets with the appropriate priority values. Thus, the hosts or routers use 802.1p to signal a priority to LAN devices. LAN devices, such as switches, bridges and hubs are expected to treat the packets accordingly.
For more information about QoS, see "Quality of Service" in the TCP/IP Core Networking Guide .