Altavoz con Asterisk

13 Dic

Retomando las buenas prácticas de la tecnología, quiero compartir este pequeño artículo que alguna vez desarrollé y que por estos días necesité, pero como no documenté en su momento, tuve que volver a investigar.

El objetivo que se quiere alcanzar es que al marcar cierto código desde una extensión telefónica, se escuche a través de los parlantes del equipo, lo que se hable en la bocina del teléfono. La configuración de lo que queremos hacer es fácil encontrarla en la red, sin embargo la escribiremos, pero queremos agregar una sección de Solución de Problemas porque en general funciona de una, así que si no funciona como me pasó a mi en las ocasiones que tuve que implementar, entonces queda uno aburrido, y no es la idea.

Configuración

Haremos uso del módulo chan_oss de Asterisk, entonces lo primero será configurar el archivo chan_oss.conf generalmente ubicado en /etc/asterisk:

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

En el archivo modules.conf verificamos que el módulo en cuestión se cargue, debemos tener en cuenta que el módulo chan_alsa no debe cargarse al mismo tiempo:

null   
noload => chan_alsa.so
load => chan_oss.so

A continuación viene la sección del dialplan, en sistemas con FreePBX es buena idea trabajar en el contexto from-internal-custom el cuál sabemos está incluido en el contexto from-internal que es el que aparece en la configuración del módulo chan_oss. Luego, en el archivo extensions_custom.conf que también se encuentra en el directorio de archivos de configuración de Asterisk, /etc/asterisk, escribiremos:

null   
[from-internal-custom]
 
exten => *1234,1,Playback(beep)
 same => n,Dial(console/dsp,20,A(beep))
 same => n,Hangup
 
; end of from-internal-custom

Lo que indica que cuando marcaremos *1234 se conectará con el sonido del sistema para poder hablar desde el teléfono. El beep en la primera línea se ha colocado porque en algunos sistemas éste no se escucha desde el teléfono.

Quiero aclarar que no estoy explicando con lujo de detalles en esta ocasión porque pretendo preparar publicaciones especiales con ese objetivo.

Bastaría reiniciar Asterisk y esto debería funcionar, pero en muchos casos no lo hace:

Solución de Problemas

  • Otro inconveniente pueden ser los permisos:
null   
usermod -a -G audio asterisk
chmod 0777 /dev/dsp
  • En algunos casos,  vemos que ninguna de las utilidades para manejar el sonido funcionan (alsamixer, mocp), en mi caso estaba usando una tarjeta de sonido conectada por usb pues el servidor no poseía una tarjeta de sonido, así que tuve que cambiar el archivo /etc/modprobe.d/alsa-base.conf y cambiar la línea:
null   
# Keep snd-usb-audio from beeing loaded as first soundcard
options snd-usb-audio index=-2

por

null   
# Keep snd-usb-audio from beeing loaded as first soundcard
options snd-usb-audio index=0

Acerca del autor

Christian Gutierrez ha escrito 22 publicaciones en este blog.

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why. – Anonymous Developer

Un comentario a “Altavoz con Asterisk”