Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel6
outlinefalse
stylenone
typelist
printabletrue

Question:

Why do I have X number of concurrent calls but I'm using M/N encoders/decoders (where M,N > X)?

 

Answer:

It's more complicated than simply one concurrent call equals 1/1 encoder/decoder.  The number of G.729 channels used can be better thought as the number of "legs" or channels of a call which require transcoding.  One "leg" is say from Asterisk to an ITSP ('$Provider'), or from Asterisk to internal VoIP endpoint ('$Voip1').  If $Provider requires G.729, and $Voip1 cannot speak G.729, then Asterisk must transcode from G.729 to one of $Voip1's allowed codecs.  This simple case will use one encoder/decoder to transcode to and from G.729, for the entire duration of the call (unless another codec is renegotiated, for 1/1 encoders/decoders for that channel).

...

Where "fmt" in this case is the source format of the file.  We strongly encourage you to use .wav as the source format, as that is not compressed.  Converting from another lossy compressed format to g729 could have adverse effects on the quality of the audio in the resulting files.

Summary:

The number of encoders/decoders of G.729 in use depends on the number of channels (or "legs") of a call requiring transcoding to or from G.729.  In the case of IVR playback, if no .g729 format files are found in the sounds directory, Asterisk will have to use codec_g729a to transcode the file from the sounds' formats to G.729.  This will use an encoder for each file played simultaneously (1/0 encoders/decoders per channel).  If a channel is being recorded, another channel of G.729 will be used to transcode from G.729 to the target format, and this will use one decoder (0/1 encoders/decoders per channel).  Transcoding can be avoided in both cases if sound files are recorded in the .g729 format.

...