Cancelacion del Eco en Elastix.doc

7
Cancelacion del Eco en Elastix El eco es un fenomeno no deseado y muy molesto que se genera cuando estamos utilizando tarjetas analógicas y/o digitales para sacar las llamadas hacia la PSNT con Asterisk-Elastix. 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 molesto es el eco. Cuando las llamadas son locales o de larga distancia, las compañías telefónicas no aplican ningún tipo de cancelación de eco Si las llamadas son internacionales el eco producido es considerable (centenares de ms), en este caso son las mismas compañías telefónicas que normalmente se encargan (a nivel de centrales) de eliminar el eco que se produce. CAUSAS DEL ECO El eco se produce por un fenomeno técnico en la conversión de 2 a 4 hilos de los sistemas telefónicos o por un retorno de la señal que se escucha por los auriculares y se induce de nuevo por el microfono. El eco también se suele conocer como reverberación. “El eco se define como una reflexión retardada de la señal acustica original. El eco es especialmente molesto cuanto mayor es el retardo y cuanto mayor es su intensidad con lo cual se convierte en un problema en VoIP puesto que los retardos suelen ser mayores que en la red de telefonía tradicional.

Transcript of Cancelacion del Eco en Elastix.doc

Page 1: Cancelacion del Eco en Elastix.doc

Cancelacion del Eco en Elastix

El eco es un fenomeno no deseado y muy molesto que se genera cuando estamos utilizando tarjetas analógicas y/o digitales para sacar las llamadas hacia la PSNT con Asterisk-Elastix. 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 molesto es el eco. Cuando las llamadas son locales o de larga distancia, las compañías telefónicas no aplican ningún tipo de cancelación de eco Si las llamadas son internacionales el eco producido es considerable (centenares de ms), en este caso son las mismas compañías telefónicas que normalmente se encargan (a nivel de centrales) de eliminar el eco que se produce.

CAUSAS DEL ECOEl eco se produce por un fenomeno técnico en la conversión de 2 a 4 hilos de los sistemas telefónicos o por un retorno de la señal que se escucha por los auriculares y se induce de nuevo por el microfono. El eco también se suele conocer como reverberación.

“El eco se define como una reflexión retardada de la señal acustica original. “

El eco es especialmente molesto cuanto mayor es el retardo y cuanto mayor es su intensidad con lo cual se convierte en un problema en VoIP puesto que los retardos suelen ser mayores que en la red de telefonía tradicional.

Page 2: Cancelacion del Eco en Elastix.doc

 

VALORES RECOMENDADOS:El oído humano es capaz de detectar el eco cuando su retardo con la señal original es igual o superior a 10 ms. Pero otro factor importante es la intensidad del eco ya que normalmente la señal de vuelta tiene menor potencia que la original. Es tolerable que llegue a 65 ms y una atenuación de 25 a 30 dB.

POSIBLES SOLUCIONES:

En este caso hay dos posibles soluciones para evitar este efecto tan molesto.

- Supresores de eco - Consiste en evitar que la señal emitida sea devuelta convirtiendo por momentos la linea full-duplex en una linea half-duplex de tal manera que si se detecta comunicación en un sentido se impide la comunicación en sentido contrario. El tiempo de conmutación de los supresores de eco es muy pequeño. Impide una comunicación full-duplex plena.

- Canceladores de eco – Es el sistema por el cual el dispositivo emisor guarda la información que envía en memoria y es capaz de detectar en la señal de vuelta la misma información (tal vez atenuada y con ruido). El dispostivo filtra esa información y cancela esas componentes de la voz. Requiere mayor tiempo de procesamiento.

OSLEC: Cancelador de eco en Software para Elastix

Page 3: Cancelacion del Eco en Elastix.doc

Lo mas recomendable para cancelar el eco es colocar tarjetas que incorporen cancelador de eco en Hardware, son mas eficientes y lo mas importante no cargan al CPU del servidor de realizar este trabajo, sin embargo el costo es hasta 3 veces mayor que las tarjetas que no lo traen.

