Codec Support and Configuration

    1. Codec Support
    2. Asterisk Codec Configuration
    3. FreeSWITCH Codec Configuration

     

    The following chart details all codecs supported by all Sangoma Transcoding hardware

     

     

    Codec P time (ms) Codec P time (ms)
    G711 ulaw 10,20,30,40,50ms (64 kbps/8 Khz) G722   10,20,30,40ms (64 kbps/8 khz)
    G711 alaw  10,20,30,40,50ms (64 kbps/8 Khz) GSM_FR 20 ms (13 kbps/8Khz)
    L16 linear 10,20,30,40,50ms (128 kbps/8Khz)
    10,20,30,40,50ms (256 kbps/16Khz)
    GSM_EFR 20ms
    G729 AB 10-200ms (8 kbps/8 Khz) ILBC 20,40,60ms (15.2kbps/8Khz)
    30,60ms (13.3kbps/8Khz)
    G723.1 30,60,90ms (5.3kbps/8Khz)
    30,60,90ms (6.3kbps/8khz)
    G726 10,20,30,40,50ms (32kbps/8Khz)
    G722.1 (Siren 7) 20ms (24kbps/16Khz)
    20ms (32kbps/16Khz)
    AMR

    20,40ms (4.75kbps/8Khz)
    20,40ms (5.15kbps/8Khz)
    20,40ms (5.90kbps/8Khz)

     

    *Note: The above Codec Support is based on the hardware (independent on the application above) 

     

    The Chart below indicates Asterisk & FreeSWITCH supported Codecs

    Codec G711
    ulaw
    G711
    alaw 
    L16
    Linear
    G729ab G723.1 G722 GSM_FR ILBC G726 AMR G722.1 GSM_EFR
    Asterisk Y Y Y Y Y Y Y Y Y N N N
    FreeSWITCH 
    Y Y Y Y Y Y Y Y Y Y Y N

    Legend:   Y - Supported codec
                    N - Unsupported codec

     

    -> Asterisk: P time(s) are hard-coded at 20ms and cannot be changed
     ->FreeSWITCH:  P time(s) up to and including 50 ms are supported

     


    Asterisk Codec Configuration

     

    The Sangoma transcoder will perform transcoding for all codecs listed in the codec module configuration file: sangoma_codec.conf.
    By default, the codec module is already pre-configured to perform all codec translations for G729.  If you require only g729 translations you do not need to edit any information.

    If you require the transcoder to perform transcoding for additional codecs, edit sangoma_codec.conf and add the translation with the following syntax:

    -> register=XX     Where 'XX' represents the codec of your choice (ie. register=pcmu)

    If only one codec is specified in the command above, then all possible translation combinations for that codec will be registered. For example "pcmu" , (pcmu->alaw,  alaw->pcmu, g723->pcmu,  pcmu->g723,  gsm->pcmu, pcmu->gsm…etc)

    If you register specific translation paths, (i.e g729toulaw, ulawtog729), then the codecs will be invoked for only those translations combinations, and no other.

    If you wish to NOT register a codec or translation, edit sangoma_codec.conf and add the translation with the following syntax:

    -> noregister=XX    Where 'XX' represents the codec of your choice ie. pcmu 

    Asterisk supported codecs with their syntax in sangoma_codec.conf

    Codec register=
    G711 ulaw pcmu, ulaw
    G711 alaw pcma,alaw
    L16 Linear slin
    G729AB g729
    G723.1 g723.1
    G722 g722
    GSM_FR gsm
    ILBC ilbc
    G726 g726

     


    sample sangoma_codec.conf file with various codec usages:      

         

    codex.png

                        

     

     

     

    -> After editing your codecs in sangoma_codecs.conf, you must either restart Asterisk, or reload the codec module in asterisk ("module reload codec_sangoma.so")

     

    Type 'sangoma show codecs' at the Asterisk CLI for a list of supported codecs

    Type 'sangoma show translators' at the Asterisk CLI for the list of translators registered


    FreeSWITCH Codec Configuration

    The Sangoma transcoder will perform transcoding for all codecs listed in the codec module configuration file: sangoma_codec.conf.xml
    By default, the codec module is already pre-configured to perform all codec translations for G729.  If you require only g729 translations you do not need to edit any information.

    If you require the transcoder to perform transcoding for additional codecs, edit sangoma_codec.conf.xmland add the translation with the following syntax:

    -> <param name="register" value="X"/>     Where 'X' represents the codec of your choice (ie. <param name="register" value="amr"/>)

    If you wish to NOT register a codec or translation, edit sangoma_codec.conf and add the translation with the following syntax:

    -> <param name="noregister" value="X"/>    Where 'X' represents the codec of your choice ie. pcmu

     

    FreeSWITCH supported codecs with their syntax in sangoma_codec.conf.xml

    Codec register=
    G711 ulaw pcmu
    G711 alaw pcma
    L16 Linear slin
    G729AB g729
    G723.1 g723
    G722.1 g7221
    g722 g722
    GSM_FR gsm
    ILBC ilbc
    G726 g726-32
    amr amr

     


    sample sangoma_codec.conf.xml file with various codec usages:      

         freeswitch.jpg

     

                        

     

     

     

     -> Type 'show codecs' in FS CLI and all codecs prefixed with "sangoma" are registered by the trascoder

    -> Type ' sangoma_codec sessions' in FS CLI to see codec session with RTP information