miércoles, abril 09, 2008

Asterisk para montar centralita telefonica Opensource

Asterisk es una aplicación de software libre (bajo licencia GPL) de una central telefónica (PBX). Como cualquier PBX, se puede conectar un número determinado de teléfonos para hacer llamadas entre sí e incluso conectar 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, MacOSX, Solaris y Microsoft Windows, aunque la plataforma nativa (GNU/Linux) es la mejor soportada de todas.
Asterisk incluye muchas características anteriormente sólo disponibles en sistemas costosos propietarios PBX como buzón de voz, conferencias, IVR, distribución automática de llamadas, y otras muchas más. 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 por Linux.
Para conectar teléfonos estándar analógicos son necesarias tarjetas electrónicas telefónicas FXS o FXO fabricadas por Digium u otros proveedores, ya que para conectar el servidor a una línea externa no basta con un simple módem.
Quizá lo más interesante de Asterisk es que soporta 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.
Lejos de poder competir con las compañías que comercializan soluciones de VoIP Hw/Sw de alta calidad como Alcatel-Lucent, Cisco, Avaya ó Nortel, Asterisk se empieza a adoptar en algunos entornos corporativos como solución de bajo coste junto con SER (Sip Express Router).

Historia
La aplicación Asterisk fue desarrollada 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 Linux. Para ello necesitaba una centralita 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 2002 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 una 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 las aportaciones que han realizado.
Además se utilizan las habituales herramientas de este tipo de proyectos, como listas de correo, IRC, o documentación on line.

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 a 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 centralitas telefónicas basadas en Asterisk.
Digium, la empresa creada por Mark Spencer, amplia 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á compuesto por los módulos siguientes:
Asterisk: Ficheros base del proyecto.
Zaptel: Soporte para hardware. Drivers de tarjetas.
Addons: Complementos y añadidos del paquete Asterisk. Opcional.
Libpri: Soporte para conexiones digitales. Opcional.
Sounds: Aporta sonidos y frases en diferentes idiomas.
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
Las versiones tanto estables como de desarrollo de cada módulo pueden descargarse en la zona de descargas de la página oficial de Asterisk.
A fecha de Marzo de 2008 son las siguientes:

Versión 1.6 (en pruebas)
Asterisk Versión 1.6.0 beta7

Versión 1.4 Estable
Asterisk Version 1.4.19
Zaptel Version 1.4.9
Libpri Version 1.4.3
Addons Version 1.4.6

Versión 1.2 y 1.0
Estas versiones se consideran paralizadas y no se continuarán manteniendo.
Nota: Actualmente la rama 1.4 es la aconsejada para sistemas en producción.

Radiografía
A continuación se presentan dos cuadros con algunos datos y cifras de la aplicación. Estos datos se han obtenido aplicando el modelo COCOMO. Aunque este modelo se aplica habitualmente a procesos "clásicos" de producción de software, y en consecuencia las cifras obtenidas han de tomarse con precaución, permite hacerse una idea del tamaño del proyecto y el coste que podría haber alcanzado en caso de haber sido construido como software propietario.
Resumidamente, en el cálculo de costes se han tenido en cuenta dos factores, el salario medio de un desarrollador, cifrado en 56.286 $/año, y el coste que toda empresa tiene que afrontar, además de los sueldos de los programadores, para lanzar un producto al mercado.
Estado actual de Asterisk
Página web
http://www.asterisk.org
Inicio del proyecto
1999
Versión analizada
Version 1.4.0 - Diciembre 2006
Líneas de código fuente
250.463
Esfuerzo estimado de desarrollo (persona/año - persona/mes)
66,03 - 792,30
Estimación de tiempo (años)
2,63
Estimación de número de desarrolladores en paralelo
25,08
Coste total estimado
8.919.128 $
Lenguajes de programación utilizados en Asterisk 1.4.0
Lenguaje
Líneas de código
Porcentaje
ANSI C
232.514
92,83%
sh
7.550
3,01%
cpp
5.815
2,32%
perl
2.259
0,90%
yacc
1.508
0,60%
asm
642
0,26%
tcl
113
0,05%
PHP
62
0,02%
Nota: Datos generados con SLOCCount - David A. Wheeler

Véase también
Trixbox
AstLinux
FreePBX
AsteriskNOW

Enlaces externos
www.asterisk.org Página oficial del proyecto (en inglés)
Página principal de Digium (en inglés)
Pagina de la comunidad Asterisk en Español
Página de la comunidad Asterisk de Latino America (en español)
Debian Package
Bug Tracker
Listas de correo
Wiki de Asterisk en español
Página principal de documentación de Asterisk (en inglés)
Página de la comunidad Asterisk de habla hispana
Ejemplos de instalación y configuración de Asterisk
Página de documentación en Castellano de Asterisk
Destar: Una herramienta web para configurar Asterisk de manera sencilla (con soporte para varios idiomas: español, francés e inglés). (en inglés)
Base de datos de información sobre Asterisk y VoIP en General (en inglés)
Instalación fácil de Asterisk - Bulma
Introducción a Asterisk - Linux-Málaga
Ayuda a usuarios de Asterisk - Perú
Jornada VoIP Enpresa Digitala - Plataforma Asterisk
Usuarios de Asterisk LatinoAmerica
Slast Linux - Asterisk Live CD- (En Ingles)

Mapa de Usuarios de Asterisk
AsteriskCounter Contador y Mapa de usuarios de Asterisk

Aplicaciones PBX
http://www.sipfoundry.org/sipX Aplicación PBX de software libre.
http://wiki.gnutelephony.org/index.php/GNU_Bayonne Aplicación PBX del proyecto GNU

No hay comentarios: