viernes, 29 de octubre de 2010

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í 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, 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 anteriormente sólo disponibles en costosos sistemas 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 reconocido 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 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.
Asterisk se empieza a adoptar en algunos entornos corporativos como una gran solución de bajo coste junto con SER (Sip Express Router).

Historia

El programa de software 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 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 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 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 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 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 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.
  • DAHDI: Soporte para hardware. Drivers de tarjetas. (Anteriormente ZAPTEL)
  • Addons: Complementos y añadidos del paquete Asterisk. Opcional.
  • 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

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 abril de 2008 son las siguientes:

Versión 1.6

  • Asterisk Versión 1.6.0.9
  • Asterisk Versión 1.6.1.12
  • Asterisk Versión 1.6.2.0

Versión 1.4 Estable

  • Asterisk Version 1.4.23.1
  • DAHDI Linux Version 2.1.0.4
  • DAHDI Tools Version 2.1.0.2
  • Libpri Version 1.4.7
  • Addons Version 1.4.7

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 del programa de sofware. 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 costos 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 de 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%       

No hay comentarios:

Publicar un comentario