Muchos por economia o ignorancia compran las tarjetas mas baratas que no incorporan cancelador de eco, se dan cuenta del problema cuando los usuarios se comienzan a quejar del molesto eco. Para estos casos hay una solucion en software bastante buena y efectiva que se instala por defecto en Elastix y es OSLEC.

OSLEC es un cancelador de eco de alto rendimiento de Software Libre. Las librerías DAHDI vienen con un cancelador de eco en software que a veces no logra solucionar este tipo de problema. OSLEC funciona correctamente en líneas en las que el cancelador incluido en DAHDI/Zaptel falla. Ya no hace falta ajustar el valor de rxgain/txgain ni hacer fxotrain. OSLEC está escrito en C y licenciado bajo GPL. 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. 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.

Configuracion de OSLEC en Elastix

Abrimos una sesion remota con SSH o desde la consola del servidor ingresamos con el usuario root.

1. Comprobar que esta instalado el modulo de OSLEC en el servidor:

Ejecutamos el siguiente comando:

locate oslec | grep /lib/modules

Aparecera la siguiente linea (dependera de la version)

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

De esta manera comprobamos que el modulo de OSLEC esta instalado.

 

2.- Configuramos OSLEC para que funcione en los puertos del adaptador que tengamos hacia la PSTN.

Page 4: Cancelacion del Eco en Elastix.doc

Para hacerlo agregamos en el archivo /etc/dahdi/system.conf , la opcion echocanceller=OSLEC,X , donde X corresponde al numero o numeros de puertos sobre el cual actuara OSLEC.

EJEMPLO:

Vamos a suponer que activaremos OSLEC en un adaptador con dos puertos FXO.

Con el editor vi modificamos el archivo system.conf  y agregamos la linea echocanceller=oslec,1-2

Digitamos lo siguiente:

cd /etc/dahdi/vi system.conf

Agregamos la linea echocanceller=oslec,1-2 , donde indicamos que OSLEC funcionara en ambos puertos 1 y 2.

El contenido del archivo system.conf quedaria parecido a lo siguiente:

loadzone        = usdefaultzone     = us

fxsks=1-2echocanceller=oslec,1-2

 

Reiniciamos los servicios de Elastix y Dahdi si es posible de preferencia damos un reset al servidor.

Para reiniciar los servicios hacemos lo siguiente:

amportal stopamportal killservice dahdi stopservice dahdi startamportal start

 

Para comprobar que OSLEC esta funcionando ejecutamos los siguiente:

dahdi_cfg -vvv

Nos aparecera algo parecido a lo siguiente:

Verificar las 2 ultimas lineas donde se indica que el cancelador de eco es OSLEC

Page 5: Cancelacion del Eco en Elastix.doc

Setting echocan for channel 1 to oslecSetting echocan for channel 2 to oslecDAHDI Tools Version - 2.3.0

DAHDI Version: 2.3.0.1Echo Canceller(s): OSLECConfiguration======================

Channel map:

Channel 01: FXS Kewlstart (Default) (Echo Canceler: oslec) (Slaves: 01)Channel 02: FXS Kewlstart (Default) (Echo Canceler: oslec) (Slaves: 02)

2 channels to configure.

Setting echocan for channel 1 to oslecSetting echocan for channel 2 to oslec

 

Otra opcion para probar es utilizar el siguiente comando:

lsdahdi

Verificar que aparece OSLEC como cancelador de eco por cada puerto FXO.

### Span  1: WRTDM/0 "wrtdm Board 1" (MASTER)  1 FXO        FXSKS       (In use) (SWEC: OSLEC)  2 FXO        FXSKS       (In use) (SWEC: OSLEC)

 

De esta manera se configura OSLEC para cancelar el eco en adaptadores que no lo incorporan en Hardware, uno de estos adaptadores es el Sangoma USBfxo (2 puertos FXO) como el de la imagen a la izquierda; donde se hace necesario realizar esta configuracion.

Si los adaptadores ya traen incorporado en hardware el cancelador de eco este procedimiento no es necesario.

Page 6: Cancelacion del Eco en Elastix.doc