Categorías
Asterisk Linux RevistaLinux Tecnologia

Eliminar eco en las lineas físicas

Desde que he instalado servidores de Voz por Internet no me había encontrado con que el software que contiene dahdi antes zaptel en asterisk, no me eliminara el eco cuando se tomaba la linea telefónica física de la persona por medio de la tarjeta y el modulo FXO.

Resulta que instale una tarjeta con dos módulos FXO y en las dos lineas se escuchaba un eco horrible cada que se tomaba la linea telefónica. En primer lugar pensé que eran los módulos los que no funcionaban, pero después de cambiarlos me doy a la tarea de verificar las lineas por medio de la utilidad fxotunepara verificar la impedancia de las lineas telefónicas y cual va siendo mi sorpresa que el porcentaje de eco sobrepasaba el 25%, una cantidad enorme que el software no puede eliminar, así que aquí les pongo los pasos para que verifiquen sus lineas telefónicas si ustedes escuchan un eco medio raro en el momento de tomarlas en su PBX.

fxotune es una utilidad para modificar los módulos FXO de las tarjetas análogas. Esta utilidad soporta Digium TDM400P y clones, TDM800P, TDM2400P, modulos FXO de Xorcom Astribank. No soporta tarjetas X100P ni clones.

Lo que hace esta utilidad es lo siguiente:

  1. Abre el puerto FXO
  2. Envía un dígito DTMF (5), de forma que se deje de escuchar el tono de invitación a marcar, y se quede el canal abierto.
  3. Envía una serie de señales y lee la respuesta.
  4. Pasamos al siguiente puerto FXO y empezamos de nuevo
  5. Genera /etc/fxotune.conf, que nos permitirá cargar los coeficientes al arrancar la máquina.

Lo primero que tenemos que hacer es verificar cuanto es el porcentaje de impedancia que nos muestra el canal.

Antes que otra cosa suceda hay que para asterisk por medio de consola.

~#amportal stop

Después de esto, proseguimos.

~#fxotune -d -b 1

Allí lo que hacemos es analizar el eco del canal 1. Esto nos deberia de arrojar los resultados. Yo obtuve los siguientes.

Dumping module /dev/dahdi/1
echo ratio = 0.2866 (1305.9 / 4557.0)
Done!

Dumping module /dev/dahdi/2
echo ratio = 0.3389 (1544.3 / 4557.0)
Done!

Como ven, me salieron en los 2 canales porcentajes muy altos. Después de analizados nuestros valores lo que vamos a hacer es ahora si actuar.

~#fxotune -i 5 #para cargar los valores a eliminar

~#fxotune -s #para guardar los valores cargados anteriormente.

Volvemos a visualizar nuestros valores y vemos que todo se ha normalizado lo suficiente como para que el cancelador de eco de software lo elimine. Iniciamos de nuevo asterisk.

Dumping module /dev/dahdi/1
echo ratio = 0.0136 (61.9 / 4557.0)
Done!

Dumping module /dev/dahdi/2
echo ratio = 0.0118 (53.7 / 4557.0)
Done!

~#amportal start

Nota: Es necesario ejecutar “fxotune -s” después de cada test, NO al final, para que se carguen efectivamente los coeficientes en la tarjeta. Ejecutar “fxotune -s” al iniciar el sistema.

Por Ramon

Ingeniero en Computación y estudiante actual en Derecho especializado en Software Libre. He impartido conferencias de Software Libre en la Universidad de Guadalajara.

13 respuestas a «Eliminar eco en las lineas físicas»

Saludos, recién me inicio en el mundo de la telefonía IP y aunque mis llamadas dentro de la red interna funcionan correctamente cuando hago llamada por medio de líneas PSTN algunas ocasiones cuando hablamos por se escucha una especie de ruido después de que pronunciamos algunas palabras. Pensando que se trataba de eco distorcionado instalamos OLSEC pero no parece dar resultados el sonido vuelve a aparecer. Es algo que se puede mejorar usando el Fxotune que mencionas? Este problema lo tenemos en las dos oficinas en las que pusimos telefonía Ip estamos usando tarjetas tdm410 clones.

