Mark empezó en el mundo Linux con Slackware en 1994 (kernel versión 1.09). Uno de los pocos en Auburn, Alabama por aquellos tiempos que conocía cualquier cosa sobre Linux. Después de una temporada con Adtran (un proveedor global de equipos de telecomunicaciones) creó su propia compañía.
Asterisk, la aplicación de centralita telefónica PBX bajo licencia GPL, fue desarrollada por Mark Spencer, 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.
Este fue el principio del fenómeno mundialmente conocido como Asterisk®, la centralita telefónica construida por Mark después de su experiencia desarrollando GAIM (ahora llamado Pidgin) entre otros proyectos de software libre.
Después de explicarles sus necesidades de capital a sus amigos en Adtran ellos se ofrecieron a invertir en su compañía. Se dio cuenta que recibía más interés en el PBX Asterisk que por sus servicios generales de consultoría Linux. Entonces mark se reunió con Jim Dixon que estaba construyendo hardware open source. Su primer proyecto fue construir una tarjeta T1 open source. Estos ingresos les mantenían a flote pero no recibían contribuciones de nadie y el resto tan solo cogían sus diseños y manufacturaban tarjetas que competían con las suyas.
Posteriormente "Linux Support Services" se convertiría en el año 2002 en "Digium", redirigiendo sus objetivos al desarrollo y soporte de Asterisk...
El dinero era escaso en Digium hasta que un día un vendedor de DeltaCom (una competitiva compañía de comercio local) entró para venderles a Mark y a Jim una T1. Después de entender lo que Mark y Jim habían hecho el vendedor se ofreció a ayudarles. A partir de este punto empezaron a ver un incremento en las ventas, y acabaron el año con beneficios. Después de grandes ingresos durante largo tiempo Mark fue capaz de hacer crecer el negoció sin recabar mucho en los beneficios.
Cuando Mark empezó con Asterisk hizo una cosa muy inteligente. Se le requería firmar un acuerdo a cada desarrollador que contribuía en el código para que el copyright se asignara a Asterisk y el compromiso que no hay encumbramientos en el código contribuido. Esto le permitió sentirse confortable con su proyecto que era completamente open source y que su compañía podría relicenciar el código a vendedores OEM como 3COM y NTT. Digium también ha hecho las cosas bien al mantener la versión de la comunidad con las funcionalidad completa y no crear una escisión entre ellos y los que los apoyan.
La primera release fue Asterisk 0.1, y el tarball ocupaba tan sólo 124.3K que una vez descompactado venían a ser unos 506 KB en 96 archivos. Para correr Asterisk necesitábamos básicamente Linux y libaudiofile:
The Asterisk Open Source PBX by Mark Spencer <markster@linux-supp***.***> Copyright (C) 1999, Linux Support Services, LLC and Adtran, Inc. ================================================================ * WHAT IS ASTERISK Asterisk is an Open Source PBX and telephony toolkit. It is, in a sense, middleware between Internet and telephony channels on the bottom, and Internet and telephony applications at the top. For more information on the project itself, please visit the Asterisk home page at: http://www.asteriskpbx.com * REQUIRED COMPONENTS == Linux == Currently, the Asterisk Open Source PBX is only known to run on the Linux OS, although it may be portable to other UNIX-like operating systems as well. == libaudiofile == If you want to use format_wav module, then you need a very recent version of libaudiofile (at least version 0.2.0, or you can apply the following patch to version 0.1.9): </markster@linux-supp***.***>
Esta primera release fue liberada en 1999 bajo licencia GPL2 pero tenia clausulas adicionales que indicaban que en todos los productos derivados debía constar el nombre de Linux Support Services, LLC o Adtran Inc., también advertían sobre códecs cubiertos por patentes de software, y la más curiosa es que si emprendíamos acciones legales por infringir patentes en referencia a algún software Open Source nuestro derecho a usar o distribuir el software se terminaba de inmediato:
================================================================= Please note that Asterisk is distributed under the GNU General Public License, with the following additional notices (some of these notices may be revised or relaxed in future releases): a) All distributions or derivative works MUST not remove the name of Linux Support Services, LLC or Adtran, Inc. from the product. b) Some codecs included in the full Asterisk distribution *may* be covered by software patents. c) If You bring legal action against an organization or individual for patent infringement regarding any Open Source software (as defined by the Open Source Definition available at http://www.opensource.org/osd.html) then your right to use and/or distribute this software is immediately terminated. =================================================================
De todos modos estas clausulas duraron bien poco, ya que de los primeros cambios que se hicieron para la release 0.1.1 fue aparte de arreglar numerosos bugs revisar la licencia que pasó a ser pura GPL, y nada más.
* Asterisk 0.1.1 -- Revised translator, fixed some general race conditions throughout * -- Made dialer somewhat more aware of incompatible voice channels -- Added Voice Modem driver and A/Open Modem Driver stub -- Added MP3 decoder channel -- Added Microsoft WAV49 support -- Revised License -- Pure GPL, nothing else -- Modified Copyright statement since code is still currently owned by author -- Added RAW GSM headerless data format -- Innumerable bug fixes
Asterisk está formado por varios paquetes:
Zaptel, inicialmente llamado Zapata se basó en el Zapata Telephony Project, el driver Open Source de Zapata Telephony (anteriormente llamada BSD Telephony Of Mexico).
La primera release fue Zapata 0.1.1, que venía a ser el original liberado por Zapata Telephony en Octubre del año 2000. De hecho no se introducieron cambios hasta la release 0.1.6, donde se movieron las estructuras de red para usar malloc() cuando fuera necesario, se le añadió soporte HDLC PPP, junto con algunos arreglos multicanal en Torisa y Zaptel:
... 0.1.6: * Move network structures to be malloc()'d when needed * Add HDLC PPP Support * Fix multi-channel stuff in zaptel and torisa
En la primera release, Libpri 0.1 Markster nos relataba que libpri era la implementación en C de la especificación para primarios RDSI basado en la especifiación de Bellcore del 12 de Mayo de 2001, por aquel entonces Asterisk pasó a ofrecer soporte para conexiones digitales:
libpri: An implementation of Primate Rate ISDN Written by Mark Spencer <markster@linux-supp***.***> What is libpri? =============== libpri is a C implementation of the Primary Rate ISDN specification. It was based on the Bellcore specification SR-NWT-002343 for National ISDN. As of May 12, 2001, it has been tested work with NI-2, Nortel DMS-100, and Lucent 5E Custom protocols on switches from Nortel and Lucent. </markster@linux-supp***.***>
Las funcionalidades y añadidos que no podían ser incluidas en el núcleo se fueron incorporando al paquete Addons, y también se pasó a ofrecer paquetes de sonidos.
En la release 1.4.0, Asterisk ya contaba con:
| 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 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% |
El desarrollo de Asterisk continúa imparable, donde ya tenemos cinco betas de la release 1.6 que aportaran de nuevo un gran número de cambios y mejoras entre ellos una muy esperada reescritura del chan_sip, mejoras para videoconoferencia, JACK ,....
Cuando se le pregunta a Mark sobre el futuro del hardware open source no esta convencido que funcione de la misma manera que el software open source. El cita la barrera para entrar en la producción de hardware en contra de el punto mucho más bajo para entrar en el desarrollo de software. En ejemplo es el Open Cores Project que corre en Field Programmable Gate Arrays(FPGA).
Fuentes:
Wikipedia:
Otros: