SlideShare una empresa de Scribd logo
1 de 72
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
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
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
,.
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
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
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
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
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
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).
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.
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
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.
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].
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].
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
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.
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).
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.
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:
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
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.
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
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:
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.
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
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.
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,
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
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.
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
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
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
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.
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
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
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.
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)
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.
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
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
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.
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
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
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).
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).
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)
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.
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.
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.
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.
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.
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
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”.
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.
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”.
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.
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
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
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 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.
 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
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
Anexo 4: WBS
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”
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.
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.
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
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

Más contenido relacionado

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

Informe Adecco futuro del trabajo en España 2016
Informe Adecco futuro del trabajo en España 2016Informe Adecco futuro del trabajo en España 2016
Informe Adecco futuro del trabajo en España 2016Ximo Salas
 
Computadoras
ComputadorasComputadoras
Computadorasraul304
 
Cómo elaborar documentación digital accesible
Cómo elaborar documentación digital accesibleCómo elaborar documentación digital accesible
Cómo elaborar documentación digital accesibleManuel Calvillo Mazarro
 
Revista lunaticos 1K
Revista lunaticos 1KRevista lunaticos 1K
Revista lunaticos 1KJmarcospr90
 
M1 plataforma moodle_u1
M1 plataforma moodle_u1M1 plataforma moodle_u1
M1 plataforma moodle_u1Israel Mendoza
 
ejemplo M1 plataforma moodle_u1
ejemplo M1 plataforma moodle_u1ejemplo M1 plataforma moodle_u1
ejemplo M1 plataforma moodle_u1lexyolguin
 
Monografìa las TIC- Tecnología de la información y la comunicación
Monografìa las TIC- Tecnología de la información y la comunicaciónMonografìa las TIC- Tecnología de la información y la comunicación
Monografìa las TIC- Tecnología de la información y la comunicaciónLorena López Chuquimango
 
Autómatas programables SIEMENS Grafcet y Guía Gemma con TIA Portal EMERSON ED...
Autómatas programables SIEMENS Grafcet y Guía Gemma con TIA Portal EMERSON ED...Autómatas programables SIEMENS Grafcet y Guía Gemma con TIA Portal EMERSON ED...
Autómatas programables SIEMENS Grafcet y Guía Gemma con TIA Portal EMERSON ED...EMERSON EDUARDO RODRIGUES
 
edoc.pub_automatas-programables-siemens-grafcet-y-guia-gemm.pdf
edoc.pub_automatas-programables-siemens-grafcet-y-guia-gemm.pdfedoc.pub_automatas-programables-siemens-grafcet-y-guia-gemm.pdf
edoc.pub_automatas-programables-siemens-grafcet-y-guia-gemm.pdfMarioHaguila
 
AUTOMATAS PROGRAMABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL.pdf
AUTOMATAS PROGRAMABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL.pdfAUTOMATAS PROGRAMABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL.pdf
AUTOMATAS PROGRAMABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL.pdfMarioHaguila
 
Sistema operativo esperanza loayza
Sistema operativo esperanza loayzaSistema operativo esperanza loayza
Sistema operativo esperanza loayzaEsperanza Loayza
 
https://bit.ly/3gnuFWa
https://bit.ly/3gnuFWahttps://bit.ly/3gnuFWa
https://bit.ly/3gnuFWacristobalnoe
 

Similar a Tesina Angel Vazquez - Streaming de Video implementando el protocolo RTMP y tecnologias Open Source (20)

Informe Adecco futuro del trabajo en España 2016
Informe Adecco futuro del trabajo en España 2016Informe Adecco futuro del trabajo en España 2016
Informe Adecco futuro del trabajo en España 2016
 
21222
2122221222
21222
 
Computadoras
ComputadorasComputadoras
Computadoras
 
Cómo elaborar documentación digital accesible
Cómo elaborar documentación digital accesibleCómo elaborar documentación digital accesible
Cómo elaborar documentación digital accesible
 
Comunicacion visual
Comunicacion visualComunicacion visual
Comunicacion visual
 
Comunicacion visual y tecnologia de Grafios Juan Carlos Ainstein
Comunicacion visual y tecnologia de Grafios Juan Carlos AinsteinComunicacion visual y tecnologia de Grafios Juan Carlos Ainstein
Comunicacion visual y tecnologia de Grafios Juan Carlos Ainstein
 
Revista lunaticos 1K
Revista lunaticos 1KRevista lunaticos 1K
Revista lunaticos 1K
 
Tesis luis iribarne
Tesis luis iribarneTesis luis iribarne
Tesis luis iribarne
 
M1 plataforma moodle_u1
M1 plataforma moodle_u1M1 plataforma moodle_u1
M1 plataforma moodle_u1
 
ejemplo M1 plataforma moodle_u1
ejemplo M1 plataforma moodle_u1ejemplo M1 plataforma moodle_u1
ejemplo M1 plataforma moodle_u1
 
