Professional Documents
Culture Documents
Si Quiere Una PBX
Si Quiere Una PBX
Nada se tira, todo se recicla. Esa parece ser la filosofía implícita de este
poderoso motor de telefonía, que nos permite montar una central
telefónica avanzada con una PC no muy moderna y modems reciclados.
Prepárese para adentrarse en los secretos de Asterisk.
Pero una PC con Asterisk instalado no tendría mucho sentido si no pudiésemos conectarle teléfonos.
Para ello necesitaremos placas FXS (Foreign Exchange Station) o FXO (Foreign Exchange Office).
Las primeras sirven para conectar teléfonos analógicos y las segundas para conectar teléfonos IP.
Algunas de las empresas que las fabrican son la propia Digium, OpenVox y X100P.
La única desventaja de usar APT es que tal vez no encontremos la versión más reciente de Asterisk
en los repositorios. Se recomienda instalar la versión 1.4 o superior, pues su lenguaje de scripting
sufrió modificaciones importantes a partir de esa versión.
Si queremos asegurarnos de contar con la versión más reciente, podemos descargar el código
fuente de la web de Asterisk y compilarlo nosotros mismos. Aunque no es tan fácil como usar APT.
Otra opción es usar paquetes RPM, sobre todo si usamos distribuciones como Red Hat. Sin
embargo, las opciones de seguridad por defecto de Asterisk no están tan bien configuradas como la
de los paquetes de los repositorios de APT.
Configuración
A primera vista, la tarea de configurar Asterisk puede parecer titánica. No es que sea algo muy
difícil de hacer, sino que Asterisk puede hacer tantas cosas que sus parámetros de configuración
son muy variados. Es por ello que sólo daremos un repaso de los principales archivos de
configuración.
Todos los archivos tienen que tener owner asterisk y también pertenecer al grupo asterisk, por lo
que hay que prestar atención cuando se editan los archivos utilizando otros usuarios, porque
Asterisk puede dejar de funcionar.
Los demás archivos los tendremos que editar a mano, dependiendo de las funciones que
desempeñará nuestro sistema. Veamos algunos de los más importantes:
• manager.conf: aquí figuran los usuarios que pueden utilizar la AMI (Asterisk Managing Interface),
sus contraseñas, privilegios, direcciones IP, etc.
• meetme.conf: utilizado para conferencias. Este arc h i v o se lee cada vez que se ejecuta la
aplicación meetme() en el dialplan.
• queues.conf: permite crear colas, una función muy útil. Gracias a las colas, el sistema podrá
contestar las llamadas inmediatamente sin fijarse si hay operadores disponibles. Si todas las líneas
están ocupadas, la llamada irá a una cola de espera hasta que se desocupe un operador.
• voicemail.conf: como su nombre lo indica, permite configurar las opciones de las casillas de
mensajes de voz.
Los demás archivos de configuración tienen que ver con la forma en que Asterisk maneja los
diversos protocolos de señalización y comunicaciones, la creación de CDRs, etc.
Algo a tener muy en cuenta a la hora de utilizar Asterisk es la seguridad. Como la telefonía IP
utiliza paquetes UDP, es susceptible a ataques de flooding. Por lo tanto, hay que poner especial
atención a la hora de configurar iptables o ipfilter.
¡Hola mundo!
Emulando una práctica clásica al aprender un lenguaje de programación cualquiera, vamos a crear
un pequeño ejemplo de dialplan que atienda una llamada, reproduzca un archivo de audio que diga
"¡Hola mundo!" y cuelgue. Veamos el código:
[incoming]
exten => s,1,Answer()
exten => s,n,Playback(hello-world)
exten => s,n,Hangup()
Fácil, ¿no? Veamos en qué consiste cada cosa:
• Incoming es el contexto (llamadas entrantes).
• Answer() es una aplicación que atiende la llamada, configurando el canal de recepción. Hay
muchas aplicaciones que no re q u i e ren hacer un Answer() al principio, pero es una buena
práctica usarlo. El número 1 indica la prioridad, por lo tanto siempre lo primero que haremos es
llamar a Answer(). Las prioridades son leídas en orden, de arriba hacia abajo.
• Playback() reproduce un archivo de sonido (en este caso hello-world.gsm), ignorando cualquier
tecla que el usuario presione. La carpeta por defecto para los archivos de sonido es
/var/lib/asterisk/sounds, pero puede especificarse una ruta diferente.
• Hangup() cuelga y finaliza el contexto. Si ya tiene su servidor Asterisk configurado, puede probar
esto insertando estas líneas en el archivo extensions.conf.
Conclusión
Como habrán visto a lo largo de esta nota, Asterisk no es un programa que deslumbre por tener
una interfaz gráfica de última generación, sino por su eficiencia y versatilidad. Hemos visto sólo una
fracción de lo que este programa puede hacer, pues para dominarlo completamente sería necesario
escribir cientos de páginas.
• Como Media Gateway: permite expandir a la telefonía PSTN tradicional con la telefonía IP
moderna. Su arquitectura modular permite trabajar indistintamente con un gran número de
protocolos de señalización (H323, IAX y SIP, entre otros) y codificadores de audio.
• Como Media Server: con Asterisk es fácil configurar un IVR, contestadores automáticos, correo de
voz, etc. Hasta puede usarse como una interfaz telefónica para su sitio web o como sistema de
mensajería unificada.
Direcciones útiles
• http://www.asterisk.org: Página principal de Asterisk.
• http://www.asteriskdocs.org: aquí se puede descargar gratis el libro Asterisk: The Future of
Telephony en formato PDF.
• http://www.asteriskguru.com: Tutoriales en inglés.
• http://www.asterisk-la.org: Web latina con información en castellano sobre Asterisk.
• http://www.wiki.asterisk-es.org: Wiki español con documentación en castellano.