H323 analysis

From TD-er's Wiki
Jump to navigationJump to search

This standard defines a great number of characteristics and functions. Some are necessaries and other optional ones. But H.323 defines much more that functions. The standard defines also the following components:


Terminal

An H.323 terminal is an endpoint in the LAN that participates in real-time, two-way communications with another H.323 terminal, gateway, or multipoint control unit (MCU). A terminal must support audio communication and can also support audio with video, audio with data, or a combination of all three.

H.323 terminal options include support user equipment interfaces, audio and video CODECs, the T.120 data protocols, MCU capabilities and an H.225 component called RAS (Registration/Admission/Status) which is a protocol used to communicate with a Gatekeeper.

  1. User equipment interfaces: The set of cameras, screens, microphones, speakers and data applications with their respective interfaces.
  2. Audio Codec: Each terminal will have an audio codec, to codify and to decodify vocal signals (G.711), and they could transmit and receive a-law and μ-law. Optionally, a terminal, could codify and decodify vocal signals. The H.323 terminal can, also optionally, send more of one audio channel at the same time, for example, in order to transmit 2 different languages
  3. Video Codec: In H.323 terminals is optional.
  4. Data Channel: One or more data channels are optional. They could be in one direction or in both.
  5. Reception Path latency: It includes the latency added to the packets to maintain the synchronization, and to consider the fluctuation in the packet arrivals. Usually it is not used in transmission but in the reception, to add the necessary latency, for example, to obtain the synchronization between the movement of the lips and the audio signal in a videoconference.
  6. System Control Unit: Gives the terminal signaling. There are three different functions: H.245 Control function, H.225 call signalling function and RAS signaling function.
    • H.245 Control function: The H.245 logical channel is used to take messages end-to-end of the H.323 protocol. It takes care to negotiate the capacities (bandwidth), to set up and set down the logical channels and to send the flow control messages. In each call, there will be any number of logical channels of each type (audio, video or data) but only one control logical channel, channel 0.
    • H.225 Call signalling function: It uses one logical channel of signaling to send and receive establishment and end session messages between two H.323 end points. The channel is independent of the H.245 control channel. The H.245 logical channel opening and closing procedures are not used to establish the signaling channel. It is opened before the establishment of the H.245 control channel and any other logical channel. It can settle down terminal to terminal or terminal to gatekeeper.
    • RAS Control function (Register, Admission, Status): It uses a logical channel of RAS signaling to carry out registry, admission, situation and bandwidth changes procedures between end points (terminal, gateway..) and gatekeeper. It is only used when a gatekeeper is present. The RAS signaling channel is independent of the call signaling channel, and of the H.245 control channel. The H.245 logical channel opening and closing procedures are not used to establish the RAS signaling channel. The RAS control function channel is opened before the establishment of the any other logical channel
  7. H.225 Layer: It is in charge to give format to the video, audio, and transmitted data packets. In addition, it also takes care of the packet alignment, the sequential number and the error detection.
  8. Packet network interface: It is specific of each implementation. This must provide the services described in the H.225 recommendation. That means that the reliable end-to-end service (for example, TCP) is mandatory for the H.245 control channel, the data channels and call signaling channels.

The non reliable end-to-end service (UDP, IPX) is mandatory for the audio channels, the video channels and the RAS channel These services can be duplex or simplex and unicast or multicast depending on the application, the terminals capacities and the network configuration.

Gateway

These devices provide many services, including the needed translation function between H.323 conferencing endpoints on the LAN and other ITU-compliant terminals on other ITU-compliant circuit-switched and packet-switched networks. These services include translation between transmission formats (for example H.225.0 to H.221) and between communications procedures (for example H.245 to H.242). In addition, the Gateway also does the translation between audio and video CODECs if this is needed as well as performs call setup and clearing.


Gatekeeper

