Codec Asterisk

Codec Asterisk

 

 

Les Codecs Asterisk.
Codec est un Compresseur/Dé-compresseur. C’est un logiciel qui compresse et décompresse les données. Il existe trois types de codecs : audio, image et vidéo.

Les codecs les plus utilisés en audio sont : alaw/ulaw (g711), gsm, g726 et g729.

 

 

# asterisk -rvvv
show channels (affiche les call)

pour verifier si g729 est installé faire :

g729 show licenses

Licenses Found: File: G729-M6TSMB9LX3WZ.lic — Key:XXXXXXXXXX Host-ID: xxxxxxxx — Channels: 3 (Expires: 2032-04-24) (OK)

Si rien ne s’affiche pas de codec g729 alors allez : Digium G.729 Software Codec for Asterisk

 

 

Choisir le codec asterisk

C’est l’une des parties les plus difficiles, surtout qu’il est possible d’avoir un lien utilisant un codec et un autre utilisant un autre codec.

Dans la détermination du choix du codec, trois critères principaux entre en jeux :
– les ressources processeur
– la bande passante utilisée
– la qualité de la communication

les ressources processeur
Les codecs nécessitent plus ou moins de ressources processeurs. Les codecs les moins gourmands étant alaw et ulaw car il n’y a pas de compression de données.

la bande passante utilisée
Suivant le codec utilisés, l’utilisation de la bande passante (sur lien IP) peut-être plus ou moins importante. Les codecs les plus gourmands en bande passante étant ulaw et alaw. Pour savoir combien consomme les codecs, voici le lien sur un calculateur : http://www.asteriskguru.com/tools/bandwidth_calculator.php

la qualité de la communication
Plus le codec compresse les données plus la qualité se dégrade. Les codecs donnant la meilleure qualité étant ulaw et alaw, puisse qu’il ne compresse pas les données. Mais ceci est très théorique, car si vous avez des perturbations entrainant une perte de qualité, il peut être intéressant d’utiliser un codec à faible compression, les codecs effectuant une sorte de filtrage/lissage avant compression, cela peut entrainer un gain de qualité.

En fait, il n’existe qu’une seule méthode fiable pour déterminer le meilleur codec pour votre configuration : les essayer tous. Cette méthode pouvant être longue, il est d’usage de n’essayer que les codecs alaw, gsm, g726 et g729.

Attention tout de même au fait que le codec g729 est payant.

Tableau indicatif des qualités et nécessité en bande passante

Codec          Débit Données          Qualite        Bande Passante Mini

G711a          64 Kb/s                4.1 Mos        87.2 Ko/s

G723.1         5.6/6.3 Kb/s           3.7/3.9 Mos    21.9 Ko/s

G729           8 Kb/s                 3.9 Mos        31.2 Kb/s

G726-16        16 Kb/s                3.7 Mos        31.5 Kb/s

G726-24        24 Kb/s                3.7 Mos        47.2 Kb/s

G726-32        32 Kb/s                3.8 Mos        55.2 Kb/s

Gsm            13 Kb/s                ? Mos          28.7 Kb/s

Ilbc           15.2 Kb/s              ? Mos           30.8 Kb/s

 

Plus d’info sur : http://www.en.voipforo.com/codec/codecs.php

Informations sur les codecs

core show codecs
Donne la liste des codecs connus par Asterisk, sans tenir compte du fait que vous avez chargé les modules correspondant ou non.

Disclaimer: this command is for informational purposes only.
       It does not indicate anything about your configuration.
       INT    BINARY        HEX   TYPE       NAME   DESC
--------------------------------------------------------------------------------
         1 (1 <<  0)      (0x1)  audio       g723   (G.723.1)
         2 (1 <<  1)      (0x2)  audio        gsm   (GSM)
         4 (1 <<  2)      (0x4)  audio       ulaw   (G.711 u-law)
         8 (1 <<  3)      (0x8)  audio       alaw   (G.711 A-law)
        16 (1 <<  4)     (0x10)  audio   g726aal2   (G.726 AAL2)
        32 (1 <<  5)     (0x20)  audio      adpcm   (ADPCM)
        64 (1 <<  6)     (0x40)  audio       slin   (16 bit Signed Linear PCM)
       128 (1 <<  7)     (0x80)  audio      lpc10   (LPC10)
       256 (1 <<  8)    (0x100)  audio       g729   (G.729A)
       512 (1 <<  9)    (0x200)  audio      speex   (SpeeX)
      1024 (1 << 10)    (0x400)  audio       ilbc   (iLBC)
      2048 (1 << 11)    (0x800)  audio       g726   (G.726 RFC3551)
      4096 (1 << 12)   (0x1000)  audio       g722   (G722)
     65536 (1 << 16)  (0x10000)  image       jpeg   (JPEG image)
    131072 (1 << 17)  (0x20000)  image        png   (PNG image)
    262144 (1 << 18)  (0x40000)  video       h261   (H.261 Video)
    524288 (1 << 19)  (0x80000)  video       h263   (H.263 Video)
   1048576 (1 << 20) (0x100000)  video      h263p   (H.263+ Video)
   2097152 (1 << 21) (0x200000)  video       h264   (H.264 Video)

 

