Introducción

De Asterisk Wiki
Ir a la navegación Ir a la búsqueda

Asterisk es el mayor proyecto de software libre diseñado para la integración y unificación de los sistemas de comunicaciones conocidos

Originalmente fue concebido como una plataforma para la generación de un sistema PBX, pero con el tiempo ha ido evolucionando a otro tipo de usos, como Pasarelas VoIP, sistemas integrales para call-centers, salas de conferencias, buzones de voz, y todo tipo de aplicaciones que tengan relación con las comunicaciones en tiempo real.

Comparativamente Asterisk es para el mundo de las comunicaciones lo mismo que sería Apache para el mundo de las aplicaciones web. Apache es un servidor web, y Asterisk es un servidor de comunicaciones.


Introducción

Asterisk es una plataforma de comunicaciones basada en la filosofia Open Source

Es capaz de convertir un ordenador comun en un completo servidor de comunicaciones.

¿Que es Asterisk?

Plataforma comunicaciones.jpg

Realmente esta pregunta puede ir mucho más allá de la definición común que se establece para el sistema.

Existen ciertas consideraciones que hacen a Asterisk lo que realmente es en la actualidad, y una de las principales surge de la propia naturaleza del sistema: La filosofía Open Source.

Considerando Asterisk como una plataforma integral de comunicaciones, podría considerarse la más importante, y ha resultado como única por muchos años en un entorno, donde todos los sistemas de comunicación eran totalmente privativos. Aunque con el tiempo, fueron sacando interfaces comúnmente conocidos como CTI para la integración de sistemas de terceros para cumplir funciones muy específicas, la potencia de estas interfaces era bastante limitada dado que el núcleo de los sistemas privados, permanencia cerrado al público. Con Asterisk se sienta un precedente desde el momento que el código es de libre acceso, modificación y ampliación, dado que múltiples colectivos pudieron ampliar sus necesidades y adaptarlas a lo que venían buscando en un momento concreto, que un sistema de comunicaciones pudiera ofrecerles, dentro de sus extensivas bondades.

Historia

El desarrollo de Asterisk fue iniciado en el año 1999 por Mark Spencer. En aquel momento ya existían otros proyectos de telefonía basados en la ideología Open Source. Pero esos proyectos estaban realmente enfocados a la telefonía a nivel software, basados en la búsqueda de establecer comunicaciones entre ordenadores a través de los sistemas de audio. La diferencia de Asterisk con estos proyectos, era la idea preconcebida, de entrelazar por primera vez la red de telefonía común (PSTN) con un ordenador.

Y para ello se formó una alianza con un proyecto de telefonía llamado Zapata iniciado por Jim Dixon. La idea del proyecto Zapata, era la posibilidad de diseñar tarjetas específicas para convertir la señal analógica que provenía de la PSTN a una señal digital, y ahorrar costes en la construcción de dispositivos de telefonía y audio avanzados (y muy costosos) gracias a la tremenda reducción de costes que sufrían año tras año los procesadores. A través de estos, cada vez más potentes, y baratos, se podrían procesar una o varias señales de audio digital (DSP) sin gran dificultad y poder paralelamente construir teléfonos con ese coste reducido.

Hoy en día el proyecto Zapata, fue integrado totalmente en Asterisk, y Asterisk patrocinado por una empresa que construye dispositivos de telefonía digital, llamada Digium, y se ha acomodado como una parte más de Asterisk con un nuevo nombre: DAHDI (son las siglas de Digium Asterisk Hardware Device Interface).

La primera version estable surgio casi 5 años despues, Asterisk 1.0. A partir de aqui el sistema de versiones ha evolucionado de la siguiente forma:

  • Asterisk 1.0 - 2004
  • Asterisk 1.2 - 2005
  • Asterisk 1.4 - 2006
  • Asterisk 1.6.0 - 2008
  • Asterisk 1.6.1 - 2009
  • Asterisk 1.6.2 - 2009
  • Asterisk 1.8 - 2010
  • Asterisk 1.10 - 2011 (Nuevo Nombre Asterisk 10)