Hola, que tal. Primero elimina el ruido con lo que dice este articulo. Despues te recomiendo que le digas a tu compa~ia telefónica que te filtre de ruido las lineas físicas, con eso debes de notar una mejoría en tus llamadas. Mantenme al tanto de tus actualizaciones. POr otra parte, que software instalaste en tus servidores? Elastix? Si no es así, descargate la versión 2.0.3 que esta continuación. http://downloads.sourceforge.net/project/elastix/Elastix%20PBX%20Appliance%20Software/2.2.0/Elastix-2.2.0-i386-bin-01Nov2011.iso?r=http%3A%2F%2Fwww.elastix.org%2Findex.php%2Fen%2Fdownloads.html&ts=1321403933&use_mirror=voxel

Hola, Ramon como estas ?, mi caso es el siguiente tengo montado Elastix la ultima version, tenemos un aTDM2400P de 24 canales, hay 80 extensiones creadas y 10 Lineas PSTN, la comunicacion entre extensiones es perfecta no hay problema, cuando se hace una llamada a traves de las lineas analogicas o se reciben las llamadas, se escucha con mucho ruido y eco fuerte que no entiendes a la persona, realice los paso indicados en tu tuto y me arroja que los valores Dumping module /dev/dahdi/1
echo ratio = 0.6592 (3004.0 / 4557.0)
Done!
Por lo que leo es alto, realizo el siguiente paso y siempre me aparece el mismo valor, no se que me puedes aconsejar al respecto.

Gracias.

Hola Juan Carlos, se supone que con las instrucciones debe de aminorar el eco o el ruido en las lineas. Por otra parte, quiero saber en que compa~ia tienes tus lineas telefónicas. A veces me ha funcionado pidiéndole al proveedor que filtre las lineas físicas porque viene con mucho ruido.

Otra cosa que se me ocurre es un acceso limitado para tratar de realizar estos pasos en tu servidor.

Saludos

Hola Ramon quiserra consultate que pasa si en una de las lineas no baja el eco por ejemplo en mi canal 2 baja significativamente el eco
pero en mi linea4 no llega a a bajar fxotune -d -b 4
Dumping module /dev/dahdi/4
echo ratio = 0.3363 (1532.7 / 4557.0)

la linea 4 tiene un filtro ya que esta es adsl y viene con internet el eco del servicio adsl esta dentro de lo normal SNR Margin : 22.0 22.0 db y en el armario del poste telefonico esta igual.

Agradeceria Ramon que me puedas ayudar de antemano gracias
o me deen una idea de como solucionarlo

Enrike2x

Buen día Ramón…
En mi caso apliqué éste método que expones y aunque sí se redujo el eco, no es suficiente, te muestro mis resultados para que me entiendas:

Antes:
fxotune -d -b 5
Dumping module /dev/dahdi/5
echo ratio = 0.4023 (1833.5 / 4557.0)
Done!

fxotune -d -b 6
Dumping module /dev/dahdi/6
echo ratio = 0.3954 (1801.9 / 4557.0)
Done!

fxotune -d -b 7
Dumping module /dev/dahdi/7
echo ratio = 0.3152 (1436.4 / 4557.0)
Done!

Después de realizar los pasos que propones me quedaron de la siguiente manera:

fxotune -d -b 5
Dumping module /dev/dahdi/5
echo ratio = 0.2139 (974.9 / 4557.0)
Done!

fxotune -d -b 6
Dumping module /dev/dahdi/6
echo ratio = 0.2216 (1009.9 / 4557.0)
Done!

fxotune -d -b 7
Dumping module /dev/dahdi/7
echo ratio = 0.1915 (872.8 / 4557.0)
Done!

Aunque hubo una reducción considerable, siguen quedando muy altos, al rededor del 20%
Utilizo Elastix con una tarjeta Digium tdm800
(tiene módulo de ecocanceler, pero por alguna razon no la hemos podido echar a andar…)

