- La téléphonie Internet libre basée sur Asterisk par Sylvain Thérien - http://www.tux89.com -

Installation de Codec G.729

Les codecs [1] sont utilisés pour convertir un signal vocal analogique à une forme codée numériquement, qui évidemment peut-être transportée sur un réseau IP. Les différents codecs offrent entre autres des variations en terme de qualité sonore, de bande passante utilisé, ainsi qu’au niveau des exigences requises sur l’unité de traitement. Puisque l’utilisation de bande passante pour la téléphonie Internet est dépendante des codecs utilisés, l’utilisation de codec à plus haut taux de compression signifiera une économie de la bande passante.

Pour avoir un aperçu de la bande passante requise pour chaque type de codec, essayez l’outil suivant :

http://www.asteriskguru.com/tools/bandwidth_calculator.php [2]

Calculateur Codec [3]

Lors du calcul de la bande passante d’un codec, on doit tenir compte du nombre de canaux utilisés, par exemple 2 canaux à 64 Kpbs chacun (G.711 [4]), du flux RTP, des datagrames UDP, des paquets IP et des trames Ethernet qui sont ajoutées successivement les uns aux autres.

Ainsi l’utilisation du codec G.711 ayant un ratio théorique de 64 Kbps nous amène à un total de 87 Kbps en incluant les en-têtes additionnels RTP/UDP/IP/Ethernet. Par contre, si on utilise un codec G.729 [5], nous passons d’un théorique 8 Kbps à un effectif de 31 Kbps. Si votre bande passante Internet est limitée, nul doute que vous voyez l’intérêt d’utiliser un codec à plus faible exigence sur le débit même si parfois l’on doit faire quelques compromis au niveau de la qualité sonore.

L’utilisation du codec G.729 peut exiger l’acquittement d’une licence, sauf si ce dernier est utilisé en mode Passerelle « Pass-thru ». Afin de rendre les choses plus claires, voici un exemple de ce que signifie le terme « Pass-thru ». L’utilisation de deux dispositifs téléphonique communiquant l’un vers l’autre et ayant un soutien intégré du codec G.729 n’aurait nul besoin qu’Asterisk transcode d’un format de codec à un autre. À l’opposé, un dispositif ne supportant que le codec G.711 et un autre ne supportant que G.729 auraient besoin qu’Asterisk transcode d’un format à l’autre et ainsi ne serait pas en mode « Pass-thru », et donc exigerait l’acquittement d’une licence pour l’utilisation du codec G.729.

Installation

Si vous n’avez pas la licence pour le codec G.729 et qu’avant d’acheter le codec G.729, vous souhaitiez essayer une version d’évaluation gratuite, alors suivez la démarche décrite ci-dessous.

Chose certaine, si votre serveur Asterisk est en Amérique du Nord, vous devriez acquitter les redevances aux détenteurs de brevets [6] pour l’utilisation de leurs algorithmes sur les codecs G.729 et G.723 [7].

Avant de télécharger et d’installer le module codec approprié pour la plate forme que vous utilisez, vous aurez besoin de vérifier le type de processeur sur lequel Asterisk s’exécute, afin d’obtenir le codec compatible à votre environnement physique.

Exécutez la ligne de commande suivante :

cat /proc/cpuinfo

À partir des informations obtenues, vous devez chercher spécifiquement le type d’unité de traitement (processeur) ainsi que ses options. Ce qui suit est un exemple du processeur que j’utilise.

Process: 0
vendor_id: GenuineIntel
cpu family: 6
model: 8
model name: Pentium III (Coppermine)
stepping: 3
cpu MHz: 648.110
cache size: 256 KB
fdiv_bug: no
hlt_bug: no
f00f_bug: no
coma_bug: no
fpu: yes
fpu_exception: yes
cpuid level: 2
wp: yes
flags: fpu vme de pse tsc msr pae mce cx8 mtrr pge mca
cmov pat pse36 mmx fxsr sse
bogomips: 1297.41

Nous pouvons voir en ce qui me concerne qu’il est question d’un processeur « Pentium III » et que ce dernier supporte l’option « sse ».

