Often, H.323 is considered to be just the call signalling element of a multimedia call, responsible for setting up and clearing down calls. Clearly, the scope of H.323 is much broader. This document attempts to offer a summary H.323.
H.323 defines a number of elements (or H323 Entities) that are required for multimedia transmission. Some elements are mandatory; some are optional. Often, these entities are implemented in software and it can be possible to have more than one entity installed on a single computer. The most important elements are listed below:
- H323 Gatekeeper
- A gatekeeper is an optional entity. One of its purposes is to provide basic Admission Control onto a network by authorising (or refusing) communications between other H.323 entities within its zone of control. It also provides an address translation service. DUAL Gatekeeper is example of an H323 gatekeeper that additionally provides a multimedia proxy solution.
- H323 Gateway
- A gateway provides a protocol conversion service between H.323 terminals and other terminals that do not support H.323. For example, a gateway may route voice over IP calls from an H323 terminal onto the public switched telephone network (PSTN) thus allowing regular telephone calls to be placed from an H323 client such as NetMeeting.
- H323 Multipoint Control Unit
- An MCU provides services that allow three or more endpoints to take part in a conference call. An MCU comprises a Multipoint Controller for handling call control and optional Multipoint Processors for handling the media exchange (voice, video etc.) in a conference.
- H323 Terminal
- An H.323 Terminal is an endpoint on a network which provides for real-time, two-way communications with another H.323 terminal, Gateway or Multipoint Control Unit. A terminal may provide speech only, speech and data, speech and video, or speech, data and video.
Overview of protocols
- H.323 ties together a number of other protocols defined by the I.T.U. or the I.E.T.F. Some of these protocols are discussed in more detail in this document:
- G.7xx codecs
- This series of recommendations define the way in which analogue voice signals may be translated to a digital form and optionally compressed in bandwidth. Examples include G.711 and G.729.
- H.26x codecs
- These recommendations define methods for digitising analogue video signals.
- This protocol has two purposes. If an optional gatekeeper entity exists in a network, then H.225.0 defines the means by which a terminal may register with that gatekeeper and seek admission to the network. Even if a gatekeeper is not present, H.225.0 defines the way in which endpoints communicate with each other to setup or clear down calls. In the latter case, H.225.0 is used in conjunction with Q.931.
- Having established a connection between two endpoints using H.225.0 and Q.931, H.245 is used between the terminals (or other endpoints) to establish the logical channels through which the media will transmitted.
- Q931 is a a call signalling protocol used extensively in ISDN networks for setting up and clearing down calls. Q.931 is also used for establishing H323 calls. H.225.0 call control messages are embedded within the user-to-user elements of Q931 messages to provide additional information not available in Q.931 such as IP address information.
- RTP is the protocol used to provide timing and synchronisation for digitised voice and video being transmitted through a packet network. When transmitted through an IP network, RTP relies on the lower layer UDP protocol to transport it through a network between computer applications. RTP is not discussed further in this document, but there is a white paper available that describes the IP/UDP/RTP protocols.
- RTCP is closely related to RTP. It defines a protocol mechanism for terminals to provide feedback regarding the quality of media received using RTP. RTCP is transmitted using UDP between dynamically allocated sockets.
- T.120 defines a means of exchanging data during a multimedia call. Applications may include file transfer, chat, application sharing and whiteboarding. T.120 is transmitted using a number of TCP channels.
H.225.0 - RAS
- If an optional gatekeeper entity is present in a network, then H.225.0 defines the RAS (Registration, Admission and Status) messages that are used to communicate with that gatekeeper. H.225.0 RAS messages are transmitted using UDP on ports 1718 and 1719. Although not extensive, there follows a list of some of the defined messages:
- RegistrationRequest (RRQ)
- This message is sent to a gatekeeper by an endpoint to request that the endpoint be registered and become under the control of that gatekeeper.
- RegistrationConfirm (RCF)
- A positive reply from a gatekeeper to a RegistrationRequest message.
- RegistrationReject (RRJ)
- A negative reply to a RegistrationRequest message.
- AdmissionRequest (ARQ)
- A request from an endpoint to a gatekeeper for permission to participate in a call. The gatekeeper formulates its reply based on several factors, including the availability of bandwidth in the network.
- AdmissionConfirm (ACF)
- A positive response from a gatekeeper to an AdmissionRequest message.
- AdmissionReject (ARJ)
- A negative response to an AdmissionRequest message.
- LocationRequest (LRQ)
- This message is sent to a gatekeeper to request its address translation service.
- InfoRequest (IRQ)
- This message is sent from a gatekeeper to request status information of its recipient.
- H.225.0 RAS messages are defined using the ASN.1 notation (X.680). The messages are encoded for transmission using the aligned variant of PER (Packet Encoding Rules) as defined in X.691. The result is a complicated but compact encoding that is not humanly readable.
H.225.0 - Call signalling (including Q.931)
Once the optional gatekeeper admission process has been successfully completed, Q.931 is used set to set up and tear down calls through a network. Q.931 is transmitted through a network using TCP, usually to port 1720. On its own, Q.931 does not pass information that is specific enough for calls through IP networks. However, Q931 allows an optional user-to-user element to be transmitted, and this is used to pass H.225.0 call signalling messages. Some of the H.225.0 call signalling messages embedded within a Q931 message are shown below:
- This messages is used to initially request that a call is set up. It is the equivalent of dialling a number on a normal telephone.
- This message is sent to the calling party to indicate that the call has is currently being processed by the called terminal.
- This indicated to the calling party that the called terminal is ringing.
- This is sent from the called terminal back to the calling terminal. It is the equivalent of answering the call. After a connect has been received, the actual transmission channels needs to be set up using H245.
- This message can be sent by either party participating in an active call. It is an indication that the sender wishes to end the call. An acknowledgement is not required, although it is sometimes sent.
- Q.931 messages are transmitted using a simple octet aligned method. Each message includes a Protocol Discriminator, a Call Reference Value, a Message Type indicator and a number of optional Information Elements. One of these Information Elements is the User to User element, and this is used to hold the H.225.0 call signalling messages.
H.225.0 Call signalling messages are defined using the ASN.1 notation (X.680). The messages are encoded for transmission using the aligned variant of PER (Packet Encoding Rules) as defined in X.691. The result is a complicated but compact encoding that is not humanly readable.
H.245 - Media control
Once two terminals have used Q931 to agree that they are willing to communicate with each other, they must agree on media formats that they are both able to handle and must set up the logical channels through which the media is transmitted. H.245 is used to set up these channels. Logical channels may carry voice, video or data. Q.931 is transmitted through a network using TCP between dynamically allocated ports. Some are the messages defined by H.245 are shown below:
- This message is part of the capabilities exchange during which the two terminals agree on the media formats to be used during the call.
- During the setup control of media channels, one of the participants must act as the controlling end of the logical channels. The master or controlling end is determined using this and its associated messages.
- This message is sent by a terminal to indicate that it wishes to send a media stream to the recipient or that it wishes to establish a T.120 data channel. The message includes details of the type of media to be transmitted.
- This is sent by the recipient of the OpenLogicalChannel message to indicate that it is willing to accept the media. It includes a transport address to which the media should be sent. For audio and video, this address would be a UDP socket (IP address and port number).
- H.245 messages are defined using the ASN.1 notation (X.680). The messages are encoded for transmission using the aligned variant of PER (Packet Encoding Rules) as defined in X.691. The result is a complicated but compact encoding that is not humanly readable.
Alternatives to H.323
H.323 is not the only recommendation for multimedia transmission. A newer protocol is being developed by the Internet Engineering Task Force called SIP. The two protocols are very different. SIP messages are text based and similar in format to existing Internet protocols such as HTTP. It has been argued that SIP is more suited to Internet applications and is easier to implement in software.
H.323 has a head start on SIP, but SIP has the advantage that its development is under the control of the IETF, a body that often reacts much quicker to industry requirements than the ITU. It is yet to been seen which protocol (if any) will become dominant.
To study H.323 in more details, we suggest the following sources of information:
- Carrier Grade Voice over IP - Daniel Collins
- This book includes, amongst other things, an excellent discussion of H323 and SIP.
- A resource for packet-switched conversational protocols. Includes many technical papers and implementation notes, including a particularly useful comparison between H.323 and SIP.
DUAL Gatekeeper is an H.323 NAT proxy that allows H.323 devices within a LAN to reach IP addresses on the Internet and place public telephone calls using ITSP gateway or gatekeeper services.
You are invited to try a demonstration version of DUAL Gatekeeper