Sistema de voceo anti-feedback de bajo costo para Elastix

Seguramente muchos usuarios de Elastix han pensado en habilitar un sistema de voceo pero no quieren invertir en esos costosos sistemas basados en IP que pueden llegar a costar cientos o miles de dólares. Lo que algunos no saben es que pueden utilizar la tarjeta de sonido del servidor para este fin.

En las primeras pruebas que hice con mi sistemita noté un problema: una retroalimentación acústica (feedback) bastante molestosa cuando se utiliza un teléfono cercano a los parlantes para vocear. Esto es debido a que el audio que sale de los parlantes se vuelve a introducir por el micrófono del teléfono y esto ocasiona feedback. Más adelante les cuento el truQuito que se me ocurrió para resolver este problema.

En el presente experimento conectaré la salida de la tarjeta de sonido a un pequeño amplificador de audio de aproximadamente 35 Watts RMS que conseguí a un buen precio. A la salida del amplificador conectaré un par de parlantes, de esos que se utilizan para ambientación de exteriores. Todos estos componentes se pueden conseguir por poco más de USD$100.

Sistema de voceo anti-feedback de bajo costo para Elastix Sistema de voceo anti-feedback de bajo costo para Elastix paging system elastix

Lo primero será habilitar el módulo chan_oss que viene con Elastix pero se encuentra deshabilitado por omisión. Habilitarlo es sencillo, abrimos el archivo /etc/Asterisk/modules.conf y comentamos la línea que impide cargar el módulo chan_oss.so. A continuación un fragmento del archivo con la línea comentada.


; Load either OSS or ALSA, not both
; By default, load no console driver
;
noload => chan_alsa.so
;noload => chan_oss.so

Chan_oss es un canal que se conecta con la tarjeta de sonido. Al ser un canal podemos hacer un puente entre una llamada y la tarjeta de sonido.

Lo siguiente será editar el archivo de configuración /etc/asterisk/oss.conf y dejarlo como sigue.

[general]
autoanswer=yes
context=from-internal
overridecontext=yes
extension=s
language=en
playbackonly=yes

Es importante dejar el parámetro autoanswer=yes para que la tarjeta de sonido conteste automáticamente cuando llamamos. El resto de parámetros están bien comentados en el archivo oss.conf que viene por omisión en Elastix.

Finalmente añadimos un nuevo contexto a nuestro plan de marcado para llamar a una extensión de voceo. Este contexto lo añadí en el archivo /etc/asterisk/extensions_custom.conf

[voceo-neomano]
exten => *2011,1,Dial(console/dsp,20,A(beep))
exten => *2011,n,Hangup()

De este modo podemos llamar a la extensión *2011 y cualquier cosa que digamos desde el teléfono, saldrá por la tarjeta de sonido.

Bueno, hasta aquí lo usual. Ahora el truQuito que les prometí :) Sistema de voceo anti-feedback de bajo costo para Elastix Sistema de voceo anti-feedback de bajo costo para Elastix icon smile

La idea que se me ocurrió para eliminar el feedback es correr un poQuito la frecuencia del audio que sale por el parlante. De este modo, cada vez que el audio se retroalimente por el teléfono tendrá una frecuencia ligeramente superior evitando que una misma frecuencia predomine a través del sistema.

Esto hasta hace poco era muy dificil, pero desde Asterisk 1.8 contamos con una muy interesante característica que permite hacer un corrimiento de frecuencia o “pitch”. Para realizar esto modifiqué un poco el plan de marcado anterior.

[voceo-neomano]
exten => *2011,1,Set(PITCH_SHIFT(both)=.95)
exten => *2011,n,Dial(console/dsp,20,A(beep))
exten => *2011,n,Hangup()

Como se puede observar hemos configurado un desplazamiento de frecuencia muy pequeño, utilizando la función PITCH_SHIFT. La idea es que casi ni se note. Sin embargo, debería ser suficiente para eliminar el molestoso feedback.

He escogido un valor menor a uno, lo que significa que la voz sonará ligeramente más grave.

Bueno, eso es todo, espero que sea de utilidad.

Comments

comments

9 comentarios

  1. Jorge   •  

    Excelente aporte, lo probaré el lunes a ver cómo me va

  2. cesar vega   •  

    Necesito una solucion de bajo costo para vocear una extensión telefonica, me puedes decir donde puedo encontrar este amplificador.

    saludos.

  3. andres   •  

    Sabes como puedo, en vez de reproducir el audio que yo hable a travez del voceo, poder reproducir un archivo de audio y que suene en el sistema de voceo?
    Saludos

  4. Sergio Vergara   •  

    Oye esto esta genial, es lo que estaba buscando.
    Tengo una pregunta, como puedo hacerle ahora para que dos personas puedan vocear digamos al mismo.

    • Edgar Landivar   •     Author

      Dos personas voceando al mismo tiempo?… Interesante, no se me había ocurrido… No se, a lo mejor se puede crear un cuarto de conferencia para esto.

  5. Angel   •  

    Hola.. habrá algo parecido para que en vez de vocear a un parlante, pudiera en cada telefono escucharse el voceo? me imagino q ciertos telefonos tendría alguna funcion o por lo menos altavoz para que escuchen cuando busquen a una persona no?

  6. Edgar Landivar   •     Author

    Sí, eso se puede hacer con Elastix desde la opción de paging. Algunos modelos de teléfono soportan esta función.

  7. Ulises Toledo   •  

    cuales son las condiciones que debe cubrir un teléfono para funcionar en voceo???

  8. Mario   •  

    Amigo no me funciona, cuando marco la extension aparece: “your call can not be completed as dial…..” Que será? He probado varias cosas y nada. Tengo Elastix 2.4.0. Muchas gracias por tu ayuda!!

Responder a cesar vega Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>