sábado, 18 de junio de 2011

DAHDI y la cancelación de eco con OSLEC

Ya hemos hablado hace algún tiempo de los problema de ECO y de este cancelador llamado OSLEC, hace poco en voztovoice publicaron un artículo bastante simple e informativo de su uso e instalación, aquí se los comparto.


En muchas ocasiones, cuando estamos utilizando tarjetas analógicas y/o digitales para sacar las llamadas con Asterisk, hemos experimentado problemas de eco. El eco es generado por la reflexión del audio trasmitido que se devuelve a quien lo ha originado con un retraso que puede variar de algunos milisegundos a centenares de milisegundos. Más alto el tiempo de retraso, más fastidioso el eco. Las librerías DAHDI vienen con un cancelador de eco software que a veces no logra solucionar este tipo de problema. En estos casos la mejor solución es instalar el cancelador de eco OSLEC. OSLEC ha sido desarrollado por David Rowe, un ingeniero electrónico australiano.


¿Por qué OSLEC logra solucionar con mayor eficacia los problemas de eco?


Porque a pesar que sea un cancelador de eco de 32ms, actúa justo en los casos en que se produce este tipo de retraso. Como podemos leer en la biblia del voip (voip-info), cuando las llamadas son locales o de larga distancia, las compañías telefónicas no aplican ningún tipo de cancelación de eco y es propio en estos casos que los 32ms de OSLEC son suficientes para cancelar el eco de manera satisfactoria. Cuando las llamadas son internacionales y el eco producido  considerable (centenares de ms), son las mismas compañías telefónicas que normalmente se encargan (a nivel de centrales) de eliminar el eco que se produce.


En este articulo veremos como instalar OSLEC y como utilizarlo en la configuración de las tarjetas analógicas.


Al momento de instalar DAHDI seguimos estos pasos:


cd /usr/src


Descargamos dahdi-linux (versión 2.4.1.2):


wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-current.tar.gz


lo descomprimimos:


tar -xf dahdi-linux-current.tar.gz


Descargamos las fuentes del Kernel que contiene el modulo OSLEC:


cd ..


wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2


las descomprimimos:


tar -xf linux-2.6.28.tar.bz2


y seguimos estos pasos para preparar las fuentes de DAHDI para la compilación con el modulo OSLEC:


mkdir /usr/src/dahdi-linux-2.4.1.2/drivers/staging 
cp -fR /usr/src/linux-2.6.28/drivers/staging/echo /usr/src/dahdi-linux-2.4.1.2/drivers/staging 
sed -i "s|#obj-m += dahdi_echocan_oslec.o|obj-m += dahdi_echocan_oslec.o|" /usr/src/dahdi-linux-2.4.1.2/drivers/dahdi/Kbuild 
sed -i "s|#obj-m += ../staging/echo/|obj-m += ../staging/echo/|" /usr/src/dahdi-linux-2.4.1.2/drivers/dahdi/Kbuild 
echo 'obj-m += echo.o' > /usr/src/dahdi-linux-2.4.1.2/drivers/staging/echo/Kbuild


Ahora podemos compilar DAHDI-Linux:


cd /usr/src/dahdi-linux-2.4.1.2


make


make install


Seguimos con DAHDI-Tools:


cd /usr/src


wget http://downloads.asterisk.org/pub/telephony/dahdi-tools/dahdi-tools-current.tar.gz


tar -xf dahdi-tools-current.tar.gz


cd dahdi-tools-2.4.1


./configure


make


make install


make config


Podemos averiguar que el modulo se ha instalado con el siguiente comando (si tenemos instalado mlocate):


updatedb


locate oslec | grep /lib/modules


/lib/modules/2.6.18-238.9.1.el5/dahdi/dahdi_echocan_oslec.ko


Ahora antes de reiniciar Asterisk y DAHDI, modificamos la configuración de las tarjetas analógicas instaladas en el servidor (en este caso X100P):


nano /etc/dahdi/system.conf


y modificamos esta línea:


echocanceller=mg2,1


para que quede:


echocanceller=OSLEC,1


Paramos Asterisk y DAHDI:


/etc/init.d/asterisk stop


/etc/init.d/dahdi stop


Reiniciamos los dos (primero DAHDI y luego Asterisk)


/etc/init.d/dahdi start


/etc/init.d/asterisk start


Para terminar controlamos que efectivamente el cancelador de echo configurado sea OSLEC:


dahdi_cfg –vvv


DAHDI Tools Version - 2.4.1


DAHDI Version: 2.4.1.2 
Echo Canceller(s): OSLEC 
Configuration 
======================


FUENTE: VOZTOVOICE.ORG

No hay comentarios.:

Publicar un comentario