Gatekeepers perform two important call control housekeeping chores which help preserve the integrity of the corporate data network. The first is address translation services between LAN aliases for terminals and gateways and IP or IPX addresses. The second Gatekeeper function is bandwidth management. For instance, if a LAN manager-specified threshold for the number of simultaneous conferences on the LAN has been reached, the Gatekeeper can refuse to make any more connections. The effect is to limit the total number of conferencing bits/s to some fraction of the total available; the remainder is left for email, file transfers, and other normal store-and-forward data functions. The collection of all Terminals, Gateways, and Multipoint Control Units managed by a single gatekeeper is known as an H.323 Zone.

A Gatekeeper make the following services if is present (it is not always necessary):

  • Admission control: The gatekeeper can deny calls from a terminal because they do not have permission or they do not have permission at that moment of the day or some other criteria. Admissions Control may also be a null function which admits all requests.
  • Bandwidth control: To control the number of H.323 terminals which can be simultaneously connected and to deny calls if the bandwidth is too low.
  • Zone Management: The Gatekeeper provides the above functions for terminals, MCUs, and Gateways which have registered within its Zone of control.


MCU / Conference

An MCU is an endpoint on the LAN that provides the capability for three or more terminals and gateways to participate in a multipoint conference. It controls and mixes video, audio, and data from terminals to create a robust video conference. An MCU can also connect two terminals in a point-to-point conference that can later develop into a multipoint conference.


Multipoint Controller

A multipoint controller is a component of H.323 that provides negotiation capacity with all the terminals to carry out different communication levels. Also, it can control conference resources such as video multicasting.


Multipoint Processor

A multipoint processor is a hardware and specialized software component of H.323. It mixes, exchanges and processes audio, video and/or data flow for the participants of a multipoint conference, in such a way that the terminal processors are not used heavily. The multipoint processor can process an only average flow or multiple average flows depending on the supported conference.


H.323 Proxy

An H.323 proxy server is a proxy specifically designed for the H.323 protocol that examines packets between two communicating applications. Proxies are able to determine the destination of a call and perform call-connection steps, if necessary.

H.323 proxies perform the following key functions:

  • Voice terminals that do not support Resource Reservation Protocol (RSVP) can connect through remote access or local area networks (LANs) with relatively reliable quality of service (QoS) to the proxy. Pairs of proxies can then be employed to develop tunnels across the IP network.
  • Proxies support routing H.323 traffic separately from ordinary data traffic using application-specific routing (ASR).
  • Proxies are compatible with network address translation functions in gateways or gatekeepers, enabling H.323 to be deployed in networks using private address space.


H.323 Protocol stack

(source)

The most known protocols used in H.323 are:

  • RTP/RTCP (Real-Time Transport Protocol / Real-Time Transport Control Protocol): Internet-standard protocol for the transport of real-time data, including audio and video. RTP is used in virtually all voice-over-IP architectures, for videoconferencing, media-on-demand, and other applications. A thin protocol, it supports content identification, timing reconstruction, and detection of lost packets.
  • RAS (Registration, Admission and Status): A protocol for Registration, Admission and Status. In an H.323 audio or video system, the RAS is a control channel over which H.225.0 signaling messages are sent.
  • H225.0: Protocol used to describe call signaling, the media (audio and video), the stream packetization, media stream synchronization and control message formats
  • H.245: Control protocol for multimedia communication, describes the messages and procedures used for opening and closing logical channels for audio, video and data, capability exchange, control and indications

It manages the following functionalities:

  1. Interchange of capacities: Terminals define the codecs they have and they send it to the other end point.
  2. Opening and closing logical channels: H.323 audio and video channels are point to point and unidirectional. Therefore they will have to create at least two of these channels. This is responsibility of H.245.
  3. Flow Control when there is a problem.
  4. A lot of different small functions.
  • Q.931: A protocol for Call Signaling, consisting of Setup, Teardown and Disengage. Q.931 is included in the H.225.0 Recommendation
  • RSVP (Resource ReSerVation Protocol): Protocol for reserving network resources to provide guaranteed application QoS (Quality of Service)
  • T.120: Standard for data conferencing and conference control for interactive multimedia communication - multipoint & point-to-point.

