Signalling a H.323 call

Below a diagram of a simple point-to-point H.323 call. It excludes the details of things like negotiating an audio encoding scheme. The call is managed at three different layers. Alice makes a TCP connection to the well known port for H.323, port 1720 (beginning from version 3 in can be done via UDP to). Bob and Alice send Q.931 packets across this connection. As part of this exchange, Bob and Alice also send an ephemeral (dynamic and greater than 1024) port to be used for the H.245 connection. According to the standard, once the H.245 connection is established, the Q.931 connection may be dropped (without sending a Release Complete message), without affecting the rest of the H.323 call. In practice, the Q.931 connection is typically left up.

The H.245 connection is made from the caller to the ephemeral port negotiated across the Q.931 stream. H.245 handles all of the call parameter negotiations, such as which codecs to use. H.245 also has commands that cause UDP connections to be made. Essentially, once the audio (and video) codecs and parameters have been negotiated, the H.245 session executes an OpenLogicalChannel sequence. This sequence sends the transmitter's RTCP address and port number as well as the receiver's RTP and RTCP address and port number for a particular media stream (for example, audio or video). It should be noted that in H.323, each logical channel is considered to be one way. Therefore, for two people to exchange audio, two logical channels must be opened - one from Alice to Bob, and another from Bob to Alice. Also, the RTP protocol requires two UDP `connections', using adjacent streams. One connection is for RTP, the actual data stream, and the other is for RTCP, which has control information (and is bi-directional). The associated RTCP and RTP streams are required to be one port apart (with the RTP port being even and the RTCP being the next higher odd).

Copyright Intel