Ceci est donc l’information nécessaire dont nous avons besoin. Si vous ne voyez pas l’option « sse », alors le fichier dont vous aurez besoin doit comporter la mention de « non-sse ».

Nous pouvons donc télécharger les fichiers codec requis à partir du lien suivant : http://kvin.lv/pub/Linux/Asterisk/ [8]

Selon la version d’Asterisk utilisée, 1.2, 1.4, 1.6 ou 1.8, il faudra choisir le fichier « codec_g72x-ast??-???-glibc-pentium3.so » approprié.

Donc, à partir de ces informations, afin d’obtenir le codec G.729, nous choisirons le fichier « codec_g729-ast14-gcc4-glibc-pentium3.so ». Il en va de même si nous voulons obtenir le codec G.723, nous choisirons le fichier « G723-ast14-gcc4-glibc-pentium3.so ».

Vous remarquerez que la mention « gcc4 » dans le nom de fichier représente la méthode dont le module a été compilé. Dans la majorité des cas, ce sera le choix le plus commun, mais si vous désirez une version différente, c’est possible.

Nous sommes maintenant prêts à commencer l’installation des codecs. Exécutez les lignes de commandes suivantes selon les codecs et la version d’Asterisk requis :

cd /root
mkdir codec
cd codec
wget http://kvin.lv/pub/Linux/Asterisk/codec_g723-ast14-gcc4-glibc-pentium3.so
wget http://kvin.lv/pub/Linux/Asterisk/codec_g729-ast14-gcc4-glibc-pentium3.so
chmod 755 *
cp codec_g723-ast14-gcc4-glibc-pentium-m.so /usr/lib/asterisk/modules/codec_g723.so
cp codec_g729-ast14-gcc4-glibc-pentium-m.so /usr/lib/asterisk/modules/codec_g729.so

Pour le protocole IAX, ajoutez le codec G.729 dans la configuration en éditant le fichier « /etc/asterisk/iax_general_additional.conf »

allow=g729

Pour le protocole SIP, ajoutez le codec G.729 dans la configuration en éditant le fichier « /etc/asterisk/sip_general_additional.conf »

allow=g729

Pour le codec G.723 ajustez la configuration en éditant le fichier « /etc/asterisk/codecs.conf »

[g723]
; 6.3Kbps stream, default
sendrate=63
; 5.3Kbps
;sendrate=53

C’est maintenant presque terminé, modifiez la définition de votre Trunk avec les paramètres suivants :

disallow=all
allow=g729g723&ulaw&alaw

Redémarrez Asterisk et le tout est complété.

/usr/sbin/asterisk -rx restart now

Afin de voir si effectivement les codecs sont actifs au niveau d’Asterisk, effectuez les commandes suivantes :

asterisk -rvvvvvv
core show translation

ou encore

asterisk -rvvvvvv
core show translation recalc 10

Références

G.729 and G.723.1 codecs x86 (and x86_64) Linux and FreeBSD binaries for Asterisk open source PBX [9] Asterisk Codecs [10] Les protocoles Internet [11]
Modèle OSI [12] pixelstats trackingpixel
Comments Disabled (Open | Close)

Comments Disabled To "Installation de Codec G.729"

#1 Comment By Kamel On 12 novembre 2011 @ 1 h 35 min

Bonjour, Sylvain

Toujours aussi aimable, tes tutos me facilitent bien la vie.

Une petite question : tu pourras m’expliquer synthétiquement l’enregistrement de ma licence (2 channels) après l’installation du codec g729 ??

Merci d’avance,

Kamel

#2 Comment By Sylvain Thérien On 12 novembre 2011 @ 17 h 14 min

Salut Kamel,

Pour la version d’évaluation décrite dans la rubrique, tu n’as pas besoin de licence. Donc, je suppose que tu fais ici référence à la licence commerciale de Digium. Si c’est le cas, je suis à rédiger une autre rubrique sur cela. Aussitôt terminé, je mettrai cette nouvelle rubrique en ligne.

Si tu faisais référence à autre chose, donne-moi plus d’info.