Para seguir la evolucion de versiones puede hacerse desde la web: [Asterisk

Instalar Ogre3D

Como no podía ser de otra manera, para comenzar a seguir el manual será necesario instalar el SDK de Ogre3D en nuestro sistema. En IberOgre se exponen dos artículos a tal efecto cubriendo los sistemas operativos Windows y GNU/Linux (con especial atención a distribuciones basadas en Debian).

Enfoques de trabajo en Ogre3D

Ogre3D tiene una virtud muy importante, es increíblemente flexible, escalable y adaptable a nuestras necesidades. Es posible utilizarlo dejando que el motor se encargue de muchas tareas pesadas o, en cambio, tomar el control sobre dichas tareas y conseguir que el sistema haga las cosas exactamente como deseemos. Aunque no se profundizará en exceso en este aspecto, sí se pretende dejar la puerta entreabierta para que el lector pueda seguir explorando más adelante.

Manejar escenas en Ogre3D

Archivo:Speedtree.jpg
Plugin SpeedTree

El sistema de gestión de escenas en Ogre es muy complejo y profundo. Aquí conoceremos sus fundamentos y aprenderemos a componer escenas utilizando modelos tridimensionales, geometría estática, fuentes de luz, etc. Así mismo realizaremos operaciones con cámaras (posicionamiento, movimiento, seguimiento...) y con multitud de otros elementos.

Según el tipo de videojuego al que nos estemos enfrentando existen técnicas y enfoques a la hora de manejar escenas que funcionan mejor que otras. Estos son temas más avanzados e IberOgre simplemente realizará varias pinceladas al respecto.

Materiales y texturizado

Ogre3D pone a disposición del desarrollador un sistema de texturizado y materiales que ofrece un sinfín de combinaciones posibles. ¿Quieres que tu videojuego tenga un look oscuro? ¿Prefieres algo más desenfadado? ¿Quizás un aspecto más cercano al cómic? Las texturas y los materiales son los elementos que conseguirán que tus modelos 3D dejen de ser trozos de plástico gris y pasen a cobrar "vida".

En IberOgre aprenderemos a diseñar materiales que pueda comprender y aplicar Ogre3D. Comprenderemos cómo trabaja Ogre con ellos y actuaremos en consecuencia. No será necesario ahondar en exceso ya que el trabajo de texturizado es más propio de los diseñadores, los programadores deben saber cómo aplicar los mencionados materiales.

Animación básica

El mundo de la animación en 3D dentro del ámbito profesional es inmenso. Sólo hay que echarle un vistazo a las últimas películas de Pixar o a simuladores de fútbol como FIFA. En dichos desarrollos se produce un despliegue de medios sustentado por presupuestos astronómicos: captura de movimientos, actores reales, cientos de cámaras, muchas tomas... El detalle que alcanzan las animaciones faciales es, en ocasiones, muy sorprendente.

Hay que ser conscientes de las limitaciones que tenemos, en IberOgre trataremos animaciones básicas, lo suficiente para que se pueda comenzar a desarrollar un videojuego sencillo en tres dimensiones.

Efectos de partículas

Escena de combate con efectos de partículas en el RTS Glest

Una de los elementos que más llaman la atención en los videojuegos actuales (sobre todo si son de acción) son los efectos de partículas: humo, explosiones, lanzamiento de hechizos, la llamarada de un volcán en erupción... Ogre provee un sistema para producir efectos de partículas bastante bueno y en esta wiki vamos a trabajar con él. Aprenderemos a generar este tipo de efectos que darán un toque especial a nuestros videojuegos.

Videojuegos en 3D

Básicamente, es posible resumir los apartados anteriores en uno sólo. El objetivo es ofrecer suficientes contenidos que el lector pueda utilizar para iniciarse y ser capaz de desarrollar juegos básicos en tres dimensiones.

Plataforma ampliable

Por encima de todo, IberOgre pretende aprovechar el carácter colaborativo de las wikis para que otros usuarios, si lo desean, puedan aportar sus conocimientos sobre el tema. De esta manera los contenidos iniciales de IberOgre pueden verse ampliados o incluso es posible que sus objetivos crezcan. De hecho, esperamos que sea así.

Filosofía

Archivo:Gnu.png
Logo del proyecto GNU

Se pretende que todas las lecciones de IberOgre sigan una filosofía común basada en una serie de principios básicos. Es posible que no todos la compartan para proyectos individuales pero en este entorno es importante que se cumpla.

Compatibilidad

Todos los ejemplos de IberOgre funcionarán en Windows y en GNU/Linux sin modificar una sola línea de código. Ogre3D es un motor multiplataforma y es deseable aprovechar esta característica. Esto implica no utilizar funciones, bibliotecas o cualquier elemento específico de una plataforma.

Software Libre

La totalidad del código alojado en IberOgre está sujeto a una licencia GPL v3. Debe obtenerse una copia de dicha licencia con cada paquete con ejemplos que se descargue.

Buenas prácticas

El hecho de que se estén ofreciendo ejemplos no significa que éstos estén descuidados. Siempre se procurará que las prácticas en términos de programación sean correctas. En multitud de ocasiones, al estar trabajando con ejemplos, los problemas más típicos no se resuelven de la manera en la que se haría si se tratara de un trabajo mayor. A menos que la complejidad crezca más allá de lo razonable el código contendrá buenas prácticas.


Estructura de las lecciones

Los artículos referidos a un tema concreto se estructurarán en todo momento siguiendo unas directrices generales. Norma necesaria para proveer al conjunto de un nivel de coherencia y uniformidad aceptables. Salvo en ocasiones justificadas que resulten obvias las lecciones se estructurarán de la siguiente manera:

  • Introducción: pequeño apartado en el que se presenta el problema a abarcar a lo largo del capítulo. Su utilidad es establecer en contacto al lector, así mismo se adjuntará el índice de contenidos.
  • Requisitos previos: listado de las lecciones o conceptos que el lector debería conocer antes de enfrentarse a el capítulo actual. Si el lector cumple todos los requisitos no debería tener ningún problema para llegar a dominar el contenido de la lección.
  • Contenido: una o más secciones con el grueso del contenido de la lección. Cada apartado importante deberá estar acompañado de un ejemplo el cual deberá estar explicado (al menos los puntos más problemáticos) en el propio artículo.
  • Resumen: breve apartado en el que se repase o enumere el contenido de la lección.


Estado actual

IberOgre es aún muy joven y muchos de los objetivos expuestos en apartados anteriores no han sido cubiertos. Conforme pase el tiempo se redactarán y publicarán lecciones (con ejemplos incluídos) al respecto.


Contribuciones

La meta de IberOgre es llegar a formar comunidad alrededor de la wiki, por supuesto, las colaboraciones son bienvenidas y deseadas. Al estar en una fase muy temprana de su desarrollo aún no se ha abierto a ediciones externas. El motivo es sencillo: su estructura no está completamente definida y, valorando las distintas opciones, se ha decidido esperar.

A pesar de todo, aseguramos que dentro de poco todo el mundo pueda aportar sus conocimientos sobre la programación de videojuegos 3D en general y sobre Ogre en particular.


Licencia

IberOgre está formada por varios componentes: la documentación en forma de texto y el código de los ejemplos. Todos los artículos y lecciones están sujetos a la GNU Free Documentation License v1.2, consulta su texto si quieres conocer más detalles. Así mismo y, como ya se ha mencionado, el código tiene una licencia GNU General Public License v3, de nuevo, es posible acceder al texto completo de dicha licencia para más información.