You are on page 1of 4

Si quiere una PBX, presione *

Publicado: lunes 01 septiembre, 2008.

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.

Más que un sistema PBX, Asterisk es un motor completo de telefonía que


ofrece una flexibilidad asombrosa. Fue creado por Mark Spencer, que
también es conocido por haber desarrollado Gaim, el popular cliente de
mensajería instantánea. Spencer es el fundador de Digium, la empresa
que se encuentra detrás del desarrollo de Asterisk y que comercializa las
interfaces necesarias para conectar teléfonos a una PC.

Los requisitos de la PC en donde instalaremos Asterisk estarán intrínsecamente relacionados con la


cantidad máxima de llamadas concurrentes que queramos manejar, así como los protocolos y
codecs de audio que utilizaremos. Para soportar hasta 10 llamadas concurrentes mediante el pro t
o c o l o IAX y con el codec GSM, obtendremos un buen rendimiento en una PC con procesador de 1
GHz. y 512 MB de memoria RAM.

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.

En realidad, la ingeniería de las interfaces FXO no es muy compleja. En general, se trata de


softmodems PCI modificados. Por lo tanto, un usuario con conocimientos de electrónica que consiga
algún softmodem con chipset Intel 537, Ambient MD3200 o Motorola 62802 podría construirse una
interfaz FXO sin mucho esfuerzo.

Instalación bajo Linux


La forma más fácil y segura de instalar Asterisk es utilizando APT bajo Debian o alguna distribución
derivada de él. De esta forma, sólo tendremos que tipear: apt-get install asterisk, y ya tendremos
Asterisk instalado en nuestra PC.

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.

En el directorio /etc/asterisk encontraremos una gran variedad de archivos de configuración con


extensión .conf. Y hay uno llamado zaptel.conf que se encuentra en /etc. El mismo contiene los
parámetros de configuración de nuestra placa FXS/FXO y la forma más fácil de configurarlo es
instalando el paquete zaptel con apt: apt-get install zaptel Esto generará un archivo zaptel.conf por
defecto en /etc e instalará un script llamado genzaptelconf (generalmente en el directorio usr/sbin).
genzaptelconf revisa los dispositivos que se encuentran en /proc/zaptel y modifica zaptel.conf para
que todo funcione correctamente. Si surge algún error, tendremos que editar el archivo a mano.

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:

• extensions.conf: es el dialplan, el corazón de la PBX. Define la forma en que Asterisk manejará


las llamadas entrantes y salientes y también contiene todos los números de extensión. El dialplan
está dividido en secciones llamadas contextos. Una extensión, dentro de un contexto, tiene una
prioridad y una aplicación que define la acción que se ejecutará. Por ejemplo, la aplicación dial()
nos permite hacer una llamada a otro número.

• asterisk.conf: especifica la ubicación de los difere n t e s componentes de Asterisk (archivos de


log, configuración, scripts).

• 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).

• s es la extensión start, que se utiliza por defecto cuando no se proporciona un número de


extensión.

• 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.

Algunas prestaciones de Asterisk:


• Como Switch PBX: puede ser configurado como el núcleo de una PBX y puede utilizar conexiones
VoIP, analógicas (POTS) o digitales (T1/E1). Soporta una amplia variedad de sistemas operativos
(Linux, Mac OS, OpenBSD, FreeBSD, Solaris) y ofrece características avanzadas que a menudo sólo
se encuentran en PBXs propietarias de alto costo. Asterisk, en cambio, se distribuye bajo licencia
GPL y puede operar prácticamente con cualquier equipo de telefonía basado en estándares con
hardware de bajo costo.

• 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.

 
 

You might also like