EMILIANO ZAPATA, MORELOS, JULIO DE 2013
UNIVERSIDAD TECNOLÓGICA
EMILIANO ZAPATA DEL ESTADO DE MORELOS
DIVISIÓN ACADÉMICA D...
Página
ÍNDICE DE FIGURAS
AGRADECIMIENTOS
RESUMEN
SUMMARY
CAPÍTULO 1. DESCRIPCIÓNDEL PROYECTO
1.1 Planteamiento del Problem...
2.1.5.2.2 Codecsde Audio........................................................................... 18
2.2 Perspectiva Teó...
,.
Página
Figura 1.1 Logotipo de la empresa………………………………………………… 3
Figura 2.1 Arquitectura de Flex…………………………………………………….. 8
F...
Agradezco a:
Primeramente le quiero agradecer a Dios por haber permitido estudiar una carrera, a
pesar de mi indecisión de...
La Empresa MoreloSoft, la cual se dedica al desarrollo de aplicaciones y soluciones
tecnológicas para el ámbito empresaria...
MoreloSoft Company, which is dedicated to developing applications and technology
solutions to the business world, every da...
Angel Omar Vázquez Quintero | 1
1.1 Planteamiento del Problema.
La empresa MoreloSoft,ha estado desarrollando una aplicaci...
Angel Omar Vázquez Quintero | 2
manejo del audio y video como una funcionalidad incorporada al sistema “Dilo
Communicator”...
Angel Omar Vázquez Quintero | 3
1.5.2 Limitaciones
 El SoftPhone a desarrollar no será capaz de conectarse a proveedores ...
Angel Omar Vázquez Quintero | 4
2.1 Revisión Bibliográfica
2.1.1 FLEX
Flex es definido como un marco de trabajo gratuito d...
Angel Omar Vázquez Quintero | 5
Flex Versión RELEASE DATE
Flex 1.0 Marzo de 2004
Flex 1.5 Octubre de 2004
Flex 2.0 Alpha O...
Angel Omar Vázquez Quintero | 6
Características de Flex
Flex se caracteriza por ser un sistema robusto para crear aplicaci...
Angel Omar Vázquez Quintero | 7
Integración con Adobe AIR
El tiempo de ejecución de Adobe AIR® permite ejecutar las aplica...
Angel Omar Vázquez Quintero | 8
Arquitectura Flex
Con el fin de poder entender cómo funciona Flex ejemplifica los elemento...
Angel Omar Vázquez Quintero | 9
unas, carece de las conocidas estructuras de control para la ejecución cíclica de
código (...
Angel Omar Vázquez Quintero | 10
MXML tiene ciertas capacidades para permitir la comunicación entre los
componentes, pero ...
Angel Omar Vázquez Quintero | 11
Flex Data Services.
Flex Data Services es el componente que permite a Flex conectarse con...
Angel Omar Vázquez Quintero | 12
El Streaming funciona de la siguiente forma:
 Conexión con el servidor. El reproductor c...
Angel Omar Vázquez Quintero | 13
o Mayor rapidez en la visualización de este tipo de contenidos.
o La comunicación entre s...
Angel Omar Vázquez Quintero | 14
cuerpo que, en el caso de los comandos de conexión y control, se codifica
utilizando el f...
Angel Omar Vázquez Quintero | 15
2.1.4 FreeSWITCH
Es una plataforma de comunicaciones de software libre/código abierto par...
Angel Omar Vázquez Quintero | 16
biblioteca se encarga de abstraer los aspectos triviales de la programación con
sockets.
...
Angel Omar Vázquez Quintero | 17
 H.261
 H.263
 H.263+ (H.263-1998)
 H.263++ (H.263-2000)
 H.264
 Theora (passthroug...
Angel Omar Vázquez Quintero | 18
2.1.5.1Puertos que soporta Red5.
Puerto Descripción
http.port=5080 Tomcato jetty contened...
Angel Omar Vázquez Quintero | 19
2.2 Perspectiva Teórica
Para el desarrollo de la aplicación se utilizaron las diversas te...
Angel Omar Vázquez Quintero | 20
Program Operating
systems
License Protocol/based
upon/compatible with
Encrypt
ion
Key and...
Angel Omar Vázquez Quintero | 21
Python, Java & .NET, JavaScript), su voicemail, reconocimiento de voz y
conferencias de a...
Angel Omar Vázquez Quintero | 22
plataforma base. Además, es posible integrar un módulo de video conferencia por
medio de ...
Angel Omar Vázquez Quintero | 23
Y
3.1 Procesos de Administración del proyecto
Para la administración del proyecto se real...
Angel Omar Vázquez Quintero | 24
Figura 3.1 Representación conceptual del funcionamiento del SoftPhone
3.1.2 Planeación de...
Angel Omar Vázquez Quintero | 25
funcionalidades y objetivos del sistema, es decir, hasta donde va a llegar,
teniendo así ...
Angel Omar Vázquez Quintero | 26
Cliente
El usuario deberá tener instalado la última versión de adobe Air en su equipo de
...
Angel Omar Vázquez Quintero | 27
Así como también desarrollar los paquetes del WBS y en consiguiente desarrollar
el cronog...
Angel Omar Vázquez Quintero | 28
3.2.3.1.2 Instalación
Para llevar a cabo la instalación del server FreeSWITCH es necesari...
Angel Omar Vázquez Quintero | 29
8. Si se requieren archivos de audio ejecutar lo siguiente
$ make sounds-install
$ makemo...
Angel Omar Vázquez Quintero | 30
Ejemplo:
#vi 1000.xml
<include>
<user id=”1000” mailbox=”1000”>
<params>
<param name=”pas...
Angel Omar Vázquez Quintero | 31
entramos directamente a nuestro correo de voz, en la sexta línea nos indica el
cierre de ...
Angel Omar Vázquez Quintero | 32
Git es un software de control de versiones, pensando en la eficiencia y la
confiabilidad ...
Angel Omar Vázquez Quintero | 33
./bootstrap.sh
3. Se edita el archivo modules.conf para quitar el comentario el módulo
“e...
Angel Omar Vázquez Quintero | 34
11. Ya creados los directorios se hace referencia al códigofuente de
FreeSWITCH descargad...
Angel Omar Vázquez Quintero | 35
Paso 5. Finalmente, abre un buscador Web y escribe “http://localhost” (sin las
comillas) ...
Angel Omar Vázquez Quintero | 36
tar -xvzf apache-ant-1.8.2-bin.tar.gz
mv apache-ant-1.8.2 ../local/ant
3) Exportar variab...
Angel Omar Vázquez Quintero | 37
By: SohailRiaz (sohaileo@gmail.com) PROG=red5 RED5_HOME=/usr/local/red5
DAEMON=$RED5_HOME...
Angel Omar Vázquez Quintero | 38
Figura 3.2 Opción de descarga del IDE Flash Builder
Se descargó la versión disponible, se...
Angel Omar Vázquez Quintero | 39
Figura 3.3 Configuración del IDE.
La siguiente imagen quese abre,se elige de la barra lat...
Angel Omar Vázquez Quintero | 40
Figura 3.5 Selección de versión de SDK.
3.2.7 Desarrollo de la aplicación
Durante el sigu...
Angel Omar Vázquez Quintero | 41
Una vez realizada laautentificación dentro de la aplicación aparece el SoftPhone el
cual ...
Angel Omar Vázquez Quintero | 42
Figura 3.8 Llamada establecida con otro usuario (ext. 10001).
Al usuario número dos al qu...
Angel Omar Vázquez Quintero | 43
Figura 3.9 video llamada establecida mediante Red5.
Es entonces, cuando se hace uso de lo...
Angel Omar Vázquez Quintero | 44
De esta manera, se logróunir cada de las tecnologías, FreeSwitch y Red5, en un
proyecto d...
Angel Omar Vázquez Quintero | 45
4.1 Comprobación de hipótesis
Se afirma la hipótesis planteada desde el inicio del proyec...
Angel Omar Vázquez Quintero | 46
4.3 Resultados del proyecto
Lo mostrado en el desarrollo de este documento, fue el result...
Angel Omar Vázquez Quintero | 47
Figura 4.2 Lista de contactos disponibles dentro la plataforma.
Figura 4.3 llamando al us...
Angel Omar Vázquez Quintero | 48
Figura 4.4 llamada establecida ocupando FreeSWITCH.
Figura 4.5 Video llamada establecida ...
Angel Omar Vázquez Quintero | 49
4.4 Contribuciones
Las contribuciones realizadas a la empresa fueron el desarrollo de un ...
Angel Omar Vázquez Quintero | 50
[1] Adobe Flex, Información general de Flex, Adobe. 20 de
Enero del 2013.
http://www.adob...
Listado de Anexos:
Anexo 1: ProjectCharter
Anexo 2: Alcance del Proyecto
Anexo 3: Plan de Administración del Proyecto
Anex...
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 cons...
StakeHolders
Nombre Puesto Rol Postura
Nivel de
influencia
BA.E. Jorge
Madrid
Director General
de
Hova Networks
Sponsor/Cl...
 Montar el SoftPhone a la plataforma “Dilo Communicator.
Riesgos de alto nivel
 Cambios en las prioridades del cliente
...
Anexo 2: Alcance del Proyecto
Recopilación de requerimientos
 Realizar un SoftPhone para hacer llamadas entre usuarios me...
Anexo 3: Plan de Administración del Proyecto
“Streaming de video usando el protocolo RTMP y tecnologías Open Source”
Descr...
 El SoftPhone a desarrollar no será capaz de conectarse a proveedores de
telefonía para poder hacer llamadas a celulares ...
Anexo 4: WBS
Anexo 5: WBS Dictionary
FASE1INICIO
1.1Documentación
1.1.1 Project Charter
Este documento detalla: la
definición del proye...
el proyecto.
2.3.2 Definir
entregables
En este documento se realizan los
entregables que servirán como
evidencia para comp...
FASE4SEGUIMIENTOY
CONTROL
4.1Ejecutar el plan
de pruebas
Se elaborara un documento con las pruebas que se
realizaron a la ...
Anexo 6: Cronograma de actividades
Anexo 7: Diagrama de Gantt
Anexo 8: Plan de comunicaciones
Matriz de
comunicación
ProjectCharter
Identificación
deStakeHolders
Análisisde
requerimien...
Upcoming SlideShare
Loading in …5
×

Tesina Angel Vazquez - Streaming de Video implementando el protocolo RTMP y tecnologias Open Source

2,985 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,985
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
42
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tesina Angel Vazquez - Streaming de Video implementando el protocolo RTMP y tecnologias Open Source

  1. 1. 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
  2. 2. Página ÍNDICE DE FIGURAS AGRADECIMIENTOS RESUMEN SUMMARY CAPÍTULO 1. DESCRIPCIÓNDEL 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 CONTENIDO
  3. 3. 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
  4. 4. ,. Página Figura 1.1 Logotipo de la empresa………………………………………………… 3 Figura 2.1 Arquitectura de Flex…………………………………………………….. 8 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 Tabla 2.3 Tabla comparativa de servers de audio….………………..…………….. 20 ÍNDICE DE FIGURAS
  5. 5. 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. AGRADECIMIENTOS
  6. 6. 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”. RESUMEN
  7. 7. 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". SUMMARY
  8. 8. Angel Omar Vázquez Quintero | 1 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 CAPÍTULO 1 DESCRIPCIÓN DEL PROYECTO
  9. 9. Angel Omar Vázquez Quintero | 2 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).
  10. 10. Angel Omar Vázquez Quintero | 3 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.
  11. 11. Angel Omar Vázquez Quintero | 4 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. CAPÍTULO 2 MARCO TEÓRICO
  12. 12. Angel Omar Vázquez Quintero | 5 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.
  13. 13. Angel Omar Vázquez Quintero | 6 Características de Flex 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].
  14. 14. Angel Omar Vázquez Quintero | 7 Integración con Adobe AIR 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].
  15. 15. Angel Omar Vázquez Quintero | 8 Arquitectura Flex 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
  16. 16. Angel Omar Vázquez Quintero | 9 unas, carece de las conocidas estructuras de control para la ejecución cíclica de código (for, while, etc). 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.
  17. 17. Angel Omar Vázquez Quintero | 10 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 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).
  18. 18. Angel Omar Vázquez Quintero | 11 Flex Data Services. 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.
  19. 19. Angel Omar Vázquez Quintero | 12 El Streaming funciona de la siguiente forma:  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:
  20. 20. Angel Omar Vázquez Quintero | 13 o Mayor rapidez en la visualización de este tipo de contenidos. 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
  21. 21. Angel Omar Vázquez Quintero | 14 cuerpo que, en el caso de los comandos de conexión y control, se codifica 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.
  22. 22. Angel Omar Vázquez Quintero | 15 2.1.4 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 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
  23. 23. Angel Omar Vázquez Quintero | 16 biblioteca se encarga de abstraer los aspectos triviales de la programación con sockets. 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:
  24. 24. Angel Omar Vázquez Quintero | 17  H.261  H.263  H.263+ (H.263-1998)  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.
  25. 25. Angel Omar Vázquez Quintero | 18 2.1.5.1Puertos que soporta Red5. Puerto Descripción http.port=5080 Tomcato jetty contenedor servlet rtmp.port=1935 Tradicional RTMP rtmpt.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_HOMEconfred5.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
  26. 26. Angel Omar Vázquez Quintero | 19 2.2 Perspectiva Teórica 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.
  27. 27. Angel Omar Vázquez Quintero | 20 Program Operating systems License Protocol/based upon/compatible with Encrypt ion Key and target markets Mysipswit ch Linux BSD SIP,AJAX SSL Individuals Murmur Linux/BSD, M ac OS X,Windows BSD/GPL CELT / Speex TLS Individuals to Small and medium enterprise (25-5000 users) Asterisk PBX Linux/BSD, M ac 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 FreeSWI TCH Linux/BSD, M ac OS X,Solaris, Wi ndows Mozilla PublicLic ense SIP, NAT- PMP,STUN,RTMP, SIMPLE,XM PP, Google Talk(Jingle), IAX, H.323,MRCP, RSS, Skype. TSL, SRTP, ZRTP Large soft- switch users, home PBXu sers, 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,
  28. 28. Angel Omar Vázquez Quintero | 21 Python, Java & .NET, JavaScript), su voicemail, reconocimiento de voz y conferencias de alta definición. 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
  29. 29. Angel Omar Vázquez Quintero | 22 plataforma base. Además, es posible integrar un módulo de video conferencia por medio de la iniciativa OpenMeeting.
  30. 30. Angel Omar Vázquez Quintero | 23 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. CAPÍTULO 3 DESARROLLO DEL PROYECTO
  31. 31. Angel Omar Vázquez Quintero | 24 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
  32. 32. Angel Omar Vázquez Quintero | 25 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
  33. 33. Angel Omar Vázquez Quintero | 26 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.
  34. 34. Angel Omar Vázquez Quintero | 27 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
  35. 35. Angel Omar Vázquez Quintero | 28 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
  36. 36. Angel Omar Vázquez Quintero | 29 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.
  37. 37. Angel Omar Vázquez Quintero | 30 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)
  38. 38. Angel Omar Vázquez Quintero | 31 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.
  39. 39. Angel Omar Vázquez Quintero | 32 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
  40. 40. Angel Omar Vázquez Quintero | 33 ./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. ./configure make make 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
  41. 41. Angel Omar Vázquez Quintero | 34 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.
  42. 42. Angel Omar Vázquez Quintero | 35 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
  43. 43. Angel Omar Vázquez Quintero | 36 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
  44. 44. Angel Omar Vázquez Quintero | 37 By: SohailRiaz (sohaileo@gmail.com) 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).
  45. 45. Angel Omar Vázquez Quintero | 38 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).
  46. 46. Angel Omar Vázquez Quintero | 39 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)
  47. 47. Angel Omar Vázquez Quintero | 40 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.
  48. 48. Angel Omar Vázquez Quintero | 41 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.
  49. 49. Angel Omar Vázquez Quintero | 42 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.
  50. 50. Angel Omar Vázquez Quintero | 43 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.
  51. 51. Angel Omar Vázquez Quintero | 44 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.
  52. 52. Angel Omar Vázquez Quintero | 45 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. CAPÍTULO 4 CONCLUSIONES
  53. 53. Angel Omar Vázquez Quintero | 46 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”.
  54. 54. Angel Omar Vázquez Quintero | 47 Figura 4.2 Lista de contactos disponibles dentro la plataforma. Figura 4.3 llamando al usuario disponible para establecer una llamada.
  55. 55. Angel Omar Vázquez Quintero | 48 Figura 4.4 llamada establecida ocupando FreeSWITCH. Figura 4.5 Video llamada establecida mediante Red5 dentro de la plataforma “Dilo Communicator”.
  56. 56. Angel Omar Vázquez Quintero | 49 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.
  57. 57. Angel Omar Vázquez Quintero | 50 [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/fe atures/ [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 2013 http://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 BIBLIOGRAFÍA
  58. 58. Listado de Anexos: Anexo 1: ProjectCharter 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 ANEXOS
  59. 59. Anexo 1: Project Charter
  60. 60. 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.
  61. 61. StakeHolders Nombre Puesto Rol Postura Nivel 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/ StakeHolder Apoya 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.
  62. 62.  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).
  63. 63. 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.
  64. 64. 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
  65. 65.  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 Plan Tecnológico Métodos, Herramientas y Técnicas Actividad Lenguaje Herramienta Desarrollo de la aplicación de escritorio AS3 Flash Builder Inicio Fin 9 de Enero 2013 26 de Abril 2013
  66. 66. Anexo 4: WBS
  67. 67. Anexo 5: WBS Dictionary FASE1INICIO 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. FASE2PLANEACION 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 Nombre del Proyecto Siglas del Proyecto STREAMING DE VIDEO USANDO EL PROTOCOLO RTMP Y TECNOLOGÍAS OPEN SOURCE “STREAMINGVIDEO”
  68. 68. 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. FASE3EJECUCION 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.
  69. 69. FASE4SEGUIMIENTOY CONTROL 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. FASE5CIERRE 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 Manuales 5.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.
  70. 70. Anexo 6: Cronograma de actividades
  71. 71. Anexo 7: Diagrama de Gantt
  72. 72. Anexo 8: Plan de comunicaciones Matriz de comunicación ProjectCharter Identificación deStakeHolders Análisisde requerimientos Definicióndel alcance Desarrollodel cronogramade actividades Representación conceptualdel funcionamiento delproyecto Desarrollodela aplicación Ejecuciónde plandepruebas Entrega: Recibe: 10/01/13 10/01/13 15/01/13 15/01/13 18/01/13 14/02/13 27/03/13 03/04/13 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ía I.C. : Información vía correo R : Reuniones I.I. : Información impresa

×