Alguna idea?
Gracias!!

Miguel,

Veo que si bajaron los valores, pero no lo suficiente. Ya hablaron a la compañía de teléfono de tu empresa para pedirles que filtren la linea? Muchas veces la misma compañía necesita filtrarlas. Por otra parte, me sucedió lo mismo, no se cuanto tiempo lleves con tu tarjeta, pero ya me toco que cambiándole a una tarjeta los módulos se corrigió. Esto es, también los módulos no eliminan el eco, esto sucede por estar dañados. Checale y me actualizas de que sucedió.

Miguel,

Veo que si bajaron los valores, pero no lo suficiente. Ya hablaron a la compañía de teléfono de tu empresa para pedirles que filtren la linea? Muchas veces la misma compañía necesita filtrarlas. Por otra parte, me sucedió lo mismo, no se cuanto tiempo lleves con tu tarjeta, pero ya me toco que cambiándole a una tarjeta los módulos se corrigió. Esto es, también los módulos no eliminan el eco, esto sucede por estar dañados. Checale y me actualizas de que sucedió.

Gracias, Ramón… Se resolvió cambiando a AsteriskNow, con dahdi verision 2.6.0 Echo Canceller: HWEC

Con ésto funcionó el módulode echoCanceller. y me daba un resultado de 21% de eco, apliqué el método que describes con fxotune y se redujo a 0.019

Gracias!!
Saludos!

Hola Ramón
En mi caso no tengo ninguna tarjeta TDM. Desde elastix 2.4 hay dos interfaces ethernet: eth0 LAN y eth1 WAN conectada al ruteador del proveedor de telefonía. el eco se da en las llamadas a traves de PSTN, ya sea que me llamen o si llamo, el eco siempre está del otro lado, no en los teléfonos ip cisco de mi servidor elastix. en la configuración troncal del PBX tengo:
disallow=all
allow=ulaw
el uso de fxotune es solo para tarjetas TDM.
que me aconsejas?

Hola Pedro,

Estas seguro que los codecs de tu proveedor es ulaw? Checa si no es G729 o ilbc porque hay una transferencia y por supuesto una decodificación. Y efectivamente el fxotune es solo para TDM’s

Hola!

Recién estoy iniciando en VoIP, en un laboratorio en mi casa. Por ende, no cuento con mucha infraestructura. Al momento de comprar una FXO, tuve que ir por la X100P, ya que es lo más barato que se consigue.

He logrado una configuración básica, con dos Softphones SIP, con un Dialplan básico con el que puedo recibir llamadas a través de la PSTN y hacerlas.

El problema, como se imaginarán, es el eco (y hasta cierto punto el volúmen de sonido). Las lineas analógicas me escuchan muy bajo, sin eco, y yo desde el Softphone escucho un eco terrible.

Entiendo que no puedo configurar la X100P con fxotune, pero podrían ayudarme en descubrir como puedo reducir el eco al mínimo?

Actualmente da lo siguiente:
fxotune -d -b 1
Dumping module /dev/dahdi/1
echo ratio = 0.4155 (1893.6 / 4557.0)
Done!

Como datos adicionales la infraestructura es la siguiente:
La máquina es una VM (Virtual Machine) en un ESXi 5.1, con un Core i5 650, 1GB RAM, y la X100P y una Intel PRO1000MT están con Passthrough (VT-d). No deberían existir problemas de IRQ ni nada por el estilo. Estoy usando AsteriskNOW 11

Bueno, estuve horas y horas y lo logré.
Para sacar el eco con X100P tuve que usar OSLEC echo canceller. Funciona perfecto.

Mi otro problema fue que me escuchaban muy bajo. Estoy con Softphones en cada PC, me volví loco jugando con rxgain y txgain, pero al final el problema lo arreglé del lado de las PC configurando +20db en los micrófonos.

Casi nada de eco, y excelente sonido en ambas partes.
Agrego esto por si a alguien le sirve.

Abrazo