Similarly, video codec encodes video signals that a camera on an H.323 terminal receives into video codes for transmission on the H.323 network. It decodes the received video codes for the video display on the H.323 terminal. Video codec is optional for H.323 implementation. H.323 video codec algorithms are H.261 and H.263. Two H.323 terminals exchanging video information must support at least one common video codec algorithm.
H.225.0 RAS is a client/server protocol for use between an endpoint and the gatekeeper. This protocol defines how H.323 endpoints locate and register with the gatekeeper. H.225.0 RAS also defines how the gatekeeper locates endpoints, admits the endpoints into the zone, and specifies their access permission.
H.255.0 call signaling is a protocol for establishing a connection for H.245 control signaling. H.245 control signaling is a protocol for exchanging control messages, such as a terminal's audio and video capacities, and negotiating call features between two communicating endpoints.
H.323 borrowed RTP and RTCP from the IETF, which defines the protocols in Request for Comments (RFC) 1889. VoIP applications are often realtime audio and video applications. RTP provides end-to-end delivery services for data that requires realtime support. The services include payload (i.e., packet) type identification, sequence numbering, timestamping, and delivery monitoring. In VoIP, RTP uses UDP's multiplexing and checksum functions. RTCP is a companion protocol of RTP. RTCP monitors the quality of data delivery through a feedback-reporting function that the RTCP sender and receiver perform. The protocol also carries a transport-level identification, the canonical name, for an RTP source that the destination uses to synchronize audio and video.
Figure 4 shows how the H.323 protocols fit into the VoIP protocol stack. Audio codec and video codec run on top of RTP and RTCP; H.225.0 RAS, RTP, and RTCP run on top of UDP; and H.255.0 call signaling and H.245 control signaling run on top of TCP.
H.323 Procedures
Let's look at how the H.323 components work together and how H.323 uses the protocols to process a VoIP call. Two terminals can communicate directly without a gatekeeper, but the gatekeeper provides several useful functions, such as admission control and bandwidth management. A good H.323 network includes a gatekeeper.
Before one terminal can talk to another terminal in a gatekeeper-governed H.323 network, the terminal must have admission from the gatekeeper. The terminal discovers the gatekeeper through a static or dynamic method. In the static method, you configure the terminal to statically store the gatekeeper's IP address in the terminal. In the dynamic method, the terminal sends a gatekeeper request message to a multicast address, and the gatekeeper that listens to the multicast address answers the request with a gatekeeper confirmation message that contains the gatekeeper's IP address. The first terminal, Terminal 1, for example, sends an admission request to the gatekeeper and asks permission to talk to the destination terminal, Terminal 2. The gatekeeper responds to Terminal 1 with an admission confirmation message that includes Terminal 2's IP address. The gatekeeper can deny the admission request if its ACL shows Terminal 1 doesn't have permission to talk to Terminal 2 or the current use of bandwidth has exceeded a set threshold. This admission procedure uses the H.225.0 RAS protocol.
When Terminal 1 receives the admission confirmation, it opens a TCP connection for the H.255.0 call-signaling protocol between Terminal 1 and Terminal 2 and uses the protocol to send Terminal 2 a setup message. When Terminal 2 receives the setup message, it goes through the same admission procedure that Terminal 1 did to request permission from the gatekeeper to talk to Terminal 1. When Terminal 2 receives the admission confirmation, it then uses the H.255.0 call-signaling protocol to send Terminal 1 a connect message that includes the H.245 TCP port number that Terminal 2 wants to use. Terminal 1 then establishes a TCP connection with Terminal 2. Through the connection, both terminals use the H.245 control-signaling protocol to exchange terminal-capability information and negotiate the features of the call. Before using the H.245 protocol to open audio channels, the terminals also determine which terminal is the master and which is the slave for the call. Each terminal opens a unidirectional logical channel for audio transmission. Terminal 1 sends Terminal 2 an H.245 opening-channel request to open an audio channel, which includes the UDP port that the RTCP receiver will report on. Terminal 2 replies to Terminal 1 with an H.245 opening-channel acknowledgment that indicates the UDP ports that the RTP audio stream will use and the RTCP sender will report on. In the same way, Terminal 2 establishes another audio channel from itself to Terminal 1. The terminals complete the call setup and can start to exchange VoIP communications. Figure 5 illustrates this process.
This example doesn't describe how a terminal talks to another terminal outside the H.323 zone, such as in a PSTN. However, the process is similar: Terminal 1 communicates with a gateway, and the gateway converts the protocols and messages between Terminal 1 and Terminal 2.
Other VoIP Standards
H.323 has received support from VoIP vendors, but two other VoIP standards are also gaining acceptance in the industry. The IETF developed Session Initiation Protocol (SIP, defined in RFC 2543) and Media Gateway Control Protocol (MGCP, defined in RFC 2705) for the Internet.
As you've learned, call setup in H.323 isn't simpleit requires admission control, connection establishment, call-feature negotiation, and audio channel opening and involves several protocols. A VoIP call setup by H.323 can take much longer than an average PSTN call. Although the new H.323 version 3 speeds call setup, vendors haven't widely implemented this version in their products.