Codec negotiation

From FreeSWITCH Wiki

Jump to: navigation, search

Early Negotiation (default behaviour):

  • When leg A calls FS the codecs will be compared against the configured codecs in the profile config.
  • When B sends the invite, the chosen codec in leg A will be pushed to the top of the list regardless of if it's actually chosen in the config.(the other codecs offered to leg A will not appear)

Late Negotation (requires param):

<param name="inbound-late-negotiation" value="true"/>
  • The call will hit the dialplan without looking at the codecs at all.
  • The negotiation will take place when leg A is answered.
  • This allows you to route the call to a script and examine the sdp and rewrite the acceptable codecs with the "codec_string" channel variable.

Early Negotiation + Disable Transcoding:

<param name="disable-transcoding" value="true"/>

If this sofia profile param is set, all B legs that you invite will contain *only* the codec negotiated by the A leg.


Also in either case the variable "codec_string" on the A leg controls what codecs will be offered to the B leg.

The variable "absolute_codec_string" is similar except it implies the implicit list of codecs and will disable the addition of the A leg codec to the list as described in the defualt behaviour.

Personal tools