Cómo Instalar Gratis el Códec G729 en Asterisk o FreePBX o Elastix o PIAF
Introducción
El códec G729 (ó G.729) es uno bastante deseado ya que mantiene muy buena calidad de sonido mientras usa muy poco ancho de banda (sólo unos 30kbps). Puede que al instalar tu servidor VOIP, éste no contenga el códec instalado, probablemente principalmente por el hecho de que el códec G729 requiere licencia para que sea legal usarlo (tiene patente de pago). No obstante, ésto no impide que pueda ser instalado sin costo alguno y usarlo bajo la propia responsabilidad. Precisamente, este tutorial enseña cómo instalar gratis el códec G729 en un servidor con Asterisk o FreePBX o Elastix o PIAF, o cualquier otra distribución basada en Asterisk de varias versiones, a saber 1.8.x, 11.x, 12.x, 13.x...., y bajo arquitectura de 32 bits o 64 bits, y con cualquier distribución de Linux (Centos, Ubuntu,...), y usarlo bajo su propia cuenta (puede que desee comprar las licencias luego, aunque técnicamente no es necesario para poder usarlo).
En la medida de lo conveniente, se muestra los comandos junto a sus salidas (output).
Básicamente lo que se se hará es descargar el archivo binario .so del códec G.729 dejándolo en el directorio de módulos de Asterisk, reiniciar Asterisk y listo: a probar!
Paso 1. Descargar el archivo Binario .so Apropiado para su Servidor
Primero debemos conocer algunos datos del servidor para bajar el archivo adecuado.
- Averigua la versión de tu Asterisk. Ejecuta en la línea de comandos lo siguiente:
En este caso, la versión de Asterisk es la 13.6.0[root@telefonia tmp]# asterisk -rx "core show version" Asterisk 13.6.0 built by root @ telefonia.fututel.com on a x86_64 running Linux on 2015-12-24 19:32:57 UTC
- Averigua la versión de glibc. Es muy importante, ya que ésta es la librería GNU del lenguage C, en el que está escrito gran parte de los programas de distribuciones Linux. Ejecuta:
En este caso, la versión de la librería glibc es la 2.12.[root@telefonia tmp]# ldd --version ldd (GNU libc) 2.12 Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper.
- Averigua la arquitectura de tu sistema operativo (NO de la máquina precisamente), si es de 32 o 64 bits.
En este caso es x86_64, es decir, de 64 bits. Si no dice 64 probablemente sea de 32 bits.[root@telefonia tmp]# uname -a Linux telefonia.fututel.com 2.6.32-39-pve #1 SMP Fri May 8 11:27:35 CEST 2015 x86_64 x86_64 x86_64 GNU/Linux
- Averigua el tipo de procesador. Ejecuta:
En nuestro caso, es un Xeón que es la de la familia de los Pentium4.[root@telefonia tmp]# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 58 model name : Intel(R) Xeon(R) CPU E3-1220 V2 @ 3.10GHz ...
- Ya teniendo los datos anteriores de tu servidor, ve a la página http://asterisk.hosting.lv/#bin y tenedlos en cuenta para encontrar el link del códec apropiado (los puedes ver en la parte derecha de la página que titula Linux Binaries y que muestra las distintas versiones de Asterisk; da click en la versión de Asterisk que tengas, después de lo cual aparecerán varios links).
En nuestro caso damos click en Asterisk 13 y copiamos la dirección del enlace que dice codec_g729-ast130-gcc4-glibc2.2-x86_64-pentium4.so (puedes dar click derecho en el enlace y luego click en Copiar dirección de enlace, para el caso de Chrome). Nótese que este contiene ast130 (para Asterisk 13), glibc2.2 (para glibc 2.12), x86_64 (para 64 bits) y pentium4 (para Xeón, que es de su misma familia de procesadores).
Una observación importante. Los links que contienen ...-glibc-x86_64-... (sin 2.2) son para versiones de glibc superiores o iguales 2.14, como es el caso de Centos 7. En nuestro ejemplo, usaba Centos 6 y la versión de glibc era la 2.12, y por éso use el otro link que ya escribí (con 2.2).
Ahora ubícate en la carpeta respectiva de los módulos de Asterisk y descarga allí el binario del link que obtuviste, como sigue.
En nuestro caso, los módulos de Asterisk se encuentran en:
Y descargar el binario allí:cd /usr/lib/asterisk/modules
wget http://asterisk.hosting.lv/bin/codec_g729-ast130-gcc4-glibc2.2-x86_64-pentium4.so
Paso 2. Renombrar el Archivo Binario Descargado y Darle Permisos
- Lo renombramos a codec_g729.so, que es como lo reconoce Asterisk, así:
mv codec_g729-ast130-gcc4-glibc2.2-x86_64-pentium4.so codec_g729.so
- Le cambiamos el dueño (owner) a asterisk:asterisk y le añadimos el permiso de ejecución +x al archivo:
chown asterisk:asterisk codec_g729.so chmod +x codec_g729.so
Paso 3. Reiniciar Asterisk y Verificar la Instalación
- Reiniciar Asterisk para que cargue el módulo:
/etc/init.d/asterisk restart
- Verificar que el códec G729 está realmente instalado:
Como se nota, allí aparece G729 tanto en la fila como en la columna.[root@telefonia tmp]# asterisk -x "core show translation recalc 10" Recalculating Codec Translation (number of sample seconds: 10) Translation times between formats (in microseconds) for one second of data Source Format (Rows) Destination Format (Columns) ulaw alaw gsm g726 g726aal2 adpcm slin slin slin slin slin slin slin slin slin lpc10 g729 speex speex speex ilbc g722 testlaw ulaw - 9150 15000 15000 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 15000 23000 23000 15000 17250 15000 alaw 9150 - 15000 15000 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 15000 23000 23000 15000 17250 15000 gsm 15000 15000 - 15000 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 15000 23000 23000 15000 17250 15000 g726 15000 15000 15000 - 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 15000 23000 23000 15000 17250 15000 g726aal2 15000 15000 15000 15000 - 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 15000 23000 23000 15000 17250 15000 adpcm 15000 15000 15000 15000 15000 - 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 15000 23000 23000 15000 17250 15000 slin 6000 6000 6000 6000 6000 6000 - 8000 8000 8000 8000 8000 8000 8000 8000 6000 6000 6000 14000 14000 6000 8250 6000 slin 14500 14500 14500 14500 14500 14500 8500 - 8000 8000 8000 8000 8000 8000 8000 14500 14500 14500 14000 14000 14500 14000 14500 slin 14500 14500 14500 14500 14500 14500 8500 8500 - 8000 8000 8000 8000 8000 8000 14500 14500 14500 6000 14000 14500 6000 14500 slin 14500 14500 14500 14500 14500 14500 8500 8500 8500 - 8000 8000 8000 8000 8000 14500 14500 14500 14500 14000 14500 14500 14500 slin 14500 14500 14500 14500 14500 14500 8500 8500 8500 8500 - 8000 8000 8000 8000 14500 14500 14500 14500 6000 14500 14500 14500 slin 14500 14500 14500 14500 14500 14500 8500 8500 8500 8500 8500 - 8000 8000 8000 14500 14500 14500 14500 14500 14500 14500 14500 slin 14500 14500 14500 14500 14500 14500 8500 8500 8500 8500 8500 8500 - 8000 8000 14500 14500 14500 14500 14500 14500 14500 14500 slin 14500 14500 14500 14500 14500 14500 8500 8500 8500 8500 8500 8500 8500 - 8000 14500 14500 14500 14500 14500 14500 14500 14500 slin 14500 14500 14500 14500 14500 14500 8500 8500 8500 8500 8500 8500 8500 8500 - 14500 14500 14500 14500 14500 14500 14500 14500 lpc10 15000 15000 15000 15000 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 - 15000 15000 23000 23000 15000 17250 15000 g729 15000 15000 15000 15000 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 - 15000 23000 23000 15000 17250 15000 speex 15000 15000 15000 15000 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 - 23000 23000 15000 17250 15000 speex 23500 23500 23500 23500 23500 23500 17500 17500 9000 17000 17000 17000 17000 17000 17000 23500 23500 23500 - 23000 23500 15000 23500 speex 23500 23500 23500 23500 23500 23500 17500 17500 17500 17500 9000 17000 17000 17000 17000 23500 23500 23500 23500 - 23500 23500 23500 ilbc 15000 15000 15000 15000 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 15000 23000 23000 - 17250 15000 g722 15600 15600 15600 15600 15600 15600 9600 17500 9000 17000 17000 17000 17000 17000 17000 15600 15600 15600 15000 23000 15600 - 15600 testlaw 15000 15000 15000 15000 15000 15000 9000 17000 17000 17000 17000 17000 17000 17000 17000 15000 15000 15000 23000 23000 15000 17250 -
Paso 4. Configurar a Asterisk para que Use el Códec G729
- Para el caso de FreePBX, vaya a Settings -> Asterisk SIP Settings, sección Audio Codecs, selecciona g729 y reordena las prioridades de códecs como desees.
- Si usa Asterisk puro, deberá hacer el ajuste en sip.conf.
Listo, este es el final. Gracias por seguirlo. Espero que lo compartan y comenten abajo. Dios los bendiga!!!
Consideraciones Finales
- Le sugerimos que haga una llamada y compruebe en la práctica que el códec g729 está funcionando OK.
- Si Asterisk no carga el códec o tiene problemas con su desempeño, le sugerimos que ensaye con otro link de los que aparecen arriba para la misma versión de Asterisk (quizás los que digan core2 por ejemplo).