«

»

Imprimir esta Entrada

Cancelacion del Eco en Elastix


Cancelador de Eco en ElastixEl 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.

Cancelador del Eco en Elastix

 

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

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.

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        = us
defaultzone     = us

fxsks=1-2
echocanceller=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 stop
amportal kill
service dahdi stop
service dahdi start
amportal 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

Setting echocan for channel 1 to oslec
Setting echocan for channel 2 to oslec
DAHDI Tools Version - 2.3.0

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

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 oslec
Setting 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)

 

adaptador sangoma usbfxoDe 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.

 

 

26,209 total views, 3 views today



!!! AYUDANOS A MANTENER ESTE SITIO ACTIVO…!!!

Si piensas que te hemos ayudado y merecemos tu apoyo. !!! GRACIAS !!!

Cuando lo hagas tendras acceso inmediato a la documentacion en formato PDF para que la descargues. Encontraras tambien otros tutoriales mas avanzados no publicados en el sitio. Si no puedes o no quieres, no hay problema igual tendras acceso a toda la informacion publicada en este sitio.

!!CLICK AQUI.!! para ver Tutoriales a descargar

!!! GRACIAS POR TU DONACION !!!









Enlace permanente a este artículo: http://elastixtech.com/cancelacion-del-eco-en-elastix/

3 comentarios

  1. benigno

    amigos a mi me pasa lo mismo, parece que esta incorporado el codec pero esta inactivo, como activarlo?
    DAHDI Version: 2.6.1
    Echo Canceller(s): HWEC, OSLEC
    Configuration
    ======================

    Channel map:

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

    4 channels to configure.

    Setting echocan for channel 1 to oslec
    Setting echocan for channel 2 to oslec
    Setting echocan for channel 3 to oslec
    Setting echocan for channel 4 to oslec
    [root@whets ~]# lsdahdi
    ### Span 1: WCTDM/0 “Wildcard TDM410P” (MASTER)
    1 FXO FXSKS (In use) (EC: OSLEC – INACTIVE)
    2 FXO FXSKS (In use) (EC: OSLEC – INACTIVE)
    3 FXO FXSKS (In use) (EC: OSLEC – INACTIVE)
    4 FXO FXSKS (In use) (EC: OSLEC – INACTIVE) RED

    1. Creiher

      El status INACTIVE inidca que no hay llamada activa, prueba realizar el “lsdahdi” en el momento en que se está realizando una llamada y veras como el cambia a EC: OSLEC – ACTIVE solo en el canal ocupado por la llamada

  2. 4rn

    Parece que la version 2,4 ya viene configurado por defecto,
    pero a pesar de ello el eco es persistente

    el comando lsdahdi me bota el siguiente resultado,

    ### Span 1: WCTDM/0 “Wildcard TDM800P” (MASTER)
    1 FXS FXOKS (In use) (EC: OSLEC – INACTIVE)
    2 FXS FXOKS (In use) (EC: OSLEC – INACTIVE)
    3 FXS FXOKS (In use) (EC: OSLEC – INACTIVE)
    4 FXS FXOKS (In use) (EC: OSLEC – INACTIVE)
    5 FXO FXSKS (In use) (EC: OSLEC – INACTIVE)
    6 FXO FXSKS (In use) (EC: OSLEC – INACTIVE) RED
    7 FXO FXSKS (In use) (EC: OSLEC – INACTIVE) RED
    8 FXO FXSKS (In use) (EC: OSLEC – INACTIVE) RED

    los otros comandos que nos muestras me dan resultados positivos.
    Solo este ultimo me dice OSLEC inactivo,

    sabes como podría activarlo?

Deja un comentario