M1 plataforma moodle_u1(1)
M1 plataforma moodle_u1(1)M1 plataforma moodle_u1(1)
M1 plataforma moodle_u1(1)
 
Monografìa las TIC- Tecnología de la información y la comunicación
Monografìa las TIC- Tecnología de la información y la comunicaciónMonografìa las TIC- Tecnología de la información y la comunicación
Monografìa las TIC- Tecnología de la información y la comunicación
 
Autómatas programables SIEMENS Grafcet y Guía Gemma con TIA Portal EMERSON ED...
Autómatas programables SIEMENS Grafcet y Guía Gemma con TIA Portal EMERSON ED...Autómatas programables SIEMENS Grafcet y Guía Gemma con TIA Portal EMERSON ED...
Autómatas programables SIEMENS Grafcet y Guía Gemma con TIA Portal EMERSON ED...
 
edoc.pub_automatas-programables-siemens-grafcet-y-guia-gemm.pdf
edoc.pub_automatas-programables-siemens-grafcet-y-guia-gemm.pdfedoc.pub_automatas-programables-siemens-grafcet-y-guia-gemm.pdf
edoc.pub_automatas-programables-siemens-grafcet-y-guia-gemm.pdf
 
AUTOMATAS PROGRAMABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL.pdf
AUTOMATAS PROGRAMABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL.pdfAUTOMATAS PROGRAMABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL.pdf
AUTOMATAS PROGRAMABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL.pdf
 
INFORMÁTICA 1
INFORMÁTICA 1INFORMÁTICA 1
INFORMÁTICA 1
 
Aspecto caracteristicas
Aspecto caracteristicasAspecto caracteristicas
Aspecto caracteristicas
 
Saa s
Saa sSaa s
Saa s
 
Sistema operativo esperanza loayza
Sistema operativo esperanza loayzaSistema operativo esperanza loayza
Sistema operativo esperanza loayza
 
https://bit.ly/3gnuFWa
https://bit.ly/3gnuFWahttps://bit.ly/3gnuFWa
https://bit.ly/3gnuFWa
 

Más de Angel Vazquez

Extensiones nativas presentación
Extensiones nativas presentaciónExtensiones nativas presentación
Extensiones nativas presentaciónAngel Vazquez
 
Conceptos básicos en java
Conceptos básicos en javaConceptos básicos en java
Conceptos básicos en javaAngel Vazquez
 
Visualización de videos en el player nativo de android con Air
Visualización de videos en el player nativo de android con AirVisualización de videos en el player nativo de android con Air
Visualización de videos en el player nativo de android con AirAngel Vazquez
 
Pseudocodigo para soluciones de estadistica
Pseudocodigo para soluciones de estadisticaPseudocodigo para soluciones de estadistica
Pseudocodigo para soluciones de estadisticaAngel Vazquez
 
Creación de extensiones nativas
Creación de extensiones nativasCreación de extensiones nativas
Creación de extensiones nativasAngel Vazquez
 
Fragmentación vertical - MySQL
Fragmentación vertical - MySQLFragmentación vertical - MySQL
Fragmentación vertical - MySQLAngel Vazquez
 
Streaming de video implementando el protocolo RTMP y tecnologias Open Source
Streaming de video implementando el protocolo RTMP y tecnologias Open SourceStreaming de video implementando el protocolo RTMP y tecnologias Open Source
Streaming de video implementando el protocolo RTMP y tecnologias Open SourceAngel Vazquez
 

Más de Angel Vazquez (8)

Extensiones nativas presentación
Extensiones nativas presentaciónExtensiones nativas presentación
Extensiones nativas presentación
 
Beacons para Retail
Beacons para RetailBeacons para Retail
Beacons para Retail
 
Conceptos básicos en java
Conceptos básicos en javaConceptos básicos en java
Conceptos básicos en java
 
Visualización de videos en el player nativo de android con Air
Visualización de videos en el player nativo de android con AirVisualización de videos en el player nativo de android con Air
Visualización de videos en el player nativo de android con Air
 
Pseudocodigo para soluciones de estadistica
Pseudocodigo para soluciones de estadisticaPseudocodigo para soluciones de estadistica
Pseudocodigo para soluciones de estadistica
 
Creación de extensiones nativas
Creación de extensiones nativasCreación de extensiones nativas
Creación de extensiones nativas
 
Fragmentación vertical - MySQL
Fragmentación vertical - MySQLFragmentación vertical - MySQL
Fragmentación vertical - MySQL
 
Streaming de video implementando el protocolo RTMP y tecnologias Open Source
Streaming de video implementando el protocolo RTMP y tecnologias Open SourceStreaming de video implementando el protocolo RTMP y tecnologias Open Source
Streaming de video implementando el protocolo RTMP y tecnologias Open Source
 

Último

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 

Último (15)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

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

  • 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. 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. 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. ,. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Anexo 1: Project Charter
  • 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. 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.  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. 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. 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.  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
  • 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. 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. 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. Anexo 6: Cronograma de actividades
  • 71. Anexo 7: Diagrama de Gantt
  • 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