Upload
angel-vazquez
View
1.944
Download
4
Tags:
Embed Size (px)
DESCRIPTION
En el siguiente Link se encuentra el código fuente del puro SoftPhone creado con Flex https://github.com/aovazquez/SoftPhone NOTA: mas adelante se añadirá mas código para la video llamada dudas y sugerencias son bienvenidas.
Citation preview
EMILIANO ZAPATA, MORELOS, JULIO DE 2013
UNIVERSIDAD TECNOLÓGICA EMILIANO ZAPATA DEL ESTADO DE MORELOS
DIVISIÓN ACADÉMICA DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
“STREAMING DE VIDEO USANDO EL PROTOCOLO RTMP Y TECNOLOGÍAS OPEN SOURCE“
REPORTE DE ESTADÍA
QUE PARA OBTENER EL GRADO DE:
INGENIERO EN TECNOLOGÍAS DE LA INFORMACIÓN
PRESENTA:
ANGEL OMAR VAZQUEZ QUINTERO
ASESOR:
M.T.I. MARTHA E. LUNA ORTIZ
CONTENIDO
Página
ÍNDICE DE FIGURAS
AGRADECIMIENTOS
RESUMEN
SUMMARY
CAPÍTULO 1. DESCRIPCIÓN DEL PROYECTO
1.1 Planteamiento del Problema......................................................................... 1
1.2 Planteamiento de la(s) hipótesis.................................................................. 1
1.3 Objetivos......................................................................................................... 1 1.3.1 General..................................................................................................... 1 1.3.2 Específicos................................................................................................ 2
1.4 Justificación................................................................................................... 2
1.5 Alcances y limitaciones................................................................................. 2 1.5.1 Alcances................................................................................................... 2 1.5.2 Limitaciones.............................................................................................. 3
1.6 Datos generales de la empresa.................................................................... 3 1.6.1 Nombre..................................................................................................... 3 1.6.2 Logotipo.................................................................................................... 3 1.6.3 Dirección................................................................................................... 3 1.6.4 Giro........................................................................................................... 3 1.6.5 Tamaño..................................................................................................... 3 1.6.6 Asesor Institucional:.................................................................................. 3
CAPÍTULO 2. MARCO TEÓRICO
2.1 Revisión Bibliográfica................................................................................... 4 2.1.1 FLEX......................................................................................................... 4
2.1.2 STREAMING............................................................................................ 11
2.1.3 RTMP........................................................................................................ 13
2.1.4 FreeSWITCH............................................................................................ 15 2.1.4.1 Características................................................................................. 15 2.1.4.2 Codecs Soportados......................................................................... 16 2.1.4.3 Plataformas Soportadas................................................................... 17
2.1.5 Red5......................................................................................................... 17 2.1.5.1Puertos que soporta Red5................................................................ 18 2.1.5.2 Codecs que soporta Red5............................................................... 18
2.1.5.2.1Codecsde video:...................................................................... 18
2.1.5.2.2 Codecsde Audio................................................................... 18
2.2 Perspectiva Teórica....................................................................................... 19
CAPÍTULO 3. DESARROLLO DEL PROYECTO.
3.1 Procesos de Administración del proyecto.................................................. 23 3.1.1 Iniciación del proyecto................................................................................ 23 3.1.2 Planeación del proyecto............................................................................. 24 3.1.3 Control del proyecto................................................................................... 25 3.1.4 Cierre del proyecto..................................................................................... 25
3.2 Ejecución del proyecto.................................................................................. 25 3.2.1 Requerimientos.......................................................................................... 25
3.2.1.1 Requerimientos de Software............................................................... 25 3.2.1.2 Requerimientos de hardware.............................................................. 26
3.2.2 Planeación................................................................................................. 26 3.2.3 Desarrollo................................................................................................... 27
3.2.3.1 Instalación de FreeSWITCH............................................................... 27 3.2.4. Instalación de Red5.............................................................................. 35 3.2.5. Instalación de Flash Builder................................................................. 37 3.2.7 Desarrollo de la aplicación.................................................................... 40
CAPÍTULO 4. CONCLUSIONES.
4.1 Comprobación de hipótesis........................................................................... 45
4.2 Cumplimiento de objetivos............................................................................ 45 4.2.1 General....................................................................................................... 45
4.3 Resultados del proyecto................................................................................ 46
4.4 Contribuciones................................................................................................ 49
BIBLIOGRAFÍA
ANEXOS
ÍNDICE DE FIGURAS
,.
Página
Figura 1.1 Logotipo de la empresa………………………………………………… 3
Figura 2.1 Arquitectura de Flex…………………………………………………….. 16
Figura 2.2 Arquitectura de Flex y gestor de base de dato……….………..…….. 11
Figura 2.3 División de paquete que viaje por el protocolo RTMP…………........ 14
Figura 3.1 Representación conceptual del funcionamiento del SoftPhone……. 24
Figura 3.2 Opción de descarga del IDE Flash Build………...……………...……. 38
Figura 3.3 Configuración del IDE……………….…………………..……….……… 39
Figura 3.4 Configuración del IDE Flex….………………………………………….. 39
Figura 3.5 Selección de versión de SDK….…………………….………………… 40
Figura 3.6 pantalla para autentificarse y acceder al SoftPhone…................…... 40
Figura 3.7 SoftPhone para realizar llamadas…...………………..………..………. 41
Figura 3.8 Llamada establecida con otro usuario (ext. 10001)…………………... 42
Figura 3.9 video llamada establecida mediante Red5………...………………...... 43
Figura 4.1 Plataforma “Dilo Communicator”…..………...…………………...…….. 46
Figura 4.2 Lista de contactos disponibles dentro la plataforma……………..…… 47
Figura 4.3 llamando al usuario disponible para establecer una llamada….......... 47
Figura 4.4 llamada establecida ocupando FreeSWITCH……...………………..… 48
Figura 4.5 Video llamada establecida mediante Red5 dentro de la plataforma “Dilo Communicator”…………………………………………….…………………………... 48
Tabla 2.1 Diferentes versiones de Flex……………………..………………………. 5
Tabla 2.2 Protocolos que soporta red5……………………………………………… 18
AGRADECIMIENTOSTabla 2.3 Tabla comparativa de servers de audio….………………..…………….. 28
Agradezco a:
Primeramente le quiero agradecer a Dios por haber permitido estudiar una carrera, a
pesar de mi indecisión de hacerlo y mas en TIC, me ayudo bastante en decidirme, así
como también por haberme dado inteligencia y sabiduría.
También quiero agradecer a cada uno de mis profesores que tuve a lo largo de la
carrera, de los cuales aprendí bastante y tome lo mejor de cada uno de ellos para
poder aplicarlo posteriormente, así como también el apoyo de algunos profesores
para realizar actividades de ponencias y de esta manera tener una experiencia nueva
y mas que nada ser algo mas profesional orientado a lo que me espera en mis futuros
trabajos(Carlos y Martha).
De igual manera quiero agradecer a cada uno de mis familiares que me ayudaron
tanto económicamente como moralmente, ya que sin su guía y sus palabras no
hubiera podido lograr(Abuelita Herlinda y Tía Rosa).
Ahora una de las personas mas importantes a lo largo de mi vida desde que la conocí
la cual a sido mi inspiración para no dejar de luchar por mis sueños y mas que nada
de no dejar de estudiar para tener un buen futuro, mi prometida Karla García, le doy
gracias por aguantarme a lo largo de la carrera, y de no dedicarle mucho tiempo a
veces y aguantar mis desvelos y mis presiones, la amo y la verdad no se que haría
sin ella a sido uno de mis pilares para poder terminar.
Por ultimo quiero agradecerle a la persona que medio la vida, a esa mujer tan perfecta
tan amorosa, tan luchona tan ella, la cual no se canso de decirme que estudiara la
universidad, esa mujer que si no fuera por ella no fuera nadie, la cual me dio todo lo
necesario para poder sobrevivir en este mundo, sus valores y mas que nada esa
manera tan suya de educarme, a pesar de las circunstancias jamás dejo de apoyarme
en todo los sentidos, es mas que mi Madre es un gran Ángel.
LE DOY GRACIAS A CADA UNO DE ELLOS POR HABERSE CRUZADO EN MI
CAMINO, TODO PASA POR ALGO Y ESTO APENAS EMPIEZA.
RESUMEN
La Empresa MoreloSoft, la cual se dedica al desarrollo de aplicaciones y soluciones
tecnológicas para el ámbito empresarial, día a día trata de realizar aplicaciones más
robustas y de inteligencia artificial, para brindar a las empresas soluciones que cubran
las necesidades de cada uno de los clientes.
El presente trabajo se enfoca a uno de los requerimientos del sistema que consiste en
la integración de audio y video mediante un SoftPhone, que le permita al usuario
realizar video llamadas y mediante éste servicio resolver las dudas correspondientes
al sistema de Teleradiología. Para implementar ésta funcionalidad en “Dilo
Communicator”, fue necesario implementar un servidor dedicado al procesamiento de
voz y video, en primera instancia se trabajó con WOWZA MEDIA SERVER, que
cuenta con el soporte para el uso del protocolo RTMP, el cual cubre las necesidades
de la aplicación a desarrollar. Sin embargo, éste tipo de servidores utilizan
licenciamiento para poder operar, esto implica un costo económico alto, por lo que se
utilizaron posteriormente opciones de tecnologías libres (Open Source). Para crear el
SoftPhone, fue necesario implementar los servidores Red5 y FreeSWITCH que se
encargan del manejo del audio y video respectivamente y por separado.
Se realizaron dos aplicaciones distintas, una aplicación web, la cual se utilizó para
hacer pruebas y fue el punto de partida para la investigación de las nuevas
tecnologías que se usaron, y la aplicación de escritorio en donde se encuentra
montado actualmente en fase beta, en la aplicación llamada “Dilo Communicator”.
SUMMARY
MoreloSoft Company, which is dedicated to developing applications and technology
solutions to the business world, every day is to make applications more robust and
artificial intelligence, to provide companies with solutions that meet the needs of each
customer.
This paper focuses on one of the requirements of the system is the integration of audio
and video via a SoftPhone, that enables the user to make video calls and using this
service with any questions related to Teleradiology system. To implement this
functionality in "Dilo Communicator" was necessary to implement a dedicated server to
voice and video processing in the first instance we worked with WOWZA MEDIA
SERVER, which is supported for use RTMP protocol, which meets the needs of the
application to develop. However, this type of servers use licensing to operate, this
implies a high economic cost, so options were subsequently used free technologies
(Open Source). To create the SoftPhone, was necessary to implement and
FreeSWITCH Red5 servers that are responsible for managing audio and video
respectively and separately.
There were two different applications, a web application, which was used for testing
and was the starting point for the investigation of new technologies that were used,
and the desktop application where is currently in beta mounted in the application
called "Say Communicator".
CAPÍTULO 1DESCRIPCIÓN DEL PROYECTO
1.1 Planteamiento del Problema.
La empresa MoreloSoft,ha estado desarrollando una aplicación desktop llamada “Dilo
Communicator”, es una plataforma en la cual se ofrecerán servicios de
Teleradiología.
Uno de los requerimientos, consiste en la integración de audio y video mediante un
softphone, que le permita al usuario realizar video llamadas y mediante éste servicio
resolver las dudas correspondientes al sistema de Teleradiología. Para implementar
ésta funcionalidad en “Dilo Communicator”, se utilizóun servidor dedicado al
procesamiento de voz y video, en primera instancia se trabajó con WOWZA MEDIA
SERVER, que cuenta con el soporte para el uso del protocolo RTMP, el cual cubre las
necesidades de la aplicación a desarrollar. Sin embargo, éste tipo de servidores
utilizan licenciamiento para poder operar, esto implica un costo económico alto para la
empresa.
1.2 Planteamiento de la(s) hipótesis
Con el uso de tecnologías libres Open Source se puede crear un SoftPhone con el
cual se pueden realizar llamadas y video llamadas con el fin de brindar soporte
técnico a los usuarios que lo soliciten. Todo lo anterior, mediante la implementación
de servidores dedicados al procesamiento de voz y video, para darle solución a la
funcionalidad requerida en la plataforma “Dilo Communicator ”, y de esta manera
disminuir el coste a la empresa.
1.3Objetivos
1.3.1 General.
Crear un SoftPhonecon tecnologías libres (Open Source) que se encargue del manejo
del audio y video como una funcionalidad incorporada al sistema “Dilo
Communicator”.
1.3.2 Específicos.
Investigar Freamworks para desarrollar el SoftPhoneque utilicen el protocolo
RTMP.
Investigar posibles servidores Open Source para el manejo de audio y video
con soporte al protocolo RTMP.
Implementar los servidores Red5 y FreeSWITCH
1.4 Justificación
El motivo por el cual se desarrolló un SoftPhone con tecnologías libres (Open
Source)se hizo con el fin de brindar un servicio de soporte técnico, así como también
bajar el coste a la empresa, ya que pagaba una licencia para poder transmitir audio
video haciendo uso del server WOWZA MEDIA SERVER. Los server utilizados ahora
fueron Red5 y FreeSWITCH, ambas tecnologías son Open Source, cada una
encargada en un área en específico, la ventaja de usar FreeSWITCH, es que puede
soportar más de 10000 llamadas concurrentes, además de que en un futuro se
puedan realizar llamadas locales y a celulares. Haciendo uso de estos servidores
Open Source, se eliminaría el pago de la licencia y de la dependencia de terceros
haciendo uso de su propia infraestructura.
1.5 Alcances y limitaciones
1.5.1 Alcances
Desarrollar un SoftPhone capaz de comunicarse con otro mediante voz y video,
perteneciente o no a la misma red haciendo uso del protocolo RTMP y tecnologías
libres (Open Source).
1.5.2 Limitaciones
El SoftPhone a desarrollar no será capaz de conectarse a proveedores de
telefonía para poder hacer llamadas a celulares o teléfonos fijos (llamadas
locales).
El SoftPhone solo podrá establecer comunicación entre dos usuarios.
1.6 Datos generales de la empresa
1.6.1 Nombre:
MoreloSoft S. De R.L de C.V.
1.6.2 Logotipo
Figura 1.1 Logotipo de la empresa
1.6.3 Dirección:
C. Lerdo de Tejada 2 205, C.P. 6200, Cuernavaca, Morelos.
1.6.4 Giro:
Desarrollo de Software.
1.6.5 Tamaño:
Mediana.
1.6.6 Asesor Institucional:
I.C. Adrián Fuentes Muñoz.
CAPÍTULO 2MARCO TEÓRICO
2.1 Revisión Bibliográfica
2.1.1 FLEX
Flex es definido como un marco de trabajo gratuito de código abierto y altamente
productivo para crear aplicaciones web, para ordenadores de escritorio y para
dispositivos móviles. Flex permite crear aplicaciones web y para dispositivos
móviles que comparten una base de código común, lo que reduce el tiempo y el
coste de creación de aplicaciones y el mantenimiento a largo plazo [1].
Flex ofrece un lenguaje moderno basado en estándares y un modelo de
programación para crear rápidamente aplicaciones de Internet sofisticadas (RIA)
para la web,que admite los patrones de diseño habituales. MXML, un lenguaje
declarativo basado en XML, se utiliza para describir el diseño y el comportamiento
de la interfaz de usuario, así como el lenguaje de programación ActionScript® 3.0
orientado a los objetos se utiliza para crear la lógica de clientes. Flex también
incluye una sofisticada biblioteca de componentes con más de 100 componentes
de interfaz de usuario extensibles y de eficacia probada tanto para aplicaciones
web como para dispositivos móviles, así como un depurador de aplicaciones de
Flex.
Las aplicaciones Flex se ejecutan de igual modo en todos los exploradores
principales, aprovechando la máquina virtual de Adobe Flash Player en lo que
respecta a la web y Adobe AIR en el caso del escritorio y aplicaciones para
dispositivos. Flash Player como Adobe AIR son tiempos de ejecución de cliente de
tipo empresarial con gráficos vectoriales avanzados de alto rendimiento capaces
de gestionar las aplicaciones más exigentes con gran cantidad de datos.
Angel Omar Vázquez Quintero | 12
Flex Versión RELEASE DATE
Flex 1.0 Marzo de 2004
Flex 1.5 Octubre de 2004
Flex 2.0 Alpha Octubre de 2005
Flex 2.0 Beta 1 Febrero de 2006
Flex 2.0 Beta 2 Marzo de 2006
Flex 2.0 Beta 3 Mayo de 2006
Flex 2.0 FINAL 28 de junio de 2006
Flex 2.0.1 5 de enero de 2007
Flex 3.0 Beta 1 11 de junio de 2007
Flex 3.0 Beta 2 1 de octubre de 2007
Flex 3.0 Beta 3 12 de diciembre de 2007
Flex 3.0 FINAL 12 de febrero de 2008
Flex 3.5 FINAL 18 de diciembre de 2008
Flex 4.0 Beta 1 13 de mayo de 2009
Flex 4.0 Beta 2 22 de septiembre de 2009
Flex 4.0 FINAL 21 de marzo de 2010
Flex 4.1 Update 30 de junio de 2010
Flex 4.5 FINAL 3 de mayo de 2011
Tabla 2.1 Diferentes versiones de Flex.
Características de Flex
Angel Omar Vázquez Quintero | 13
Flex se caracteriza por ser un sistema robusto para crear aplicaciones, por
propiciar el uso amplio de herramientas, y por los servicios potentes que se
pueden utilizar durante la ejecución de sus aplicaciones dinámicas de internet a
nivel empresarial y está diseñado para abordar determinada clase de problemas
que padecen los procesos de múltiples pasos, la validación del lado del cliente, la
manipulación de datos y la visualización de datos [2].
Biblioteca de clases y servicios de aplicaciones
Flex incluye una biblioteca de clases ya creada y servicios de aplicaciones que
ayudan a los desarrolladores a componer y crear aplicaciones de Internet
sofisticadas utilizando más de 100 componentes de aplicaciones sofisticadas y pre
generados, además de nuevos componentes específicos para dispositivos
móviles. Estos servicios incluyen enlaces de datos, gestión de arrastrar y soltar, el
sistema de visualización que administra la disposición de la interfaz, el sistema de
estilo encargado del aspecto de los componentes de la interfaz, y el sistema de
animación y efectos que gestiona el movimiento y las transiciones [3].
Componentes
Flex SDK 4.5 sigue ampliando el modelo de componentes Spark, ofreciendo una
separación completa de la apariencia así como funcionalidad y soporte al
desarrollo paralelo entre desarrolladores y diseñadores [3].
Integración con Adobe AIR
Angel Omar Vázquez Quintero | 14
El tiempo de ejecución de Adobe AIR® permite ejecutar las aplicaciones de Flex
en dispositivos móviles líderes en el sector, además de en ordenadores fuera del
explorador. Tanto Flex SDK 4.5 como Flash Builder 4.5 (IDE) están altamente
optimizados e integrados con Adobe AIR, lo que proporciona todas las
herramientas necesarias para crear, depurar, agrupar y firmar aplicaciones [3].
Compatibilidad con la creación de aplicaciones para dispositivos móviles.
Flex 4.5 presenta nueva compatibilidad con la creación de aplicaciones para
dispositivos móviles para múltiples plataformas móviles. Esto quiere decir que
puede compartir una base de código común entre sus aplicaciones web, para
ordenadores de escritorio y para dispositivos móviles destinadas a múltiples
plataformas y dispositivos [3].
Escalabilidad
Flex está diseñado para ampliarse desde componentes simples de aplicaciones
con funciones específicas hasta completas aplicaciones web, para ordenadores de
escritorio y para dispositivos móviles. Con su amplia biblioteca de componentes
pre generados, Flex proporciona una amplia solución para aplicaciones expresivas
de todos los tipos. Los desarrolladores pueden seleccionar métodos de transporte
de datos, entre los que se incluyen compatibilidad con XML a través de HTTP,
AMF (Action Message Format), o RTMP mediante el módulo Adobe LiveCycle®
Data Services ES2 o el proyecto BlazeDS de código abierto [3].
Arquitectura Flex
Angel Omar Vázquez Quintero | 15
Con el fin de poder entender cómo funciona Flex ejemplifica los elementos que
componen la arquitectura de Flex (ver Figura 2.1).
Figura 2.1 Arquitectura de Flex.
MXML
MXML nos permite crear interfaces sofisticadas con efectos visuales y con
comportamiento [4].
MXML es un lenguaje basado en XML que provee una forma fácil para realizar
invocaciones y manejar a los elementos visuales de la aplicación, donde la
mayoría de esos elementos vienen predefinidos en el framework. Un lenguaje
basado en XML, es un lenguaje descriptivo o más específicamente un lenguaje de
marcado, que describe las variadas estructuras en un documento, por ejemplo, si
trabajamos con XHTML, éste nos describe donde el título (<title>), cuerpo
(<body>), cabeceras, etc., de una página Web deben estar, etc.
Un lenguaje de marcado no tiene algunas de las estructuras normalmente
asociadas con un lenguaje de programación como Java o JavaScript, por citar
unas, carece de las conocidas estructuras de control para la ejecución cíclica de
código (for, while, etc).
Angel Omar Vázquez Quintero | 16
Al igual que XHTML y XML, MXML provee la estructura para las aplicaciones,
además en Flex, se puede usar el MXML para hacer invocaciones a componentes
predefinidos, y si es necesario, crear nuevos desde cero.
Mediante MXML se puede fácilmente establecer la transición desde una interfaz a
otra, y se puede cambiar el cómo luce nuestra aplicación mediante el uso de las
hojas de estilo en cascada (CSS del inglés Cascading Style Sheets).
ActionScript.
ActionScript es un lenguaje de programación que sigue el paradigma Orientado a
Objetos que en el ambiente desarrollo de Flex actúa de forma análoga al lenguaje
JavaScript, como un complemento al lenguaje MXML.
Debido a que todo lenguaje de marcado, MXML tiene sus limitaciones, una de
ellas ya fue mencionada anteriormente, relacionada con la ausencia de las
estructuras de control que nos permiten la ejecución repetitiva de bloques de
código, esto en el comienzo del desarrollo Web fue solucionado con el desarrollo
del lenguaje JavaScript, ahora en el ambiente de desarrollo de Flex, ActionScript
viene a cumplir dicha función.
Con ActionScript, se puede añadir interacción dinámica entre los componentes de
la aplicación. Por ejemplo, si necesitamos que una etiqueta muestre
dinámicamente cierta información en base a la selección del usuario en un campo
de selección.
MXML tiene ciertas capacidades para permitir la comunicación entre los
componentes, pero para lograr tener una interacción más complicada y
personalizada entre los componentes es necesario el uso de ActionScript, de
Angel Omar Vázquez Quintero | 17
hecho en caso de que el desarrollador desee crear sus propios componentes va a
necesitar en algún momento el desarrollo de código ActionScript.
En el momento que se compila la aplicación en un archivo SWF, lo que se hace es
transformar el código en MXML, en código ActionScript, que va a ser ejecutado
por el reproductor de Flash [4].
Biblioteca de clases de Flex.
Flex incluye un conjunto de librerías Adobe® Flash® Player 10.3 and earlier,
Adobe® AIR® 2.7 and earlier etc. usadas por varios componentes de las
aplicaciones desarrolladas en Flex [5].
Entre las librerías más importantes ubicadas, se pueden encontrar las siguientes:
Librería mx.core: Este paquete contiene las clases base e interfaces, tales
como UIComponent, utilizado por Flex.
Libreríamx.events:Este paquetecontiene las clases que definen el evento
en los objetos Flex.
Librería mx.utils: Este paquetecontiene las clases de las utilidades de
Flex.
Librería mx.rpc: Este paquete contiene las clases RPC necesarias para
hacer acceso a datos que se encuentran del lado del servidor (back-end).
Flex Data Services.
Angel Omar Vázquez Quintero | 18
Flex Data Services es el componente que permite a Flex conectarse con
componentes de código dinámico del lado del servidor, por ejemplo componentes
Java, .NET, ColdFusion, PHP, ASP, o Servicios Web [6].
Figura 2.2 Arquitectura de Flex y gestor de base de datos.
Es importante mantener en mente que Flex no se conecta directamente con el
servidor de bases de datos (ver Figura 2.2), es necesario tener código, usando
una de las tecnologías recientemente mencionadas, que lleven a cabo la conexión
con los repositorios de datos y el control de las operaciones y datos que van a ser
desplegados al usuario (capa de lógica de negocio, Business Logic).
2.1.2 STREAMING
El uso del Streaming se ha ido adoptando con el paso del tiempo, para bridar un
servicio de calidad a los usuarios que lo consumen (YouTube, Vimeo y similares).
El Streaming o transmisión de flujo de datos es la distribución de contenidos
(generalmente multimedia) a través de una red de datos de forma que su
consumo se realiza progresivamente según van llegando y reconstruyéndose
los paquetes de datos en el equipo receptor.
El Streaming funciona de la siguiente forma:
Angel Omar Vázquez Quintero | 19
Conexión con el servidor. El reproductor cliente conecta con el servidor
remoto y éste comienza a enviarle el archivo.
Buffer. El cliente comienza a recibir el fichero y construye un buffer o
almacén donde empieza a guardarlo.
Inicio de la reproducción. Cuando el buffer se ha llenado con una
pequeña fracción inicial del archivo original, el reproductor cliente comienza
a mostrarlo mientras continúa en segundo plano con el resto de la
descarga.
Caídas de la velocidad de conexión. Si la conexión experimenta ligeros
descensos de velocidad durante la reproducción, el cliente podría seguir
mostrando el contenido consumiendo la información almacenada en el
buffer. Si llega a consumir todo el buffer se detendría hasta que se volviera
a llenar.
El Streaming puede ser de dos tipos dependiendo de la tecnología instalada en el
servidor:
Descarga progresiva. Se produce en servidores web que disponen de
Internet Information Server (IIS), Apache, Tomcat, etc. El archivo de vídeo o
audio solicitado por el cliente es liberado por el servidor como cualquier otro
archivo utilizando el protocolo HTTP. Sin embargo, si el archivo ha sido
especialmente empaquetado para Streaming, al ser leído por el reproductor
cliente, se iniciará en Streamingen cuanto se llene el buffer.
Transmisión por secuencias. Se produce en servidores multimedia que
disponen de un software especial para gestionar más óptimamente el
Streaming de audio y vídeo: Windows Media Server, Flash Communication
Server, etc. La utilización de un servidor multimedia ofrece múltiples
ventajas frente al servidor web. Las más destacadas son:
o Mayor rapidez en la visualización de este tipo de contenidos.
Angel Omar Vázquez Quintero | 20
o La comunicación entre servidor/cliente se puede realizar por
protocolos alternativos al HTTP. Tiene el inconveniente del bloqueo
impuesto por Firewalls pero tiene la ventaja de una mayor rapidez.
o Mejor gestión del procesador y ancho de banda de la máquina del
servidor ante peticiones simultáneas de varios clientes del mismo
archivo de audio o vídeo.
o Control predefinido sobre la descarga que pueden realizar los
clientes: autentificada, filtrada por IP, sin almacenarla en la caché del
cliente, etc.
o Mayor garantía de una reproducción ininterrumpida gracias al
establecimiento de una conexión de control inteligente entre servidor
y cliente.
o Posibilidad de distribución de transmisiones de audio y vídeo en
directo.
2.1.3 RTMP.
Real-Time Messaging Protocol (RTMP) es un protocolo basado en TCP que
mantiene las conexiones persistentes y permite la comunicación de baja latencia
para enviar flujos sin problemas y transmitir tanta información como sea posible.
El protocolo RTMP fue diseñado para la alta calidad de transmisión de audio,
video y datos entre las tecnologías de la plataforma Adobe Flash, incluyendo
Adobe Flash Player y Adobe AIR. RTMP está ahora disponible como una
especificación abierta para crear productos y tecnologías que permiten la
distribución de vídeo, audio y datos en campo abierto AMF, SWF, FLV, F4V y
formatos compatibles con Adobe Flash Player.
Los paquetes se envían a través de una conexión TCP que se estableció por
primera vez entre el cliente y el servidor. Ellos contienen una cabecera y un
cuerpo que, en el caso de los comandos de conexión y control, se codifica
Angel Omar Vázquez Quintero | 21
utilizando el formato de mensaje de acción (AMF). La cabecera se divide en
el encabezado básico(que aparece como separado del resto, en el diagrama)
y Chunk el encabezado del mensaje. El encabezado básico es la única parte
constante del paquete y por lo general se compone de un único compuesto de
bytes, donde los 2 bits más significativos son el Tipo Chunk(FMT en la
especificación) y el resto forma el Identificador de Flujo. Dependiendo del valor de
la primera, algunos campos de la cabecera del mensaje se pueden omitir y su
valor derivado de paquetes anteriores, mientras que en función del valor de este
último, el encabezado básico se puede ampliar con 2 bytes adicionales (como en
el caso de la diagrama que tiene 3 bytes en total). El pedazo de cabecera de
mensaje contiene la información de meta-datos, tales como el tamaño del mensaje
(medido en bytes), el Delta Marca de tiempo y tipo de mensaje. Este último valor
es un solo byte y define si el paquete es un reproductor de audio, video, comandos
o "bajo nivel" de paquetes RTMP tales como Ping RTMP.
Figura 2.3 División de paquete que viaje por el protocolo RTMP.
2.1.4 FreeSWITCH
Angel Omar Vázquez Quintero | 22
Es una plataforma de comunicaciones de software libre/código abierto para la
creación de productos de voz, mensajería instantánea y video. El cual está
disponible bajo la Licencia Pública de Mozilla. La biblioteca principal, libfreeswitch,
puede ser embebida en programas externos así como en aplicaciones
independientes.
2.1.4.1 Características
FreeSWITCH incluye varios módulos que proveen aplicaciones por defecto como
conferencias, XML-RPC para controlar llamadas en tiempo real, Respuesta de Voz
Interactiva (IVR), Conversor texto-voz / Reconocimiento Automático de
Voz (CTV/RAH), Red Telefónica Conmutada (RTC), la capacidad de interconexión
con circuitos analógicos y digitales, protocolos Voz sobre
IP comoSIP, SCCP, H.323, XMPP, Google Talk, entre otros.
La aplicaciones que utilizan la biblioteca de FreeSWITCH pueden ser escritas en
C/C++, Python, Perl, Lua, JavaScript usando el motor SpiderMonkey de Mozilla,
java y Microsoft .NET a través de Microsft CLR o a través de Mono. Además de
eso, FreeSWITCH expone APIs y aplicaciones para el control de llamadas y
funcionalidad IVR para el uso del programador.
El manejo de llamadas puede realizarse a través del Dialplan XML o mediante la
interfaz Event Socket, la cual es una conexión socket al servidor FreeSWITCH.
Cualquier lenguaje de programación o software capaz de comunicarse
vía socket puede ser usado para controlar la actividad del servidor FreeSWITCH.
FreeSWITCH también viene con una biblioteca para el Event Socket (ESL) o
"Envoltorio de ESL" para Erlang, JavaScript, Lua, Perl, PHP, Python y Ruby. Esta
biblioteca se encarga de abstraer los aspectos triviales de la programación con
sockets.
Angel Omar Vázquez Quintero | 23
2.1.4.2 Codecs Soportados
FreeSWITCH soporta los siguientes codecs de audio:
PCMU – G.711 µ-law
PCMA – G.711 A-law
G.722
G.722.1
G.722.1c
G.726
G.726 with AAL2 packing
G.729 (passthrough)
G.729 (requiere de licencia, $10/canal)12
GSM
CELT
iLBC
DVI4 (IMA ADPCM)
BroadVoice
SILK
Ápex
CODEC2
Sirven
LPC-10
G.723.1 (passthroughonly)
AMR (passthroughonly)
FreeSWITCH también soporta una serie de codecs de video:
H.261
H.263
H.263+ (H.263-1998)
Angel Omar Vázquez Quintero | 24
H.263++ (H.263-2000)
H.264
Theora (passthrough)
MP4 (passthrough)
2.1.4.3 Plataformas Soportadas
AuroraUX (LLVM+Clang/gmake)
Sun Solaris 10 UNIX (Sun Studio)
FreeBSD (gmake)
Mac OS X (gmake)
RHEL/CentOS Linux
Debian/Ubuntu GNU/Linux
Windows (Nativo)
2.1.5 Red5
Red5 ofrece un Streaming de vídeo de gran alcance y multi-usuario. Basado en
Java y algunos de los más poderosos marcos de código abierto. A la vez que
proporciona una potente RTMP / Servlet aplicación. Además de ser compatible
con el protocolo RTMP, el servidor de aplicaciones tiene un contenedor de servlets
Tomcat embebido para aplicaciones web JEE. Red5 se puede utilizar en las
conferencias de vídeo, juegos multi-usuario y el software de aplicaciones de
negocios.
2.1.5.1Puertos que soporta Red5.
Puerto Descripción
http.port=5080 Tomcat o jetty contenedor servlet
Angel Omar Vázquez Quintero | 25
rtmp.port=1935 Tradicional RTMPrtmpt.port=8088 Tunel RTMP a través de http
mrtmp.port=9035 Usar con una configuración edge/origin setup
proxy.source_port=1936 Utilizado para depurar
Tabla 2.2 Protocolos que soporta red5.
Estos puertos predeterminados pueden cambiarse en el directorio “RED5_HOME\
conf\red5.properties”.
2.1.5.2 Codecs que soporta Red5
2.1.5.2.1Codecsde video:
ScreenVideo
On2 VP6
Sorenson H.263
H264
2.1.5.2.2 Codecsde Audio
ADPCM
NellyMoser
MP3
Speex
AAC
2.2 Perspectiva Teórica
Angel Omar Vázquez Quintero | 26
Para el desarrollo de la aplicación se utilizaron las diversas tecnologías explicadas
anteriormente, con el fin de unirlas y sacar el máximo provecho, tomando lo mejor
de cada una de ellas.
El lenguaje de desarrollo de software que se eligió fue adobe FLEX, los motivos
importantes que se eligió dicha tecnología fue porquecubría el requisito que fuera
una tecnología Open source con el fin de no causarle un costo extra a la empresa,
otro de los motivos que se eligió FLEX, es uno de los lenguajes principales que
soportan Streaming de video en tiempo real, usando este nueva forma de
transmitir audio y video entre usuarios, se agiliza el tiempo de reproducción,
evitando caer en las reproducciones tradicionales las cuales son en descargar el
video y después reproducirlo, todo estos datos viajando mediante el protocolo
RTMP, el cuales un protocolo propietario desarrollado por Adobe Systems que se
utiliza principalmente con Adobe Flash Media Server para transmitir audio y video
a través de Internet hacia el cliente Adobe Flash Player o Adobe Air.
Este es un protocolo simple, optimizado para conexiones de bajo ancho de banda.
Puede soportar hasta 64 streams concurrentes sobre la misma red de conexión.
Parte de cada cabecera del paquete AMF contiene el número de índice del
stream. Un solo mensaje RTMP puede contener múltiple paquetes AMF. Cada
paquete AMF tiene 128 bytes, excepto para el streaming de audio, el cual, es de
64 bytes.
Para la transmisión de audio y video se eligieron 2 servers,cada uno especializado
en cada área (audio y video).
Para la transmisión de audio se tomó en cuenta y se eligió FreeSWITCH, de un
grupo de servers de los cuales son Open Source.
Program Operating systems
License Protocol/based upon/compatible with
Encryption
Key and target
markets
Angel Omar Vázquez Quintero | 27
Mysipswitch
Linux BSD SIP,AJAX SSL Individuals
Murmur Linux/BSD, Mac OS
X,Windows
BSD/GPL CELT / Speex TLS Individuals to Small
and medium
enterprise (25-5000
users)
Asterisk PBX
Linux/BSD, Mac OS
X,Solaris.
GPL SIP, H.323, IAX STL, SRTP
Enthusiasts,
developers, enterprise
users (capacity
dependent on server design, scalable across multiple servers)
Yate Linux, Mac OS,Windows
GPL SIP, IAX, H.323,XMPP No
FreeSWITCH
Linux/BSD, Mac OS
X,Solaris, Windows
Mozilla PublicLic
ense
SIP, NAT-PMP,STUN,RTMP, SIMPLE,XMPP, Google
Talk(Jingle), IAX, H.323,MRCP, RSS, Skype.
TSL, SRTP, ZRTP
Large soft-switch users,
home PBXusers,
softphone users
Tabla 2.3 Tabla comparativa de servers de audio.
FreeSWITCH se eligió principalmente por su soporte al protocolo RTMP, ya que
dicho protocolo fue desarrollado para tecnologías con soporte Flash, su elección
no sólo fue por el soporte del uso del protocolo RTMP, si no también por ser una
tecnología que se diseñópara ser escalable y multihilos, también por su alta
compatibilidad con diferentes lenguajes de programación (Lua, PERL, Ruby,
Python, Java & .NET, JavaScript), su voicemail, reconocimiento de voz y
conferencias de alta definición.
Angel Omar Vázquez Quintero | 28
Algunas aplicaciones para FreeSwitch son por ejemplo SoftPhone, VoIP gateway,
PBX, marcador predictivo, servidor de fax, alta disponibilidad, etc., también se
tomó muy en cuenta para una posible comunicación a teléfonos fijos y celulares
mediante un proveedor de servicios de telefonía, y de esta manera no se limitaría
con solo usuarios dentro de la misma aplicación.
Para complementar el SoftPhone y poder transmitir el video se eligió el
server Red5.
Las aplicaciones basadas en adobe FLEX o AIR están hechas en Flash y son
soportados por Adobe Flash Media Server, el cual se ha convertido en la solución
líder del sector para el video de flujo continuo y la comunicación en tiempo real.
Los principales browser usados en el mundo soportan el reproductor Adobe Flash
Player, siendo este utilizado en el 98% de los ordenadores del mundo. Flash
Communication Server permite el diseño e implementación de todas aquellas
herramientas colaborativas como son conferencias de audio y video multiusuario,
pizarra compartida, presentaciones remotas, entre otras. Este sistema se ha
empleado en la mayoría de las universidades en torno al desarrollo de cursos por
medio de una academia virtual. En la línea del open source o del código libre se
encuentra el servidor Red5, el cual, es un símil de Adobe Flash Media Server. El
servidor Red5 permite realizar la mayoría de las funciones sin pagar por licencias
propietarias.Se pueden encontrar desarrollos en aplicaciones de gestión de cursos
o más conocidos como plataformas LMS. Además, de sistemas que integran video
conferencia.
Dentro de la variada cantidad de aplicaciones se puede destacar Moodle, un LMS
que posee una de las interfaces gráficas más amigables dentro de las plataformas
open source y tiene todas las herramientas necesarias para usarla como una
plataforma base. Además, es posible integrar un módulo de video conferencia por
medio de la iniciativa OpenMeeting.
Angel Omar Vázquez Quintero | 29
CAPÍTULO 3DESARROLLO DEL PROYECTO
Y
3.1 Procesos de Administración del proyecto
Para la administración del proyecto se realizaron los siguientes documentos,
mismos que se describen en el apartado de anexos.
• Project Charter (ver Anexo 1).
• Alcance del Proyecto (ver Anexo 2).
• Plan de administración del proyecto (ver Anexo 3).
• WBS y WBS Dictionary (ver Anexo 4 y Anexo 5).
• Cronograma de actividades (ver Anexo 6).
• Diagrama de Gantt (ver Anexo 7).
3.1.1 Iniciación del proyecto.
Al inicio del proyecto, se llevó a cabo la recopilación de la información para
conocer la necesidad del cliente, esto permitió tener un conocimiento general para
el desarrollo del sistema, se comenzó con la elaboración del Acta constitutiva del
Proyecto (Project Charter) y se realizó el Documento Formal de Requerimientos
(DFR), en él se establecieron uno a uno las funcionalidades del sistema.
Junto con el cliente se acordaron los alcances y limitaciones para el sistema. Se
definieron los entregables finales y se identificaron a todos los involucrados del
proyecto para conocer el impacto que tendrían sobre él.
En la Figura 3 se muestra la representación conceptual de la aplicación,
mostrando las diferentes actividades que se pueden realizar dentro del sistema.
Angel Omar Vázquez Quintero | 30
Figura 3.1 Representación conceptual del funcionamiento del SoftPhone
3.1.2 Planeación del proyecto.
Para comenzar con la planeación del proyecto, se realizó un calendario de
desarrollo en base a las necesidades del sistema y a los entregables
preestablecidos; de manera que mostraran el tiempo definido en cada una de las
actividades y el orden a realizarlas. Una vez terminado, se continuó con la
documentación basada en el PMBOK®, se realizaron los siguientes planes:
1. Plan de Comunicación: En este documento se determinan las formas y
objetivos de comunicación que se tendrán con cada uno de los participantes
durante la ejecución de todo el proyecto. Este documento permite observar la
forma en el equipo de trabajo interactúa con el cliente, así como la manera en que
se comunican con los distintos niveles jerárquicos que conforma a este grupo de
trabajo.
2. Enunciado del Alcance del Proyecto: Este documento es uno de los más
importantes dentro de la etapa de planeación, en él se delimitan las
Angel Omar Vázquez Quintero | 31
funcionalidades y objetivos del sistema, es decir, hasta donde va a llegar,
teniendo así como conocimiento el resultado del producto final.
3. Identificación de Riesgos: El plan de riesgos es fundamental para el
desarrollo de cualquier tipo de proyecto, ya que en él, se prevén los riesgos que
puedan llegar a acontecer durante la ejecución del proyecto. Permite contar con
un plan de contención y un plan contingencia que ayude al equipo de trabajo
como respuesta inmediata en caso de que suceda.
3.1.3 Control del proyecto.
Para llevar el control durante la ejecución del sistema, se dio seguimiento al
calendario de desarrollo del proyecto, de manera que se creará cada dos
semanas una nueva versión que mostrará los avances y se detectaran los
aplazamientos. Se expusieron avances al cliente de manera periódica, y se
monitorearon los riesgos.
3.1.4 Cierre del proyecto.
Al finalizar el proyecto, se realizó una reunión con el cliente para mostrar la
funcionalidad del sistema, se entregaron los productos acordados y se firmó un
documento de liberación del proyecto.
3.2 Ejecución del proyecto
3.2.1 Requerimientos
3.2.1.1 Requerimientos de Software
Angel Omar Vázquez Quintero | 32
Cliente
El usuario deberá tener instalado la última versión de adobe Air en su equipo de
cómputo en cualquier sistema operativo(OS X, Windows 7), o en dado caso si se
llegara a realizar una versión web contar con un browser, (por ejemplo Chrome,
Safari, Firefox, Opera, Internet Explorer) que tenga instalada la última versión de
Adobe Flash Player.
Servidor:
Sistema operativo basado en Linux (preferencia CentOS).
Servidor de Streaming RED5.
3.2.1.2 Requerimientos de hardware
En el caso del cliente los requerimientos son bastante básicos y, hoy en día
cualquier computador cumpliría con las exigencias, sin olvidarse que el
computador que ocupará el profesor debe poseer cámara web. En el caso del
servidor, los requerimientos del hardware necesario para el correcto
funcionamiento corresponden a la capacidad de procesamiento y memoria, debido
a la carga que se produce al realizar variados Streaming simultáneos.
3.2.2 Planeación
En primera instancia, se estableció una entrevista con el cliente para poder
realizar el Project chárter con el fin de identificar su problemática, los objetivos a
cumplir y tomar decisiones como el qué tecnologías se ocuparían para realizar tal
proyecto.
Posteriormente se plasmó todo lo anterior en el documento formal de
requerimientos, para tener más claro lo que se tenía que cubrir con la aplicación.
Angel Omar Vázquez Quintero | 33
Así como también desarrollar los paquetes del WBS y en consiguiente desarrollar
el cronograma de actividades para la medición de tiempos de cada una de las
actividades a desempeñar para llegar a los tiempos establecidos a los mismos.
3.2.3 Desarrollo
Después del levantamiento de requerimientos y de una entrevista previa con el
cliente, se empieza a modelar la estructura que tendrá el proyecto a desarrollar y
en este caso se empezó con la instalación de FreeSWITCH y configuración de las
extensiones.
3.2.3.1 Instalación de FreeSWITCH
FreeSWITCH es una plataforma de comunicaciones de software libre/código
abierto para la creación de productos de voz, mensajería instantánea y video. El
cual está disponible bajo la licencia publica de Mozilla. La biblioteca principal,
libfreeswitch, puede ser embebida en programas externos así como en
aplicaciones independientes.
3.2.3.1.1 Requerimientos
Instalar lo siguiente:
gnumake
autoconf
automake
libtool libtool-dev
gcc
wget
libcurses
Angel Omar Vázquez Quintero | 34
3.2.3.1.2 Instalación
Para llevar a cabo la instalación del server FreeSWITCH es necesario realizar los
siguientes pasos
1. Descargar FreesWitch
http://200.57.93.77/freeswitch-1.0.7.tar.gz
2. Descargar a un directorio donde tengamos privilegios
$wget http://200.57.93.77/freeswitch-1.0.7.tar.gz
3. Una vez descargado se descomprime con el siguiente comando
$ tar –xzy freeswitch-1.0.7.tar.gz
4. Ya descomprimido se habilita módulo Erlang(Debe estar instalado Erlang)
$ cd freeswitch-1.0.7
$ vi modules conf
5. Después quitar signo # de la línea y guardar:
#eventhandlers/mod_erlang_event
6. Ejecutar los siguientes comandos para instalar
$ ./configure
7. Usar los siguientes comandos con privilegios de “root” o administrador.
$ make
$makeinstall
Angel Omar Vázquez Quintero | 35
8. Si se requieren archivos de audio ejecutar lo siguiente
$ make sounds-install
$ makemoh-install
La compilación e instalación de FreeSWITCH toma alrededor de media hora.
FreeSWITCH no instala automáticamente un script de inicialización tipo init.d para
crearlo, descargar el script de la sección.
$wgethttp://200.57.93.77/freeswitch
$ mv /etc./init_d/
Una vez descargado, damos permiso de ejecución
$chmod 755 /etc./ignited/free switch
Inicializamos FreeSWITCH
$ /etc./imitad/freeswitchstart
3.2.3.2 Creación de extensiones en FreeSWITCH
Una extensión nos sirve para tener asignado un DID, y este puede ser asignado
algún teléfono IP o un SoftPhone para poder realizar llamadas.
Para poder configurar una extensión tenemos que tener en cuenta que tipos de
campos o variables existen para crear una nueva extensión, se puede dar una
idea observando las extensiones que vienen por default en el directorio
“/sur/local/freeswitch/conf/directory/default/, en este directorio se
encuentran algunas extensiones que ya vienen asignadas por default, lo que se
hará es abrir cualquier extensión de las ya existentes.
Angel Omar Vázquez Quintero | 36
Ejemplo:
#vi 1000.xml
<include>
<user id=”1000” mailbox=”1000”>
<params>
<param name=”password” value=”1234”/>
<param name=”vm-password” value=”1000”/>
</params>
<variables>
<variable name=”troll-allow” value=”domestic
international,local” />
<variable name=”accountcode” value=”1000” />
<variable name=”user_context” value=”default” />
<variable name=”effective_caller_id_name” value=”Extension
1000”/>
<variable name=”effective_caller_id_number” value=”1000”/>
<variable name=”outbound_caller_id_name” value=”$$
{outbound_caller_name}”/>
<variable name=”outbound_caller_id_number” value=”$$
{outbound_caller_name}”/>
<variable name=”callgroup” value=”techsupport”/>
<variables>
</user>
</include>
Esta es la configuración básica de una extensión, ahora la explicación de cada
una de las líneas.
En la primera línea indica el include es la que va a realizar el archivo .xml, en la
segunda línea aparece el número de la extensión y de la casilla del correo de voz,
en la tercera línea indica los parámetros que contendrá la extensión, en la cuarta
se encuentra la contraseña que es asignada para cada extensión. en la quinta va
la contraseña para acceder a la casilla del correo de voz, En FreeSWITCH hay un
plan de llamadas ya configurado. Para acceder a la casilla de voz tenemos dos
posibilidades. llamando nuestro número de extensión(en este caso es 1000)
Angel Omar Vázquez Quintero | 37
entramos directamente a nuestro correo de voz, en la sexta línea nos indica el
cierre de la etiqueta de parámetros, en la línea siete indica la etiqueta variables y
allí se pondrán las variables de la extensión, en la octava línea se define qué tipo
de llamadas puede hacer la extensión.(Locales, larga distancia e internacionales),
en la numero nueve se define una cuenta para el registro de las llamadas, en la
línea diez el contexto de la extensión, es importante que recordar en qué contexto
está ubicado el plan de marcación para extensión, ya que sino no podrá
registrarse y realizar llamadas, en la línea once el nombre del identificativo de
llamada e esta extensión y en la doce el número. Para concluir en la última línea
el grupo al que pertenece la extensión, sino pertenece a ningún grupo la extensión
no es necesario que lleve esta línea.
Después de haber visto uno de los ejemplos ya existentes se creara un de
ejemplo con los campos requeridos. Para crear un nuevo archivo se utiliza el
comando touch.
Ahora se podrán crear nuevas extensiones, que deben de ser configuradas en el
directorio /usr/local/freeswitch/conf/directory/default/ahí estarán
contenidas todas las extensiones. Para que FreeSWITCH puede detectar los
nuevos archivos que se crearon es necesario que se reinicie, para reiniciar los
archivos xml se debe de ingresar a la consola de FreeSWITCH y teclear el
comando:
>reloadxml
Con este comando se actualizan los nuevos archivos para que FreeSWITCH
pueda hacer uso de la nueva configuración.
3.2.3.3 Configuración del soporte para RTMP en FreeSWITCH
Para poder instalar este módulo de FreeSWITCH fue necesario instalar Git.
Angel Omar Vázquez Quintero | 38
Git es un software de control de versiones, pensando en la eficiencia y la
confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen
un gran número archivos de código fuente.
Para instalar Git en CentOS es necesario seguir los siguientes pasos:
1. Primero se deben de instalar las siguientes dependencias.# yum install gettext-devel expat-devel curl-develzlib-developenssl-devel
2. Bajar el último código disponible con wget # wget http://git-core.googlecode.com/files/git-1.7.8.4.tar.gz 3. Se descomprime el código fuente# tarvez git-*.tar.gz 4. Abrir directorio Git # cd git-*
5. Compilar el código fuente # make prefix=/usr/local/ all
6. InstalarGit # make prefix=/usr/local/ install
7. Eliminar archivos generados y descargados # cd ..; rm -rfgit-*
Ya con Git instalado procedemos a la instalación de mod_rtmp. Nota: Si se encuentra ya instalado FreeSWITCH es necesario eliminar el ya instalado para poder seguir con el siguiente procedimiento. Para instalar el módulo de RTMP se siguen las siguientes instrucciones.
1. Abrir el directorio donde será descargado el nuevo código fuente de FreeSWITCH.
# cd /usr/src/
2. Se teclean los siguientes comandos para descargar la versión de
FreeSWITCH que contiene el módulo RTMP mod_rtmp.
git clone git://git.freeswitch.org/freeswitch.git cd freeswitch
Angel Omar Vázquez Quintero | 39
./bootstrap.sh
3. Se edita el archivo modules.conf para quitar el comentario el módulo “endpoints/mod_rtmp”. La línea debe quedar sin comentario es decir sin el signo “#” ya sin comentarios se guardan los cambios.
4. Por último se compila el código fuente aplicando los siguientes comandos../configuremakemake install
5. Acabada la compilación e instalación se inicia FreeSWITCH.
/usr/local/freeswitch/bin/freeswitch
6. En el archivo de configuración modules.conf.xml ubicado en el directorio
/usr/local/freeswitch/conf/autoloads_configs/se va quitar el comentario de la línea de rtmp y quedará de la siguiente manera:antes:<!–<load module="mod_rtmp"/> –>
como debe estar:<load module="mod_rtmp"/>
7. Se abre la consola y se introduce el comandoreloadxml para recargar los
nuevos cambios realizados.
8. En consola de FreeSWITCH se teclea el siguiente comando para iniciar el
módulo rtmp.> load mod_rtmp
9. Yse observa el estado de rtmp con el comando “rtmp status”.Se tiene al módulo RTMP funcionando ahora solo falta instalar un cliente Flex y se crea de la siguiente manera:Se crea un nuevo directorio dentro de /usr/local/freeswitch/.
#mkdirclients
10. Dentro del directorio nuevo se crea un nuevo directorio llamado Flex.
#mkdirflex
Angel Omar Vázquez Quintero | 40
11. Ya creados los directorios se hace referencia al códigofuente de
FreeSWITCH descargado con Git y en el directorio /usr/local/freeswitch/clients/flex/ dentro de la carpeta Flex se encuentran varios archivos, lo que se realiza es importar esos archivos al nuevo directorio creado en /usr/local/freeswitch/clients/flex/ y se hace de la siguiente manera:
#cp flex/* /usr/local/freeswitch/clients/flex/
12. Con el comando anterior especificamos que copie todo lo que contiene la
carpeta Flex a la carpeta Flex de dicho directorio.Se edita el archivo FreeSWITCH.hmtl ubicado en el directorio /usr/local/freeswitch/clients/flex/, donde se modificará una
sola sección y se reemplazara la IP del servidor en donde está funcionando el módulo de rtmp y queda de la siguiente manera:
#vimfreeswitch.hmtl
varflashvars = { rtmp_url: 'rtmp://ip-de-tu-server/phone' };
Ya que se tiene a hasta esta parte terminada solo faltaría instalar Apache y se
instala de la siguiente manera:
Paso 1. Abrir el Command Prompt (consola).
Paso 2. Escribe el comando “su-”(sin las comillas), para cambiar al usuario
principal.
Paso 3. Escribe el comando “yuminstallhttpd”(sin las comillas) para instalar el
servidor web Apache.
Paso 4. Escribe el comando “apachectlstart” (sin las comillas) para in iniciar el
servidor Apache, cuando la instalación se complete.
Angel Omar Vázquez Quintero | 41
Paso 5. Finalmente, abre un buscador Web y escribe “http://localhost” (sin las
comillas) en la barra de direcciones. Se verá una página de bienvenida de Apache.
Si fue instalado en Centos y no se tiene una interfaz gráfica, se debe abrir algún
explorador de otra máquina y que este dentro de la misma red y se teclea “http://tu-ip-server” (sin las comillas).
6. Ya que se ha instalado Apache, el siguiente paso a realizar es copiar la carpeta
flex del directorio / usr/local/freeswitch/clients/flex/ al directorio /var/www/html/ para
copiar la carpeta se realiza de la siguiente manera:
#cp flex/* /var/www/html/flex/
7. Se reinicia Apache y verificamos el nuevo archivo que acabamos de añadir al
directorio /var/www/html/, abrimos algún explorador y la parte superior se coloca lo
siguiente:
http://ip-de-tu-server/flex/freeswitch.html
En Permissions required elegimos permitir y clic en cerrar.
3.2.4. Instalación de Red5.
Para llevar a cabo la instalación del server Red5 es necesario realizar los
siguientes pasos
1) Instalar el jdk-devel de java con los siguientes comandos
yum install java-1.6.0-openjdk-devel.x86_64
2) Descargar e instalar ANT (Proyecto de apache)
cd /usr/src
http://apache.rediris.es//ant/binaries/apache-ant-1.8.2-bin.tar.gz
Angel Omar Vázquez Quintero | 42
tar -xvzf apache-ant-1.8.2-bin.tar.gz
mv apache-ant-1.8.2 ../local/ant
3) Exportar variables para ant y java
export ANT_HOME=/usr/local/ant
export JAVA_HOME=/usr/lib/jvm/java
export PATH=$PATH:/usr/local/ant/bin
export CLASSPATH=.:$JAVA_HOME/lib/classes.zip
Opcional: Acceso a las variables por cualquier usuario
echo ‘export ANT_HOME=/usr/local/ant’ >> /etc/bashrc
echo ‘export JAVA_HOME=/usr/lib/jvm/java’ >> /etc/bashrc
echo ‘export PATH=$PATH:/usr/local/ant/bin’ >> /etc/bashrc
echo ‘export CLASSPATH=.:$JAVA_HOME/lib/classes.zip’ >> /etc/bashrc
4) Descargar e instalar Red5 Server
cd /usr/src
svncheckout http://red5.googlecode.com/svn/java/server/trunk/ red5 (Si no
tienes svn ejecutar "yuminstallsubversion")
mv red5 ../local/red5
cd /usr/local/red5
ant prepare
antdist (Este comando puede tardar varios minutos)
5) Copiar la carpeta conf en su lugar y dar permiso de ejecución
cp -r dist/conf.
chmod 755 red5.sh
6) Crear el siguiente archivo: vi /etc/init.d/red5
Con este contenido:
#!/bin/bash # For RedHat and cousins: # chkconfig: 2345 85 85 #
description: Red5 flash streaming server # processname: red5 # Created
Angel Omar Vázquez Quintero | 43
By: SohailRiaz ([email protected]) PROG=red5 RED5_HOME=/usr/local/red5
DAEMON=$RED5_HOME/$PROG.sh PIDFILE=/var/run/$PROG.pid # Source function
library . /etc/rc.d/init.d/functions [ -r /etc/sysconfig/red5 ] && .
/etc/sysconfig/red5 RETVAL=0 case "$1" in start) echo -n $"Starting
$PROG: " cd $RED5_HOME $DAEMON >/dev/null 2>/dev/null &RETVAL=$? if
[ $RETVAL -eq 0 ]; then echo $! > $PIDFILE touch /var/lock/subsys/$PROG
fi [ $RETVAL -eq 0 ] && success $"$PROG startup" || failure $"$PROG
startup" echo ;; stop) echo -n $"Shutting down $PROG: " killproc -p
$PIDFILE RETVAL=$? echo[ $RETVAL -eq 0 ] &&rm -f
/var/lock/subsys/$PROG ;; restart) $0 stop $0 start ;; status) status
$PROG -p $PIDFILE RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|
restart|status}" RETVAL=1 esac exit $RETVAL
y dar permiso de ejecución con el siguiente comando :
chmod 755 /etc/init.d/red5
7) Se puede arrancar y parar el servicio
/etc/init.d/red5 stop/etc/init.d/red5 start/etc/init.d/red5 status/etc/init.d/red5 restart
8) http://IP_DE_NUESTRO_SERVIDOR:5080
3.2.5. Instalación de Flash Builder
Para instalar el Flash Builder(IDE) es necesario descargarlo del sig. Link
https://www.adobe.com/cfusion/tdrc/index.cfm?product=flash_builder que es
de la página oficial y posteriormente comprar el serial o comprar en alguna tienda
departamental (ver Figura 3.2).
Angel Omar Vázquez Quintero | 44
Figura 3.2 Opción de descarga del IDE Flash Builder
Se descargó la versión disponible, se ejecuta el programa y se siguen las
instrucciones de instalación hasta concretar la misma.
3.2.6 Instalación del SDK Flex.
Para llevar a cabo la instalación del software development kit (SDK.) de Flex de su
página oficial, ir al siguiente enlace:
http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4.5
Después de descargar el SDK, se descomprime el archivo en el equipo, es
importante recordar el directorio donde se ha guardado y el nombre de la carpeta,
ya que es necesario para establecer el SDK de Flex y usar las herramientas del
SDK con Flash Builder 4.
Ahora se guarda el SDK de Flex en C:\ para hacer referencia más rápidamente.
Posteriormente se ejecuta el Flash Builder 4 y en Windows y se selecciona
preferences (ver Figura 3.3).
Angel Omar Vázquez Quintero | 45
Figura 3.3 Configuración del IDE.
La siguiente imagen quese abre,se elige de la barra lateral izquierda Flash Builder
y después installed Flex SDK’s posteriormente en el botón “Add…” la siguiente
ventana, se da clic en “Browse…”se busca la ubicación del SDK y se selecciona
(ver Figura 3.4).
Figura 3.4 Configuración del IDE Flex.
Después de instalado el SDK se observa de la siguiente manera (ver Figura 3.5)
Angel Omar Vázquez Quintero | 46
Figura 3.5 Selección de versión de SDK.
3.2.7 Desarrollo de la aplicación
Durante el siguiente apartado se explica la funcionalidad y se presentan las
diferentes pantallas que conforman esta aplicación. El funcionamiento consiste en
la primera parte, autentificarse con la extensión previamente creada en
FreeSWITCH.
Figura 3.6 pantalla para autentificarse y acceder al SoftPhone.
Angel Omar Vázquez Quintero | 47
Una vez realizada laautentificación dentro de la aplicación aparece el SoftPhone el
cual cuenta con una interfaz gráfica, algo rústica por el momento, con los botones
enumerados, una sección de marcado rápido de algunas extensiones ya
registradas previamente, dos botones para marcar(Dial), y colgar(Hang up), una
barra deslizable para poder subir o bajar el volumen de la llamada y un ícono de
una cámara para poder habilitar la cámara del usuario y poder realizar la video
llamada, para empezar a transmitir al otro usuario.
Figura 3.7 SoftPhone para realizar llamadas.
Para poder realizar la llamada a otro usuario, es necesario que los dos usuarios
que se comuniquen,esténautentificados dentro de la aplicación con diferentes
extensiones. Una vez que se realice lo comentado anteriormente, uno de los dos
usuarios debe de marcar la extensión del otro con el que quiere establecer
comunicación. Después de haber marcado la extensión, se realiza la llamada con
el botón“Dial”, para confirmar que se está realizando la llamada, el SoftPhone
emite un tono de marcación.
Angel Omar Vázquez Quintero | 48
Figura 3.8 Llamada establecida con otro usuario (ext. 10001).
Al usuario número dos al que se le está realizando la llamada, su SoftPhone
emitirá un tono de llamada entrante y automáticamente se le mostrará un botón
que dice “Answer”con el cual se puede contestar a la llamada si es que el usuario
lo desea.
Una vez establecida la llamada se habilita el botón para poder realizar la video-
llamada. Internamente al momento en que se realiza la llamada con FreeSWITCH
esa misma extensión se utiliza para suscribirse al “canal” del usuario dos,y el
usuario dos se suscribe al “canal” del usuario uno en Red5. Ahora, sí algunode los
dos usuarios durante la llamada decide habilitar la video-llamada, ese usuario es
el que empieza a transmitir su video mediante Red5.
Angel Omar Vázquez Quintero | 49
Figura 3.9 video llamada establecida mediante Red5.
Es entonces, cuando se hace uso de los dos servidores, tanto de audio como de
video, trabajando en conjunto y simulando como si fuera uno mismo, una vez
realizada la video llamada el usuario puede optar por ocultar la cámara y solo
llamar o también finalizarla presionando el botón “Hang Up”, si el usuario decide
solo ocultar la cámara sin terminar la llamada, dejará de trasmitir, el que cierre la
cámara, y al otro usuario tendrá la sensación de que la imagen se congeló, pero si
opta de nuevo por habilitar la cámara durante la misma llamada se podrá trasmitir
el video sin ningún percance, si alguno decide terminar la video llamada,
automáticamente se cierran las cámaras de ambos usuarios, así como también las
conexiones en ambos servidores.
Posteriormente si se desea hacer alguna otra llamada, es necesario marcar a
alguna otra extensión conocida y realizar nuevamente los pasos anteriormente
mencionados.
Angel Omar Vázquez Quintero | 50
De esta manera, se logróunir cada de las tecnologías, FreeSwitch y Red5, en un
proyecto de video-llamadas, proporcionando ambas resultadosóptimos y estables
en la aplicación Dilo Communicator.
Angel Omar Vázquez Quintero | 51
CAPÍTULO 4CONCLUSIONES
4.1 Comprobación de hipótesis
Se afirma la hipótesis planteada desde el inicio del proyecto, esto debido a que
implementando tecnologías libres (Open Source), se creó un SoftPhone, con las
especificaciones requeridas, como fueron, la elección de los server adecuados
para la transmisión de voz y de video, así como también la convivencia de ambos
servidores en una sola aplicación, permitiendo comunicarse a los usuarios
mediante una red LAN o WLAN, utilizando la plataforma de “Dilo
Communicator”.
4.2 Cumplimiento de objetivos
Para el desarrollo del proyecto, se plantearon varios objetivos a cumplir, mismos
que ayudarían a definir el porcentaje de cumplimiento al término del proyecto.
4.2.1 General.
Se desarrolló un SoftPhone con el cual se pueden realizar llamadas y video
llamadas usando tecnologías Open Source, con el fin de brindar un servicio de
soporte técnico para la aplicación de “Dilo Communicator”.
Los factores positivos que influyeron para su desarrollo se destacan en la
recopilación y definición de los requerimientos con respecto a los campos que
llevaría la base de datos y los requisitos de la aplicación, de esta manera se
evitaron los retrasos para la ejecución del mismo.
Angel Omar Vázquez Quintero | 52
4.3 Resultados del proyecto
Lo mostrado en el desarrollo de este documento, fue el resultado de un prototipo
realizado en base a lo investigado, el cual en un principio se realizó con una
interfaz un poco rústica y poco amigable para el usuario, también contaba con el
paso de autentificarse por parte del usuario, el cual debe de ser transparente al
usuario, ya que sería un paso no muy bien visto por los mismos.
A continuación se muestra el resultado del SoftPhone ya montado dentro de la
aplicación “Dilo Communicator”, para brindar un servicio de soporte técnico a
los usuarios que utilicen dicha plataforma.
Figura 4.1 Plataforma “Dilo Communicator”.
Angel Omar Vázquez Quintero | 53
Figura 4.2 Lista de contactos disponibles dentro la plataforma.
Figura 4.3 llamando al usuario disponible para establecer una llamada.
Angel Omar Vázquez Quintero | 54
Figura 4.4 llamada establecida ocupando FreeSWITCH.
Figura 4.5 Video llamada establecida mediante Red5 dentro de la plataforma “Dilo Communicator”.
Angel Omar Vázquez Quintero | 55
4.4 Contribuciones
Las contribuciones realizadas a la empresa fueron el desarrollo de un SoftPhone
con el cual pudieran comunicarse con otros usuarios con el uso de tecnologías
Open Source, gracias al desarrollo del SoftPhone se podrá brindar un servicio de
soporte técnico y de servicio de consulta de resultados médicos en la aplicación
“Dilo Communicator”.
Como trabajos futuros se recomienda buscar mejoras para el SoftPhone y
estabilidad, con el fin de que no consuma mucho ancho de banda y tener una
comunicación más fluida y de mejor calidad el audio y video.
Angel Omar Vázquez Quintero | 56
BIBLIOGRAFÍA
[1] Adobe Flex, Información general de Flex, Adobe. 20 de Enero del 2013.http://www.adobe.com/es/products/flex/overview/
[2] Adobe Flex, características de Flex, Adobe. 25 de Enero del 2013.http://www.adobe.com/es/products/flex/productinfo/features/
[3] Adobe Flex, Marco de trabajo de Flex, Adobe. 30 de Enero del 2013.http://www.adobe.com/es/products/flex/flex_framework/
[4] Adobe Flex, documentación, Adobe. 02 de Febrero del 2013.http://www.adobe.com/devnet/flex/documentation.html
[5] ActionScrip 3.0 Flex, api de Flex, Adobe. 05 de Febrero del 2013http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/index.html
[6] Adobe Flex, Accessing Data with ADOBE® FLEX® 4.5, Adobe.09 de Marzo del 2013.http://help.adobe.com/en_US/legalnotices/index.html
Angel Omar Vázquez Quintero | 57
ANEXOS
Listado de Anexos:
Anexo 1: Project Charter
Anexo 2: Alcance del Proyecto
Anexo 3: Plan de Administración del Proyecto
Anexo 4: WBS
Anexo 5: WBS Dictionary
Anexo 6: Cronograma de actividades
Anexo 7: Diagrama de Gantt
Anexo 1: Project Charter
Título del proyecto y Descripción
“Streaming de video usando el protocolo RTMP y tecnologías Open Source”
El proyecto consiste en facilitar la comunicación entre 2 usuarios, mediante voz y video, haciendo uso de tecnologías libres (Open Source). Después de una ardua investigación de diferentes opciones a ocupar para poder solventar dicho problema, se optó por usar dos servidores dedicados en cada área en específico (Red5 y FreeSWITCH), para que de esta manera se tenga un resultado óptimo.
Administrador del proyecto asignado y nivel de autoridad
Líder de proyecto y desarrollador: Ángel Omar Vázquez Quintero
Justificación del proyecto
El motivo por el cual se desarrolló un SoftPhone con tecnologías libres (Open
Source) se hizo con el fin de brindar un servicio de soporte técnico, así como
también bajar el coste a la empresa, ya que pagaba una licencia para poder
transmitir audio video haciendo uso del server WOWZA MEDIA SERVER. Los
server utilizados ahora fueron Red5 y FreeSWITCH, ambas tecnologías son Open
Source, cada una encargada en un área en específico, la ventaja de usar
FreeSWITCH, es que puede soportar más de 10000 llamadas concurrentes,
además de que en un futuro se puedan realizar llamadas locales y a celulares.
Haciendo uso de estos servidores Open Source, se eliminaría el pago de la
licencia y de la dependencia de terceros haciendo uso de su propia
infraestructura.
StakeHolders
Nombre Puesto Rol PosturaNivel de
influencia
BA.E. Jorge Madrid
Director General de
Hova Networks
Sponsor/Cliente Apoya
Muy Alto
LDG. Octavio Funes
Director de Unidad de
negocio Hova Cloud
StakeHolder Apoya Alto
MBA. Anel Flores
Gerente de Mercadotecnia
StakeHolder Apoya Alto
I.C Adrián Fuentes Muñoz
Arquitecto de Desarrollo de
Software
Líder de Proyecto/
StakeHolderApoya Alto
TSU. Ángel Vázquez
Líder de proyecto
StakeHolder Apoya Alto
Descripción del producto/ Entregables.
Como producto final se entregara un SoftPhone desarrollado con tecnologías
Open Source, con el cual se puedan realizar llamadas de manera local, pero
también diseñado para que más adelante puede realizar llamadas a números
externos(Locales, Celulares), ya posteriormente de una manera fácil sea montado
en la aplicación “Dilo Communicator”.
Objetivos medibles del Proyecto.
Desarrollar SoftPhone con tecnologías Open Source
Montar un server de audio Open Source, con posibilidad de conectarse a un
proveedor de servicios de telefonía (carrier).
Montar un server de video Open Source.
Montar el SoftPhone a la plataforma “Dilo Communicator.
Riesgos de alto nivel
Cambios en las prioridades del cliente
Fallas en los servicios básicos (energía eléctrica)
Falta de servicios complementarios (Internet, servidores).
Anexo 2: Alcance del Proyecto
Recopilación de requerimientos
Realizar un SoftPhone para hacer llamadas entre usuarios mediante una
red LAN.
Descripción del alcance del producto
Desarrollar un SoftPhone capaz de comunicarse con otro mediante voz y video,
perteneciente o no a la misma red haciendo uso del protocolo RTMP y tecnologías
libres (Open Source).
Las aplicaciones se desarrollaran bajo el lenguaje de programación AS3 con el
IDE Flash Builder y con el uso de librerías adaptables al lenguaje de desarrollo.
Criterios de aceptación del producto.
Entregar una aplicación en la cual se puedan realizar llamadas entre
usuarios pertenecientes a una misma red.
Anexo 3: Plan de Administración del Proyecto
“Streaming de video usando el protocolo RTMP y tecnologías Open Source”
Descripción del proyecto
El presente proyecto expone el desarrollo de un SoftPhone con el cual se puedan
realizar llamadas y video llamadas entre usuarios conectados en una red LAN,
para la consulta de soporte técnico o consulta de resultados de Tele radiología.
Objetivos del Proyecto
Crear un SoftPhone con tecnologías libres (Open Source) que se encargue del
manejo del audio y video como una funcionalidad incorporada al sistema “Dilo
Communicator”.
Investigar Freamworks para desarrollar el SoftPhone que utilicen el
protocolo RTMP.
Investigar posibles servidores Open Source para el manejo de audio y video
con soporte al protocolo RTMP.
Implementar los servidores Red5 y FreeSWITCH
Alcance del Proyecto
Desarrollar un SoftPhone capaz de comunicarse con otro mediante voz y video,
perteneciente o no a la misma red haciendo uso del protocolo RTMP y tecnologías
libres (Open Source).
Entregables
Aplicación de escritorio (Digital).
Restricciones del proyecto
El SoftPhone a desarrollar no será capaz de conectarse a proveedores de
telefonía para poder hacer llamadas a celulares o teléfonos fijos (llamadas
locales).
El SoftPhone solo podrá establecer comunicación entre dos usuarios.
Planeación del Proyecto
Inicio Fin
9 de Enero 2013 26 de Abril 2013
Plan Tecnológico
Métodos, Herramientas y Técnicas
Actividad Lenguaje Herramienta
Desarrollo de la aplicación de escritorio
AS3 Flash Builder
Anexo 4: WBS
Anexo 5: WBS Dictionary
Nombre del Proyecto Siglas del ProyectoSTREAMING DE VIDEO USANDO EL PROTOCOLO RTMP Y TECNOLOGÍAS
OPEN SOURCE“STREAMINGVIDEO”
FA
SE
1 IN
ICIO
1.1Documentación
1.1.1 Project Charter
Este documento detalla: la definición del proyecto, definición del producto, requerimiento de los StakeHolders, necesidades del negocio, finalidad y justificación del proyecto, organizaciones que intervienen, supuestos, restricciones, riesgos y oportunidades del proyecto.
1.1.2 Identificación de
StakeHolders
En este documento se identifican todos los interesados que intervienen en el proyecto.
1.2 Investigación de
plataformas
1.2.1 Investigación de
las posibles plataformas
para desarrollo de la aplicación
En este documento se definirán que plataforma es la adecuada para poder desarrollar la aplicación o el sistema.
FA
SE
2 P
LA
NE
AC
ION
2.1 Análisis de requerimientos
En este documento se plasman las necesidades del cliente con las que contara el proyecto.
2.2 Definición del alcance
Este documento define claramente hasta donde llegara el proyecto, es el entregable final que espera el cliente.
2.3 WBS
2.3.1 Definición de paquetes
En este documento se dividen las fases en paquetes toman en cuenta las actividades que se realizaran en el proyecto.
2.3.2 Definir entregables
En este documento se realizan los entregables que servirán como evidencia para comprobar que las actividades realizadas se estén llevando de la forma adecuada
2.4 Cronograma de actividades
2.4.1Desarrollo del cronograma
En este documento se identifican los recursos humanos, los tiempos, nos
genera el diagrama de red y también nos sirve como línea base, este se realiza en una herramienta especial para el desarrollo de proyectos.
2.5 Representación
Conceptual
2.5.1 Representar de
manera conceptual el procedimiento del proyecto
Se elaborara un diagrama conceptual, en la cual explique gráficamente la funcionalidad lógica de la aplicación.
FA
SE
3
EJE
CU
CIO
N
3.2 Desarrollo de la aplicación
Se elaborara la aplicación NEPDO la cual, cubrirá todos los requisitos del cliente, y llegar a los alcances establecidos y acordados con el cliente.
FA
SE
4
SE
GU
IMIE
NT
O Y
4.1Ejecutar el plan de pruebas
Se elaborara un documento con las pruebas que se realizaron a la aplicación, el cual contendrá los errores que tuvo y la confirmación de que ese error fue resuelto.
FA
SE
5 C
IER
RE
5.1 Aplicación final
5.1.1Presentación y
demostración final de la aplicación
Se presentara de manera de exposición las funcionalidades de la aplicación ya concluida, y de su funcionalidad
5.2 Manuales5.2.1 Manual de
usuario
Se elaborara un manual dedicado para el usuario con el motivo de que el cliente haga un buen uso de la aplicación y esta misma tenga un buen desempeño.
5.3Documentación de aceptación
5.3.1 Firma del documento final
Ya terminada la aplicación funcionando correctamente, sin errores y cumpliendo con el
alcance que definió el cliente como último paso firma el documento final para terminar el proyecto.
Anexo 6: Cronograma de actividades
Anexo 7: Diagrama de Gantt
Anexo 8: Plan de comunicaciones
Matriz de comunicación
Pro
jec
t C
har
ter
Ide
nti
fica
ció
n
de
Sta
keH
old
ers
An
ális
is d
e re
qu
eri
mie
nto
s
De
fin
ició
n d
el
alc
ance
De
sarr
ollo
de
l cr
on
og
ram
a d
e
acti
vid
ad
es
Re
pre
sen
tac
ión
co
nce
ptu
al
de
l fu
nc
ion
amie
nto
d
el p
roy
ecto
De
sarr
ollo
de
la
aplic
ació
n
Eje
cu
ció
n d
e
pla
n d
e p
rueb
as
Entrega: Recibe:
10/0
1/1
3
10/0
1/1
3
15/0
1/1
3
15/0
1/1
3
18/0
1/1
3
14/0
2/1
3
27/0
3/1
3
03/0
4/1
3
TSU. Ángel Vázquez
Jorge Madrid I.C, R.
I.C, R.
I.C,R. I.C. I.C. I.C,R. I.C I.C
TSU. Ángel Vázquez
Octavio Funes I.C, R.
I.C, R.
R, I.I. I.C, R.
I.C. I.C,R. I.C I.C.
TSU. Ángel Vázquez
I.C Adrián Fuentes Muñoz
I.C, R, I.I.
I.C, R.
I.C, R. I.C, R.
I.C, R. I.C,R. I.C I.C
SimbologíaI.C. : Información vía correoR : ReunionesI.I. : Información impresa