core show file formats
Donne la liste des extensions de fichiers correspondant aux codecs.

Format     Name       Extensions
------     ----       ----------
gsm        wav49      WAV|wav49
slin       mp3        mp3
slin       ogg_vorbis ogg
g729       g729       g729
g722       g722       g722
ulaw       au         au
alaw       alaw       alaw|al
ulaw       pcm        pcm|ulaw|ul|mu
slin       wav        wav
g726       g726-16    g726-16
g726       g726-24    g726-24
g726       g726-32    g726-32
g726       g726-40    g726-40
g723       g723sf     g723|g723sf
gsm        gsm        gsm

 

Note : les fichiers ‘.wav’ peuvent être utilisés avec les formats alaw et ulaw.

core show translation
Donne les temps de conversion entre formats.
Ce tableau est réservé aux experts.

Format des fichiers sons
Wav (Windows PCM) : 8Khz 16bits Mono (16ko/s = 128kb/s = 54Mo/h)
alaw (Raw) : 8Khz 16bits Mono (8ko/s = 64kb/s = 30Mo/h)
ulaw (Raw) : 8Khz 16bits Mono (8ko/s = 64kb/s = 30Mo/h)

Liste des modules par format avec extensions

format_au.so           extension : .au
format_g723.so         extension : .g723 ou g723sf
format_g726.so         extension : .g726-16 ou 24,32,40
format_g729.so         extension : .g729
format_gsm.so          extension : .gsm
format_h263.so         extension : .h263
format_h264.so         extension : .h264
format_ilbc.so         extension : .ilbc
format_mp3.so          extension : .mp3
format_ogg_vorbis.so   extension : .ogg
format_pcm.so          extension : .pcm ou ulaw,ul,mu + g722
format_sln.so          extension : .sln ou raw
format_vox.so          extension : .vox (Dialogic vox ADPCM)
format_wav_gsm.so      extension : .WAV ou wav49
format_wav.so          extension : .wav ou alaw,al

 

Charger les codecs

Le chargement des modules correspondants à chaque codec est normalement effectué au démarrage d’Asterisk. Il est possible de préciser quels codecs doivent être chargé ou non.
Plus de détail sur : https://fabblog.fabaur.fr/?p=1328

Codecs utilisés en SIP

Dans les traces SIP vous pouvez connaitre le ou les codecs utilisés dans la partie ‘combined’.

 

Exemple :

Capabilities: us - 0x1f07ff
(g723|gsm|ulaw|alaw|g726|adpcm|slin|lpc10|g729|speex|ilbc|jpeg|png|h261|h263|h263p),
peer - audio=0x10d (g723|ulaw|alaw|g729)/video=0x0 (nothing),
combined - 0x10d (g723|ulaw|alaw|g729)
Non-codec capabilities: us - 0x1 (telephone-event), peer - 0x1 (telephone-event),
combined - 0x1 (telephone-event)

Le fournisseur permet l’utilisation de 4 codecs : g723,ulaw,alaw et g729.
Si vous forcer l’utilisation d’un seul codec, par exemple alaw, vous devrez le préciser dans le fichier sip.conf dans la partie correspondant au poste que vous désirez forcer.

 

Exemple de configuration SIP :

disallow=all
allow=alaw

Force l’utilisation du codec alaw uniquement.

Exemple de résultat :

Capabilities: us - 0x8 (alaw), peer - audio=0x8 (alaw)/video=0x0 (nothing),
combined - 0x8 (alaw)
Non-codec capabilities: us - 0x1 (telephone-event), peer - 0x0 (nothing),
combined - 0x0 (nothing)

 

Erreur de codec en SIP

Si aucun codec ne concorde entre Asterisk et les postes ou un fournisseur voip, Asterisk vous retournera une erreur du type :

NOTICE[XXXX] chan_sip.c: No compatible codecs, not accepting this offer!

Codecs manquants :

WARNING[XXXX] channel.c: Unable to find a codec translation path from g723 to slin

Le fichier n’existe pas :

WARNING[XXXX] file.c: Unable to open <nom_du_fichier> (format 0x1 (g723)): No such file or directory

Le fichier n’existe pas avec l’extension correspondante au format choisi :

WARNING[XXXX] file.c: File <nom_du_fichier> does not exist in any format.

 

Compilation

Si vous désirez compiler vous même les codecs, ou si vous avez des erreurs au niveau d’Asterisk avec les codecs, aller sur ce site : http://asterisk.hosting.lv/

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

* Copy This Password *

* Type Or Paste Password Here *