H323 Signalling Messages 

H323-communication

— I will complete the whole signalling soon —

H225/Q931 CALL SETUP

SETUP   :  source&dest address,port

CALL PROCEEDING

ALERTING : ringback tone

The called telephone starts ringing and this is signalled to the other party with the Q.931/H.225.0 message Alerting.

H245 NEGOTIATION AND VOICE PATH SETUP

CONNECT  (Q931/H225) : create h245 channel

The called party picks up the handset and the endpoint can signal the call has been accepted. This is done by sending the Q.931/H.225.0 message Connect. At this point, the parties will need to negotiate parameters for audio (and optionally video) channels. The protocol H.245 is used for this negotiation. In the default case, H.245 will need another TCP channel, so the endpoint 122 will insert its H.245 address (the IP address and port where it listens for H.245 connections) into the Connect message.

 

H245

TCS ( codec type request )

MSD (master/slave determination request )

TCS ACK + MSD ACK  (sequence num=1 , decision = Slave)

 

VOICE PATH SETUP ( H245 )

create : Open socket for  RTCP

OLC ( RTCP port number is requested here )

OLC ACK

 

RTP / RTCP BASED VOICE COMMUNICATION

RTP

 

Fast Connect

With the standard H.245 negotiation, the two endpoints need three round-trips before they agree on the parameters of the audio/video channels (1. master/slave voting, 2. terminal capability set exchange, and finally, 3. opening the logical channels). In certain situations and especially with high-latency network links, this can last too long and users will notice the delay.

To overcome that, the Fast Connect procedure was designed (sometimes also called “Fast Start”). The endpoint will simply prepare several variants of the H.245 request openLogicalChannel, based on how many codecs it supports. After that, the endpoint encodes each variant of the message to the binary form and the resulting array of binary strings is inserted into a H.225.0/Q.931 message (usually the Setup message). The called party will pick one of the variants and confirm it back in the next H.225.0/Q.931 message, together with its own list of logical channel variants. The rest of the H.245 negotiation will be done the standard way.

Using the Fast Connect, the parameters of logical channels (codecs, IP addresses, and ports) are negotiated early in the message exchange, before the called user accepts the call. The price is a yet another complication in the protocol. Note that Fast Connect and H.245 tunnelling can be used in parallel.

Parallel H.245

H.323 version 4 added a yet another method to speed up the negotiation of audio/video parameters. The method again uses binary embedding: The calling endpoint creates its H.245 request terminalCapabilitySet at the very beginning of the call and embeds this message in the H.225.0/Q.931 message Setup. This way, the called party knows the caller’s whole capability list right from the beginning. Parallel H.245 can be combined with both Fast Connect and H.245 tunneling.

Early Media Start

This method aims at eliminating delays when starting RTP streams. The time needed to allocate all the required memory structures, open sockets, and start sending the RTP stream might not be that significant, but it adds up to the overall delay, especially on slower (embedded) platforms.

The solution is to start sending RTP as soon as the media channels are negotiated, even before the called user accepts the call. You naturally cannot start sending actual sound from the user’s microphone but should send silence or some random noise instead. You switch to the real sound when the user accepts the call.

http://toncar.cz/Tutorials/VoIP/VoIP_Protocols_H323_Call_Flow.html