The following codecs are recommended by the H.323 standard:

  • G.711: ITU-TSS recommendation "Pulse code modulation (PCM) of voice frequencies". This audio standard is mandatory for all video conferencing systems. It requires a data rate of 56 or 64 kbit/s.
  • H.261y H.263: Video codecs of H.323 standard. However, other ones can be used.


H.323 clients

For some possible H323 (and SIP) VoIP clients you can check this list The only two that support both H323 and linux are:

Another option is the commandline ohphone. No graphical interface.

Ekiga

If it were to work the interface is supposed to look like this To be downloaded from the ekiga page. Unfortunately the packages OPAL and PWLIB libraries have to be installed first. This is a tedious and time comsuming process (lots of compiling needed). When we were finally done with this we tried to configure ekiga but we got the error message: Package gnome-doc-utils was not found in the pkg-config search path. We gave up since no system manager was available at this moment and decided to go on exploring the SJPhone option first.

Gnomemeeting

Today (1-31) the system manager installed all the necessary packages. But there is a problem for Ekiga when locating the audio-plugins; failing this stops the program execution. Compilation from the sources has been tried as well; unfortunately, after compiling and installing several libraries, the process got stuck on pwlib, where Ekiga requires version 1.10.3 but Debian provides only 1.10.0. Another installed H323 client is the predecessor of Ekiga, Gnomemeeting. This is already installed on the system and seems to work. So far we don't know if this is working; the application starts and everything seems ok, sound support as well. So far no H323 extension is plugged in into TrixBox; this is the next step to support H323 communication.

SJPhone

Very straightforward download from SJ Labs (VoIP software). You get the following interface.

Shermafdruksjphone.png

Note: At least the Windows version of SJ-phone is still using SIP, even when this is disabled in the configuration. When using 2 instances of SJphone, to call eachother, the connection is true H323.

H323 and TrixBox

We tried to look up some information on H323 and TrixBox. From the information on the web it seems that this is a tricky topic. Many questions, few answers. People seem to have trouble with it. I haven't been through all the correspondence on the TrixBox forum but it seems that most people have a hard time even setting up a connection (lots of configuring) and when they do succeed the connection dies after 15-30 seconds. We will look into this a bit more tomorrow.

Example H.323 call

(Source)

In the following example we could see a H.323 call. The different colors show different protocolos.

H323-communication-timeline.gif

A H.323 call has 4 different processes:

Setup

  • Terminal 1 register itself with the gatekeeper using the RAS protocol (Register, admisaion, status) sending an ARQ message and receiving an ACF message.
  • Using H.225 protocol (used for setup and release of the call) terminal T1 sends a SETUP message to T2 requesting a connection. This message contains the IP address, port and alias of the calling user or the IP address and port of the called user.
  • T2 sends a CALL PROCEEDING message warning on the attempt to establish a call
  • Now, T2 terminal must register itself in the gatekeeper as T1 previously do.
  • Alerting message indicates the beginning of tone generation phase.
  • And finally, CONNECT message shows the beginning of the connection.

Control Signalling

In this phase a negotiation using H.245 protocol is opened (conference control), the interchange of the messages (request and answer) between both terminals establishes who will be the master and who the slave, the capacities of the participants and the audio and video codecs to be used. When the negotiation finishes the communication channel is opened (IP addresses, port).

The main H.245 messages used in this step are:

  • TerminalCapabilitySet (TCS). Message capabilities supported by the terminals that take part in a call
  • OpenLogicalChannel (OLC). Message to open the logical channel which contains information to allow the reception and codification of the data. It contains information of the data type that will be sent.

Audio

Terminals start the communication using the RTP/RTCP protocol.

Call Release

  • The calling or the called terminal can initiate the ending process using the CloseLogicalChannel and EndSessionComand messages to finish the call using again H.245.
  • Then using H.225 the connection is closed with the RELEASE COMPLETE message.
  • And finally the registration of the terminals in the gatekeeper are cleared using RAS protocol.

H323-related links