Codec Negotiation


Fast Start Call Model

Codec negotiation is slightly different in a Fast Start call model than in a Terminal Capabilities (non-Fast Start) call model. In both call models the basic principle of codec negotiation is the same but they may be encapsulated in different H.225 / H.245 messages.  


The supported codecs are advertised to the remote endpoint in a list sorted by preference with the top of the list containing the most preferred codec. This list represents all the media characteristics of the channel that the IMG is attempting to open.  Included in this are the payload size and the ForwardChannelParameters/ReverseChannelParameters.  These parameters represent each direction of the channel.  

Important: The IMG only supports symmetrical channels, which means that the codec / payload size must be the same in the forward and reverse directions. The IMG can not be transmitting G.729 and receiving G.711 on the same media channel.  


In the Fast Start call model, the negotiation of Codecs are present in the OpenLogicalChannel component of the H.225 messages:

In this call model a media channel tries to open as soon as possible so the parameters advertised for each Codec are the ones that the IMG attempts to use.  For instance, the payload size specified for each Codec is the preferred size that we want to use not the maximum that the IMG supports. If there are no codecs that both endpoints support, the IMG falls out of the Fast Start model and uses H.245 for Codec negotiation using the TerminalCapabilitiesSet message. In the TerminalCapabilitiesSet message the codecs are listed in order of preference just as in Fast Start, but the payload size for each codec is the maximum supported, not the preferred size as in the case of Fast Start. In both call models H.245 must be started and completed before the IMG can learn all the media characteristics of the remote endpoint. This process is necessary because the IMG might not know all the characteristics of the channel until it receives the TerminalCapabilitySet message, which contains more information than just the Codecs to use.  This message contains the elements such as the T.38 fax information and if RFC2833 is going to be used for digit transmission.


G.723r63/53 Negotiation

When negotiating G.723.1 Codecs with the remote endpoint we do not differentiate between G.723r53 and G.723r63.  We simply advertise that we are capable of or prefer to use G.723.1.  It is up to each endpoint to determine whether they want to transmit G.723r53 or G.723r63, which is acceptable because the G.723.1 specification states that the coder must support both rates. In order for the G.723.1 codec to be accepted, both the payload sizes must be in our range and the silence suppression must match.


For more information, refer to the G.723.1 specification.