# Asterisk

Asterisk es un programa de software libre (bajo licencia GPL) que proporciona funcionalidades de una central telefónica (PBX). Como cualquier PBX, se puede conectar un número determinado de teléfonos para hacer llamadas entre sí dentro de una misma organización e incluso acceder a comunicaciones fuera de la misma a la PSTN o conectando a un proveedor de VoIP o bien a una RDSI tanto básicos como primarios.
Mark Spencer, de Digium, inicialmente creó Asterisk y actualmente es su principal desarrollador, junto con otros programadores que han contribuido a corregir errores y añadir novedades y funcionalidades. Originalmente desarrollado para el sistema operativo GNU/Linux, Asterisk actualmente también se distribuye en versiones para los sistemas operativos BSD, Mac OS X, Solaris y Microsoft Windows, aunque la plataforma nativa (GNU/Linux) es la que cuenta con mejor soporte de todas.
Asterisk incluye muchas características que anteriormente sólo estaban disponibles en costosos sistemas propietarios PBX, como buzón de voz, conferencias, IVR, distribución automática de llamadas, y otras muchas. Los usuarios pueden crear nuevas funcionalidades escribiendo un dialplan en el lenguaje de script de Asterisk o añadiendo módulos escritos en lenguaje C o en cualquier otro lenguaje de programación soportado en GNU/Linux.
Para conectar teléfonos estándares analógicos son necesarias tarjetas electrónicas telefónicas FXO y/o FXS fabricadas por Digium u otros proveedores. La primera consiste en cualquier dispositivo que actúe como un teléfono tradicional, conectado a una línea telefónica convencional, o sea es capaz de dar tono de marcado, hacer ring, descolgar y colgar. El segundo es un generador de línea telefónica interna, provee la alimentación, y las señales eléctricas (tensiones) necesarias para generar el tono de llamada y para establecer la comunicación del audio. En resumen FXO se conecta a la línea telefónica de un proveedor y FXS genera una línea telefónica interna.
Quizá lo más interesante de Asterisk es que reconoce muchos protocolos VoIP como pueden ser SIP, H.323, IAX y MGCP. Asterisk puede interoperar con terminales IP actuando como un registrador y como gateway entre ambos.
Uno de los puntos fuertes del software Asterisk es que permite la unificación de tecnologías: VoIP, GSM y PSTN.
Asterisk se empieza a adoptar en algunos entornos corporativos como una gran solución de bajo coste junto con SER (Sip Express Router) aunque este último desde el 2007 que no recibe actualizaciones o nuevas versiones. Hoy en día Asterisk promete mucho más desarrollo y soporte que la mayoría de plataformas abiertas de telefonía.

## Historia

El programa de software Asterisk fue desarrollado por Mark Spencer, por entonces estudiante de ingeniería informática en la Universidad de Auburn, Alabama. Mark había creado en 1999 la empresa "Linux Support Services" con el objetivo de dar soporte a usuarios de GNU/Linux. Para ello necesitaba una central telefónica, pero ante la imposibilidad de adquirirla dados sus elevados precios, decidió construir una con un PC bajo Linux, utilizando lenguaje C.
Posteriormente "Linux Support Services" se convertiría en el año 2001 en "Digium", redirigiendo sus objetivos al desarrollo y soporte de Asterisk.

## Desarrollo del proyecto

El modelo de desarrollo se basa en el uso del sistema de control de versiones Subversion y en un procedimiento de informe de errores denominado Asterisk Bug Tracker. Este último cuenta a su vez con un sistema "de méritos", denominado Karma, en el que aparecen los colaboradores en un ranking, de acuerdo con una puntuación (positiva o negativa) otorgada a los aportes que han realizado.
Además se utilizan las habituales herramientas de este tipo de proyectos, como listas de correo, IRC, o documentación en línea.

## Estructura organizativa

Mark Spencer es el organizador y principal desarrollador, apoyado por un grupo de colaboradores que reciben el nombre de "administradores". Los administradores realizan principalmente labores de programación y control del software generado. Existe también un amplio grupo de programadores, llamados "managers" que pueden aportar soluciones a errores documentados o crear nuevas funcionalidades. Por último están los denominados "reporters", todos aquellos colaboradores que realizan informes sobre errores detectados.
Toda nueva funcionalidad es probada exhaustivamente antes de formar parte del repositorio del sistema de control de versiones y ha de contar finalmente con el visto bueno de los responsables de los repositorios, de acuerdo con criterios de oportunidad, prioridad o importancia de la nueva funcionalidad propuesta.

## Industria relacionada

Existen multitud de empresas relacionadas con Asterisk. La mayor parte de ellas siguiendo uno de los modelos de negocio más habituales del software libre, como es el de aportar valor añadido al software, en este caso mediante el diseño, instalación, formación y mantenimiento de centrales telefónicas basadas en Asterisk.
Digium, la empresa creada por Mark Spencer, amplía este modelo de negocio tanto con la venta de hardware específico, fundamentalmente tarjetas de comunicación, como con la venta de software propietario, entre el que destaca el "Asterisk Business Edition", aplicación basada en Asterisk a la que se le incorporan ciertas funcionalidades.

## Estado actual

La versión estable de Asterisk está compuesta por los módulos siguientes:
* Asterisk: Ficheros base del proyecto.
* DAHDI: Soporte para hardware. Drivers de tarjetas. (Anteriormente ZAPTEL)
* Addons: Complementos y añadidos del paquete Asterisk. Opcional. (Incluidos en el paquete de Asterisk a partir de la versión 1.8.x)
* Libpri: Soporte para conexiones digitales. Opcional.
* Sounds: Aporta sonidos y frases en diferentes idiomas. (Incluidos en el paquete Asterisk)
Cada módulo cuenta con una versión estable y una versión de desarrollo. La forma de identificar las versiones se realiza mediante la utilización de tres números separados por un punto. Teniendo desde el inicio como primer número el uno, el segundo número indica la versión, mientras que el tercero muestra la revisión liberada. En las revisiones se llevan a cabo correcciones, pero no se incluyen nuevas funcionalidades.
En las versiones de desarrollo el tercer valor siempre es un cero, seguido de la palabra "beta" y un número, para indicar la revisión.

### Versiones

* Versión 17 Standard
** Versión estándar no LTS.
* Versión 16 LTS
** Asterisk Version 16.0.0 Estable
* Versión 13 LTS
** Asterisk Versión 13.4.0 Estable
* Versión 12
** Asterisk Versión 12.8.2 Estable
* Versión 11 LTS
** Asterisk Versión 11.18.0 Estable
* Versión 1.8 LTS
** Asterisk Versión 1.8.32.3 Estable
* Versión 1.6
** Asterisk Versión 1.6.0.28 Estable (Descontinuada)
** Asterisk Versión 1.6.1.25 Estable (Descontinuada)
** Asterisk Versión 1.6.2.20 Estable (Descontinuada)
* Versión 1.4 LTS
** Asterisk Versión 1.4.42 Estable (Descontinuada)
** Asterisk Addons Versión 1.4.13 Estable (Descontinuada)
* Versión 1.2 y 1.0
** Estas versiones se consideran paralizadas y no se continuarán manteniendo.
* Módulos de Digium
** DAHDI Linux Versión 2.5.0.1 Estable
** DAHDI Tools Versión 2.5.0.1 Estable
** Libpri Versión 1.4.12 Estable