94
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

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

Embed Size (px)

DESCRIPTION

En el siguiente Link se encuentra el código fuente del puro SoftPhone creado con Flex https://github.com/aovazquez/SoftPhone NOTA: mas adelante se añadirá mas código para la video llamada dudas y sugerencias son bienvenidas.

Citation preview

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

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

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

CONTENIDO

Página

ÍNDICE DE FIGURAS

AGRADECIMIENTOS

RESUMEN

SUMMARY

CAPÍTULO 1. DESCRIPCIÓN DEL PROYECTO

1.1 Planteamiento del Problema......................................................................... 1

1.2 Planteamiento de la(s) hipótesis.................................................................. 1

1.3 Objetivos......................................................................................................... 1 1.3.1 General..................................................................................................... 1 1.3.2 Específicos................................................................................................ 2

1.4 Justificación................................................................................................... 2

1.5 Alcances y limitaciones................................................................................. 2 1.5.1 Alcances................................................................................................... 2 1.5.2 Limitaciones.............................................................................................. 3

1.6 Datos generales de la empresa.................................................................... 3 1.6.1 Nombre..................................................................................................... 3 1.6.2 Logotipo.................................................................................................... 3 1.6.3 Dirección................................................................................................... 3 1.6.4 Giro........................................................................................................... 3 1.6.5 Tamaño..................................................................................................... 3 1.6.6 Asesor Institucional:.................................................................................. 3

CAPÍTULO 2. MARCO TEÓRICO

2.1 Revisión Bibliográfica................................................................................... 4 2.1.1 FLEX......................................................................................................... 4

2.1.2 STREAMING............................................................................................ 11

2.1.3 RTMP........................................................................................................ 13

2.1.4 FreeSWITCH............................................................................................ 15 2.1.4.1 Características................................................................................. 15 2.1.4.2 Codecs Soportados......................................................................... 16 2.1.4.3 Plataformas Soportadas................................................................... 17

2.1.5 Red5......................................................................................................... 17 2.1.5.1Puertos que soporta Red5................................................................ 18 2.1.5.2 Codecs que soporta Red5............................................................... 18

2.1.5.2.1Codecsde video:...................................................................... 18

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

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

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

ÍNDICE DE FIGURAS

,.

Página

Figura 1.1 Logotipo de la empresa………………………………………………… 3

Figura 2.1 Arquitectura de Flex…………………………………………………….. 16

Figura 2.2 Arquitectura de Flex y gestor de base de dato……….………..…….. 11

Figura 2.3 División de paquete que viaje por el protocolo RTMP…………........ 14

Figura 3.1 Representación conceptual del funcionamiento del SoftPhone……. 24

Figura 3.2 Opción de descarga del IDE Flash Build………...……………...……. 38

Figura 3.3 Configuración del IDE……………….…………………..……….……… 39

Figura 3.4 Configuración del IDE Flex….………………………………………….. 39

Figura 3.5  Selección de versión de SDK….…………………….………………… 40

Figura 3.6 pantalla para autentificarse y acceder al SoftPhone…................…... 40

Figura 3.7 SoftPhone para realizar llamadas…...………………..………..………. 41

Figura 3.8 Llamada establecida con otro usuario (ext. 10001)…………………... 42

Figura 3.9 video llamada establecida mediante Red5………...………………...... 43

Figura 4.1 Plataforma “Dilo Communicator”…..………...…………………...…….. 46

Figura 4.2 Lista de contactos disponibles dentro la plataforma……………..…… 47

Figura 4.3 llamando al usuario disponible para establecer una llamada….......... 47

Figura 4.4 llamada establecida ocupando FreeSWITCH……...………………..… 48

Figura 4.5 Video llamada establecida mediante Red5 dentro de la plataforma “Dilo Communicator”…………………………………………….…………………………... 48

Tabla 2.1 Diferentes versiones de Flex……………………..………………………. 5

Tabla 2.2 Protocolos que soporta red5……………………………………………… 18

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

AGRADECIMIENTOSTabla 2.3 Tabla comparativa de servers de audio….………………..…………….. 28

Agradezco a:

Primeramente le quiero agradecer a Dios por haber permitido estudiar una carrera, a

pesar de mi indecisión de hacerlo y mas en TIC, me ayudo bastante en decidirme, así

como también por haberme dado inteligencia y sabiduría.

También quiero agradecer a cada uno de mis profesores que tuve a lo largo de la

carrera, de los cuales aprendí bastante y tome lo mejor de cada uno de ellos para

poder aplicarlo posteriormente, así como también el apoyo de algunos profesores

para realizar actividades de ponencias y de esta manera tener una experiencia nueva

y mas que nada ser algo mas profesional orientado a lo que me espera en mis futuros

trabajos(Carlos y Martha).

De igual manera quiero agradecer a cada uno de mis familiares que me ayudaron

tanto económicamente como moralmente, ya que sin su guía y sus palabras no

hubiera podido lograr(Abuelita Herlinda y Tía Rosa).

Ahora una de las personas mas importantes a lo largo de mi vida desde que la conocí

la cual a sido mi inspiración para no dejar de luchar por mis sueños y mas que nada

de no dejar de estudiar para tener un buen futuro, mi prometida Karla García, le doy

gracias por aguantarme a lo largo de la carrera, y de no dedicarle mucho tiempo a

veces y aguantar mis desvelos y mis presiones, la amo y la verdad no se que haría

sin ella a sido uno de mis pilares para poder terminar.

Por ultimo quiero agradecerle a la persona que medio la vida, a esa mujer tan perfecta

tan amorosa, tan luchona tan ella, la cual no se canso de decirme que estudiara la

universidad, esa mujer que si no fuera por ella no fuera nadie, la cual me dio todo lo

necesario para poder sobrevivir en este mundo, sus valores y mas que nada esa

manera tan suya de educarme, a pesar de las circunstancias jamás dejo de apoyarme

en todo los sentidos, es mas que mi Madre es un gran Ángel.

LE DOY GRACIAS A CADA UNO DE ELLOS POR HABERSE CRUZADO EN MI

CAMINO, TODO PASA POR ALGO Y ESTO APENAS EMPIEZA.

Page 6: Tesina Angel Vazquez - Streaming de Video implementando el protocolo RTMP y tecnologias Open Source
Page 7: Tesina Angel Vazquez - Streaming de Video implementando el protocolo RTMP y tecnologias Open Source

RESUMEN

La Empresa MoreloSoft, la cual se dedica al desarrollo de aplicaciones y soluciones

tecnológicas para el ámbito empresarial, día a día trata de realizar aplicaciones más

robustas y de inteligencia artificial, para brindar a las empresas soluciones que cubran

las necesidades de cada uno de los clientes.

El presente trabajo se enfoca a uno de los requerimientos del sistema que consiste en

la integración de audio y video mediante un SoftPhone, que le permita al usuario

realizar video llamadas y mediante éste servicio resolver las dudas correspondientes

al sistema de Teleradiología. Para implementar ésta funcionalidad en “Dilo

Communicator”, fue necesario implementar un servidor dedicado al procesamiento de

voz y video, en primera instancia se trabajó con WOWZA MEDIA SERVER, que

cuenta con el soporte para el uso del protocolo RTMP, el cual cubre las necesidades

de la aplicación a desarrollar. Sin embargo, éste tipo de servidores utilizan

licenciamiento para poder operar, esto implica un costo económico alto, por lo que se

utilizaron posteriormente opciones de tecnologías libres (Open Source). Para crear el

SoftPhone, fue necesario implementar los servidores Red5 y FreeSWITCH que se

encargan del manejo del audio y video respectivamente y por separado.

Se realizaron dos aplicaciones distintas, una aplicación web, la cual se utilizó para

hacer pruebas y fue el punto de partida para la investigación de las nuevas

tecnologías que se usaron, y la aplicación de escritorio en donde se encuentra

montado actualmente en fase beta, en la aplicación llamada “Dilo Communicator”.

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

SUMMARY

MoreloSoft Company, which is dedicated to developing applications and technology

solutions to the business world, every day is to make applications more robust and

artificial intelligence, to provide companies with solutions that meet the needs of each

customer.

This paper focuses on one of the requirements of the system is the integration of audio

and video via a SoftPhone, that enables the user to make video calls and using this

service with any questions related to Teleradiology system. To implement this

functionality in "Dilo Communicator" was necessary to implement a dedicated server to

voice and video processing in the first instance we worked with WOWZA MEDIA

SERVER, which is supported for use RTMP protocol, which meets the needs of the

application to develop. However, this type of servers use licensing to operate, this

implies a high economic cost, so options were subsequently used free technologies

(Open Source). To create the SoftPhone, was necessary to implement and

FreeSWITCH Red5 servers that are responsible for managing audio and video

respectively and separately.

There were two different applications, a web application, which was used for testing

and was the starting point for the investigation of new technologies that were used,

and the desktop application where is currently in beta mounted in the application

called "Say Communicator".

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

CAPÍTULO 1DESCRIPCIÓN DEL PROYECTO

1.1 Planteamiento del Problema.

La empresa MoreloSoft,ha estado desarrollando una aplicación desktop llamada “Dilo

Communicator”, es una plataforma en la cual se ofrecerán servicios de

Teleradiología.

Uno de los requerimientos, consiste en la integración de audio y video mediante un

softphone, que le permita al usuario realizar video llamadas y mediante éste servicio

resolver las dudas correspondientes al sistema de Teleradiología. Para implementar

ésta funcionalidad en “Dilo Communicator”, se utilizóun servidor dedicado al

procesamiento de voz y video, en primera instancia se trabajó con WOWZA MEDIA

SERVER, que cuenta con el soporte para el uso del protocolo RTMP, el cual cubre las

necesidades de la aplicación a desarrollar. Sin embargo, éste tipo de servidores

utilizan licenciamiento para poder operar, esto implica un costo económico alto para la

empresa.

1.2 Planteamiento de la(s) hipótesis

Con el uso de tecnologías libres Open Source se puede crear un SoftPhone con el

cual se pueden realizar llamadas y video llamadas con el fin de brindar soporte

técnico a los usuarios que lo soliciten. Todo lo anterior, mediante la implementación

de servidores dedicados al procesamiento de voz y video, para darle solución a la

funcionalidad requerida en la plataforma “Dilo Communicator ”, y de esta manera

disminuir el coste a la empresa.

1.3Objetivos

1.3.1 General.

Crear un SoftPhonecon tecnologías libres (Open Source) que se encargue del manejo

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

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).

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

1.5.2 Limitaciones

El SoftPhone a desarrollar no será capaz de conectarse a proveedores de

telefonía para poder hacer llamadas a celulares o teléfonos fijos (llamadas

locales).

El SoftPhone solo podrá establecer comunicación entre dos usuarios.

1.6 Datos generales de la empresa

1.6.1 Nombre:

MoreloSoft S. De R.L de C.V.

1.6.2 Logotipo

Figura 1.1 Logotipo de la empresa

1.6.3 Dirección:

C. Lerdo de Tejada 2 205, C.P. 6200, Cuernavaca, Morelos.

1.6.4 Giro:

Desarrollo de Software.

1.6.5 Tamaño:

Mediana.

1.6.6 Asesor Institucional:

I.C. Adrián Fuentes Muñoz.

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

CAPÍTULO 2MARCO TEÓRICO

2.1 Revisión Bibliográfica

2.1.1 FLEX

Flex es definido como un marco de trabajo gratuito de código abierto y altamente

productivo para crear aplicaciones web, para ordenadores de escritorio y para

dispositivos móviles. Flex permite crear aplicaciones web y para dispositivos

móviles que comparten una base de código común, lo que reduce el tiempo y el

coste de creación de aplicaciones y el mantenimiento a largo plazo [1].

Flex ofrece un lenguaje moderno basado en estándares y un modelo de

programación para crear rápidamente aplicaciones de Internet sofisticadas (RIA)

para la web,que admite los patrones de diseño habituales. MXML, un lenguaje

declarativo basado en XML, se utiliza para describir el diseño y el comportamiento

de la interfaz de usuario, así como el lenguaje de programación ActionScript® 3.0

orientado a los objetos se utiliza para crear la lógica de clientes. Flex también

incluye una sofisticada biblioteca de componentes con más de 100 componentes

de interfaz de usuario extensibles y de eficacia probada tanto para aplicaciones

web como para dispositivos móviles, así como un depurador de aplicaciones de

Flex.

Las aplicaciones Flex se ejecutan de igual modo en todos los exploradores

principales, aprovechando la máquina virtual de Adobe Flash Player en lo que

respecta a la web y Adobe AIR en el caso del escritorio y aplicaciones para

dispositivos. Flash Player como Adobe AIR son tiempos de ejecución de cliente de

tipo empresarial con gráficos vectoriales avanzados de alto rendimiento capaces

de gestionar las aplicaciones más exigentes con gran cantidad de datos.

Angel Omar Vázquez Quintero | 12

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

Flex Versión RELEASE DATE

Flex 1.0 Marzo de 2004

Flex 1.5 Octubre de 2004

Flex 2.0 Alpha Octubre de 2005

Flex 2.0 Beta 1 Febrero de 2006

Flex 2.0 Beta 2 Marzo de 2006

Flex 2.0 Beta 3 Mayo de 2006

Flex 2.0 FINAL 28 de junio de 2006

Flex 2.0.1 5 de enero de 2007

Flex 3.0 Beta 1 11 de junio de 2007

Flex 3.0 Beta 2 1 de octubre de 2007

Flex 3.0 Beta 3 12 de diciembre de 2007

Flex 3.0 FINAL 12 de febrero de 2008

Flex 3.5 FINAL 18 de diciembre de 2008

Flex 4.0 Beta 1 13 de mayo de 2009

Flex 4.0 Beta 2 22 de septiembre de 2009

Flex 4.0 FINAL 21 de marzo de 2010

Flex 4.1 Update 30 de junio de 2010

Flex 4.5 FINAL 3 de mayo de 2011

Tabla 2.1 Diferentes versiones de Flex.

Características de Flex

Angel Omar Vázquez Quintero | 13

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

Flex se caracteriza por ser un sistema robusto para crear aplicaciones, por

propiciar el uso amplio de herramientas, y por los servicios potentes que se

pueden utilizar durante la ejecución de sus aplicaciones dinámicas de internet a

nivel empresarial y está diseñado para abordar determinada clase de problemas

que padecen los procesos de múltiples pasos, la validación del lado del cliente, la

manipulación de datos y la visualización de datos [2].

Biblioteca de clases y servicios de aplicaciones

Flex incluye una biblioteca de clases ya creada y servicios de aplicaciones que

ayudan a los desarrolladores a componer y crear aplicaciones de Internet

sofisticadas utilizando más de 100 componentes de aplicaciones sofisticadas y pre

generados, además de nuevos componentes específicos para dispositivos

móviles. Estos servicios incluyen enlaces de datos, gestión de arrastrar y soltar, el

sistema de visualización que administra la disposición de la interfaz, el sistema de

estilo encargado del aspecto de los componentes de la interfaz, y el sistema de

animación y efectos que gestiona el movimiento y las transiciones [3].

Componentes

Flex SDK 4.5 sigue ampliando el modelo de componentes Spark, ofreciendo una

separación completa de la apariencia así como funcionalidad y soporte al

desarrollo paralelo entre desarrolladores y diseñadores [3].

Integración con Adobe AIR

Angel Omar Vázquez Quintero | 14

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

El tiempo de ejecución de Adobe AIR® permite ejecutar las aplicaciones de Flex

en dispositivos móviles líderes en el sector, además de en ordenadores fuera del

explorador. Tanto Flex SDK 4.5 como Flash Builder 4.5 (IDE) están altamente

optimizados e integrados con Adobe AIR, lo que proporciona todas las

herramientas necesarias para crear, depurar, agrupar y firmar aplicaciones [3].

Compatibilidad con la creación de aplicaciones para dispositivos móviles.

Flex 4.5 presenta nueva compatibilidad con la creación de aplicaciones para

dispositivos móviles para múltiples plataformas móviles. Esto quiere decir que

puede compartir una base de código común entre sus aplicaciones web, para

ordenadores de escritorio y para dispositivos móviles destinadas a múltiples

plataformas y dispositivos [3].

Escalabilidad

Flex está diseñado para ampliarse desde componentes simples de aplicaciones

con funciones específicas hasta completas aplicaciones web, para ordenadores de

escritorio y para dispositivos móviles. Con su amplia biblioteca de componentes

pre generados, Flex proporciona una amplia solución para aplicaciones expresivas

de todos los tipos. Los desarrolladores pueden seleccionar métodos de transporte

de datos, entre los que se incluyen compatibilidad con XML a través de HTTP,

AMF (Action Message Format), o RTMP mediante el módulo Adobe LiveCycle®

Data Services ES2 o el proyecto BlazeDS de código abierto [3].

Arquitectura Flex

Angel Omar Vázquez Quintero | 15

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

Con el fin de poder entender cómo funciona Flex ejemplifica los elementos que

componen la arquitectura de Flex (ver Figura 2.1).

Figura 2.1 Arquitectura de Flex.

MXML

MXML nos permite crear interfaces sofisticadas con efectos visuales y con

comportamiento [4].

MXML es un lenguaje basado en XML que provee una forma fácil para realizar

invocaciones y manejar a los elementos visuales de la aplicación, donde la

mayoría de esos elementos vienen predefinidos en el framework. Un lenguaje

basado en XML, es un lenguaje descriptivo o más específicamente un lenguaje de

marcado, que describe las variadas estructuras en un documento, por ejemplo, si

trabajamos con XHTML, éste nos describe donde el título (<title>), cuerpo

(<body>), cabeceras, etc., de una página Web deben estar, etc.

Un lenguaje de marcado no tiene algunas de las estructuras normalmente

asociadas con un lenguaje de programación como Java o JavaScript, por citar

unas, carece de las conocidas estructuras de control para la ejecución cíclica de

código (for, while, etc).

Angel Omar Vázquez Quintero | 16

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

Al igual que XHTML y XML, MXML provee la estructura para las aplicaciones,

además en Flex, se puede usar el MXML para hacer invocaciones a componentes

predefinidos, y si es necesario, crear nuevos desde cero.

Mediante MXML se puede fácilmente establecer la transición desde una interfaz a

otra, y se puede cambiar el cómo luce nuestra aplicación mediante el uso de las

hojas de estilo en cascada (CSS del inglés Cascading Style Sheets).

ActionScript.

ActionScript es un lenguaje de programación que sigue el paradigma Orientado a

Objetos que en el ambiente desarrollo de Flex actúa de forma análoga al lenguaje

JavaScript, como un complemento al lenguaje MXML.

Debido a que todo lenguaje de marcado, MXML tiene sus limitaciones, una de

ellas ya fue mencionada anteriormente, relacionada con la ausencia de las

estructuras de control que nos permiten la ejecución repetitiva de bloques de

código, esto en el comienzo del desarrollo Web fue solucionado con el desarrollo

del lenguaje JavaScript, ahora en el ambiente de desarrollo de Flex, ActionScript

viene a cumplir dicha función.

Con ActionScript, se puede añadir interacción dinámica entre los componentes de

la aplicación. Por ejemplo, si necesitamos que una etiqueta muestre

dinámicamente cierta información en base a la selección del usuario en un campo

de selección.

MXML tiene ciertas capacidades para permitir la comunicación entre los

componentes, pero para lograr tener una interacción más complicada y

personalizada entre los componentes es necesario el uso de ActionScript, de

Angel Omar Vázquez Quintero | 17

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

hecho en caso de que el desarrollador desee crear sus propios componentes va a

necesitar en algún momento el desarrollo de código ActionScript.

En el momento que se compila la aplicación en un archivo SWF, lo que se hace es

transformar el código en MXML, en código ActionScript, que va a ser ejecutado

por el reproductor de Flash [4].

Biblioteca de clases de Flex.

Flex incluye un conjunto de librerías Adobe® Flash® Player 10.3 and earlier,

Adobe® AIR® 2.7 and earlier etc. usadas por varios componentes de las

aplicaciones desarrolladas en Flex [5].

Entre las librerías más importantes ubicadas, se pueden encontrar las siguientes:

Librería mx.core: Este paquete contiene las clases base e interfaces, tales

como UIComponent, utilizado por Flex.

Libreríamx.events:Este paquetecontiene las clases que definen el evento

en los objetos Flex.

Librería  mx.utils: Este paquetecontiene las clases de las utilidades de

Flex.

Librería mx.rpc: Este paquete contiene las clases RPC necesarias para

hacer acceso a datos que se encuentran del lado del servidor (back-end).

Flex Data Services.

Angel Omar Vázquez Quintero | 18

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

Flex Data Services es el componente que permite a Flex conectarse con

componentes de código dinámico del lado del servidor, por ejemplo componentes

Java, .NET, ColdFusion, PHP, ASP, o Servicios Web [6].

Figura 2.2 Arquitectura de Flex y gestor de base de datos.

Es importante mantener en mente que Flex no se conecta directamente con el

servidor de bases de datos (ver Figura 2.2), es necesario tener código, usando

una de las tecnologías recientemente mencionadas, que lleven a cabo la conexión

con los repositorios de datos y el control de las operaciones y datos que van a ser

desplegados al usuario (capa de lógica de negocio, Business Logic).

2.1.2 STREAMING

El uso del Streaming se ha ido adoptando con el paso del tiempo, para bridar un

servicio de calidad a los usuarios que lo consumen (YouTube, Vimeo y similares).

El Streaming o transmisión de flujo de datos es la distribución de contenidos

(generalmente multimedia) a través de una red de datos de forma que su

consumo se realiza progresivamente según van llegando y reconstruyéndose

los paquetes de datos en el equipo receptor.

El Streaming funciona de la siguiente forma:

Angel Omar Vázquez Quintero | 19

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

Conexión con el servidor. El reproductor cliente conecta con el servidor

remoto y éste comienza a enviarle el archivo.

Buffer. El cliente comienza a recibir el fichero y construye un buffer o

almacén donde empieza a guardarlo.

Inicio de la reproducción. Cuando el buffer se ha llenado con una

pequeña fracción inicial del archivo original, el reproductor cliente comienza

a mostrarlo mientras continúa en segundo plano con el resto de la

descarga.

Caídas de la velocidad de conexión. Si la conexión experimenta ligeros

descensos de velocidad durante la reproducción, el cliente podría seguir

mostrando el contenido consumiendo la información almacenada en el

buffer. Si llega a consumir todo el buffer se detendría hasta que se volviera

a llenar.

El Streaming puede ser de dos tipos dependiendo de la tecnología instalada en el

servidor:

Descarga progresiva. Se produce en servidores web que disponen de

Internet Information Server (IIS), Apache, Tomcat, etc. El archivo de vídeo o

audio solicitado por el cliente es liberado por el servidor como cualquier otro

archivo utilizando el protocolo HTTP. Sin embargo, si el archivo ha sido

especialmente empaquetado para Streaming, al ser leído por el reproductor

cliente, se iniciará en Streamingen cuanto se llene el buffer.

Transmisión por secuencias. Se produce en servidores multimedia que

disponen de un software especial para gestionar más óptimamente el

Streaming de audio y vídeo: Windows Media Server, Flash Communication

Server, etc. La utilización de un servidor multimedia ofrece múltiples

ventajas frente al servidor web. Las más destacadas son:

o Mayor rapidez en la visualización de este tipo de contenidos.

Angel Omar Vázquez Quintero | 20

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

o La comunicación entre servidor/cliente se puede realizar por

protocolos alternativos al HTTP. Tiene el inconveniente del bloqueo

impuesto por Firewalls pero tiene la ventaja de una mayor rapidez.

o Mejor gestión del procesador y ancho de banda de la máquina del

servidor ante peticiones simultáneas de varios clientes del mismo

archivo de audio o vídeo.

o Control predefinido sobre la descarga que pueden realizar los

clientes: autentificada, filtrada por IP, sin almacenarla en la caché del

cliente, etc.

o Mayor garantía de una reproducción ininterrumpida gracias al

establecimiento de una conexión de control inteligente entre servidor

y cliente.

o Posibilidad de distribución de transmisiones de audio y vídeo en

directo.

2.1.3 RTMP.

Real-Time Messaging Protocol (RTMP) es un protocolo basado en TCP que

mantiene las conexiones persistentes y permite la comunicación de baja latencia

para enviar flujos sin problemas y transmitir tanta información como sea posible.

El protocolo RTMP fue diseñado para la alta calidad de transmisión de audio,

video y datos entre las tecnologías de la plataforma Adobe Flash, incluyendo

Adobe Flash Player y Adobe AIR. RTMP está ahora disponible como una

especificación abierta para crear productos y tecnologías que permiten la

distribución de vídeo, audio y datos en campo abierto AMF, SWF, FLV, F4V y

formatos compatibles con Adobe Flash Player.

Los paquetes se envían a través de una conexión TCP que se estableció por

primera vez entre el cliente y el servidor. Ellos contienen una cabecera y un

cuerpo que, en el caso de los comandos de conexión y control, se codifica

Angel Omar Vázquez Quintero | 21

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

utilizando el formato de mensaje de acción (AMF). La cabecera se divide en

el encabezado básico(que aparece como separado del resto, en el diagrama)

y Chunk el encabezado del mensaje. El encabezado básico es la única parte

constante del paquete y por lo general se compone de un único compuesto de

bytes, donde los 2 bits más significativos son el Tipo Chunk(FMT en la

especificación) y el resto forma el Identificador de Flujo. Dependiendo del valor de

la primera, algunos campos de la cabecera del mensaje se pueden omitir y su

valor derivado de paquetes anteriores, mientras que en función del valor de este

último, el encabezado básico se puede ampliar con 2 bytes adicionales (como en

el caso de la diagrama que tiene 3 bytes en total). El pedazo de cabecera de

mensaje contiene la información de meta-datos, tales como el tamaño del mensaje

(medido en bytes), el Delta Marca de tiempo y tipo de mensaje. Este último valor

es un solo byte y define si el paquete es un reproductor de audio, video, comandos

o "bajo nivel" de paquetes RTMP tales como Ping RTMP.

Figura 2.3 División de paquete que viaje por el protocolo RTMP.

2.1.4 FreeSWITCH

Angel Omar Vázquez Quintero | 22

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

Es una plataforma de comunicaciones de software libre/código abierto para la

creación de productos de voz, mensajería instantánea y video. El cual está

disponible bajo la Licencia Pública de Mozilla. La biblioteca principal, libfreeswitch,

puede ser embebida en programas externos así como en aplicaciones

independientes.

2.1.4.1 Características

FreeSWITCH incluye varios módulos que proveen aplicaciones por defecto como

conferencias, XML-RPC para controlar llamadas en tiempo real, Respuesta de Voz

Interactiva (IVR), Conversor texto-voz / Reconocimiento Automático de

Voz (CTV/RAH), Red Telefónica Conmutada (RTC), la capacidad de interconexión

con circuitos analógicos y digitales, protocolos Voz sobre

IP comoSIP, SCCP, H.323, XMPP, Google Talk, entre otros.

La aplicaciones que utilizan la biblioteca de FreeSWITCH pueden ser escritas en

C/C++, Python, Perl, Lua, JavaScript usando el motor SpiderMonkey de Mozilla,

java y Microsoft .NET a través de Microsft CLR o a través de Mono. Además de

eso, FreeSWITCH expone APIs y aplicaciones para el control de llamadas y

funcionalidad IVR para el uso del programador.

El manejo de llamadas puede realizarse a través del Dialplan XML o mediante la

interfaz Event Socket, la cual es una conexión socket al servidor FreeSWITCH.

Cualquier lenguaje de programación o software capaz de comunicarse

vía socket puede ser usado para controlar la actividad del servidor FreeSWITCH.

FreeSWITCH también viene con una biblioteca para el Event Socket (ESL) o

"Envoltorio de ESL" para Erlang, JavaScript, Lua, Perl, PHP, Python y Ruby. Esta

biblioteca se encarga de abstraer los aspectos triviales de la programación con

sockets.

Angel Omar Vázquez Quintero | 23

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

2.1.4.2 Codecs Soportados

FreeSWITCH soporta los siguientes codecs de audio:

PCMU – G.711 µ-law

PCMA – G.711 A-law

G.722

G.722.1

G.722.1c

G.726

G.726 with AAL2 packing

G.729 (passthrough)

G.729 (requiere de licencia, $10/canal)12

GSM

CELT

iLBC

DVI4 (IMA ADPCM)

BroadVoice

SILK

Ápex

CODEC2

Sirven

LPC-10

G.723.1 (passthroughonly)

AMR (passthroughonly)

FreeSWITCH también soporta una serie de codecs de video:

H.261

H.263

H.263+ (H.263-1998)

Angel Omar Vázquez Quintero | 24

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

H.263++ (H.263-2000)

H.264

Theora (passthrough)

MP4 (passthrough)

2.1.4.3 Plataformas Soportadas

AuroraUX (LLVM+Clang/gmake)

Sun Solaris 10 UNIX (Sun Studio)

FreeBSD (gmake)

Mac OS X (gmake)

RHEL/CentOS Linux

Debian/Ubuntu GNU/Linux

Windows (Nativo)

2.1.5 Red5

Red5 ofrece un Streaming de vídeo de gran alcance y multi-usuario. Basado en

Java y algunos de los más poderosos marcos de código abierto. A la vez que

proporciona una potente RTMP / Servlet aplicación. Además de ser compatible

con el protocolo RTMP, el servidor de aplicaciones tiene un contenedor de servlets

Tomcat embebido para aplicaciones web JEE. Red5 se puede utilizar en las

conferencias de vídeo, juegos multi-usuario y el software de aplicaciones de

negocios.

2.1.5.1Puertos que soporta Red5.

Puerto Descripción

http.port=5080 Tomcat o jetty contenedor servlet

Angel Omar Vázquez Quintero | 25

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

rtmp.port=1935 Tradicional RTMPrtmpt.port=8088 Tunel RTMP a través de http

mrtmp.port=9035 Usar con una configuración edge/origin setup

proxy.source_port=1936 Utilizado para depurar

Tabla 2.2 Protocolos que soporta red5.

Estos puertos predeterminados pueden cambiarse en el directorio “RED5_HOME\

conf\red5.properties”.

2.1.5.2 Codecs que soporta Red5

2.1.5.2.1Codecsde video:

ScreenVideo

On2 VP6

Sorenson H.263

H264

2.1.5.2.2 Codecsde Audio

ADPCM

NellyMoser

MP3

Speex

AAC

2.2 Perspectiva Teórica

Angel Omar Vázquez Quintero | 26

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

Para el desarrollo de la aplicación se utilizaron las diversas tecnologías explicadas

anteriormente, con el fin de unirlas y sacar el máximo provecho, tomando lo mejor

de cada una de ellas.

El lenguaje de desarrollo de software que se eligió fue adobe FLEX, los motivos

importantes que se eligió dicha tecnología fue porquecubría el requisito que fuera

una tecnología Open source con el fin de no causarle un costo extra a la empresa,

otro de los motivos que se eligió FLEX, es uno de los lenguajes principales que

soportan Streaming de video en tiempo real, usando este nueva forma de

transmitir audio y video entre usuarios, se agiliza el tiempo de reproducción,

evitando caer en las reproducciones tradicionales las cuales son en descargar el

video y después reproducirlo, todo estos datos viajando mediante el protocolo

RTMP, el cuales un protocolo propietario desarrollado por Adobe Systems que se

utiliza principalmente con Adobe Flash Media Server para transmitir audio y video

a través de Internet hacia el cliente Adobe Flash Player o Adobe Air.

Este es un protocolo simple, optimizado para conexiones de bajo ancho de banda.

Puede soportar hasta 64 streams concurrentes sobre la misma red de conexión.

Parte de cada cabecera del paquete AMF contiene el número de índice del

stream. Un solo mensaje RTMP puede contener múltiple paquetes AMF. Cada

paquete AMF tiene 128 bytes, excepto para el streaming de audio, el cual, es de

64 bytes.

Para la transmisión de audio y video se eligieron 2 servers,cada uno especializado

en cada área (audio y video).

Para la transmisión de audio se tomó en cuenta y se eligió FreeSWITCH, de un

grupo de servers de los cuales son Open Source.

Program Operating systems

License Protocol/based upon/compatible with

Encryption

Key and target

markets

Angel Omar Vázquez Quintero | 27

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

Mysipswitch

Linux BSD SIP,AJAX SSL Individuals

Murmur Linux/BSD, Mac OS

X,Windows

BSD/GPL CELT / Speex TLS Individuals to Small

and medium

enterprise (25-5000

users)

Asterisk PBX

Linux/BSD, Mac OS

X,Solaris.

GPL SIP, H.323, IAX STL, SRTP

Enthusiasts,

developers, enterprise

users (capacity

dependent on server design, scalable across multiple servers)

Yate Linux, Mac OS,Windows

GPL SIP, IAX, H.323,XMPP No

FreeSWITCH

Linux/BSD, Mac OS

X,Solaris, Windows

Mozilla PublicLic

ense

SIP, NAT-PMP,STUN,RTMP, SIMPLE,XMPP, Google

Talk(Jingle), IAX, H.323,MRCP, RSS, Skype.

TSL, SRTP, ZRTP

Large soft-switch users,

home PBXusers,

softphone users

Tabla 2.3 Tabla comparativa de servers de audio.

FreeSWITCH se eligió principalmente por su soporte al protocolo RTMP, ya que

dicho protocolo fue desarrollado para tecnologías con soporte Flash, su elección

no sólo fue por el soporte del uso del protocolo RTMP, si no también por ser una

tecnología que se diseñópara ser escalable y multihilos, también por su alta

compatibilidad con diferentes lenguajes de programación (Lua, PERL, Ruby,

Python, Java & .NET, JavaScript), su voicemail, reconocimiento de voz y

conferencias de alta definición.

Angel Omar Vázquez Quintero | 28

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

Algunas aplicaciones para FreeSwitch son por ejemplo SoftPhone, VoIP gateway,

PBX, marcador predictivo, servidor de fax, alta disponibilidad, etc., también se

tomó muy en cuenta para una posible comunicación a teléfonos fijos y celulares

mediante un proveedor de servicios de telefonía, y de esta manera no se limitaría

con solo usuarios dentro de la misma aplicación.

Para complementar el SoftPhone y poder transmitir el video se eligió el

server Red5.

Las aplicaciones basadas en adobe FLEX o AIR están hechas en Flash y son

soportados por Adobe Flash Media Server, el cual se ha convertido en la solución

líder del sector para el video de flujo continuo y la comunicación en tiempo real.

Los principales browser usados en el mundo soportan el reproductor Adobe Flash

Player, siendo este utilizado en el 98% de los ordenadores del mundo. Flash

Communication Server permite el diseño e implementación de todas aquellas

herramientas colaborativas como son conferencias de audio y video multiusuario,

pizarra compartida, presentaciones remotas, entre otras. Este sistema se ha

empleado en la mayoría de las universidades en torno al desarrollo de cursos por

medio de una academia virtual. En la línea del open source o del código libre se

encuentra el servidor Red5, el cual, es un símil de Adobe Flash Media Server. El

servidor Red5 permite realizar la mayoría de las funciones sin pagar por licencias

propietarias.Se pueden encontrar desarrollos en aplicaciones de gestión de cursos

o más conocidos como plataformas LMS. Además, de sistemas que integran video

conferencia.

Dentro de la variada cantidad de aplicaciones se puede destacar Moodle, un LMS

que posee una de las interfaces gráficas más amigables dentro de las plataformas

open source y tiene todas las herramientas necesarias para usarla como una

plataforma base. Además, es posible integrar un módulo de video conferencia por

medio de la iniciativa OpenMeeting.

Angel Omar Vázquez Quintero | 29

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

CAPÍTULO 3DESARROLLO DEL PROYECTO

Y

3.1 Procesos de Administración del proyecto

Para la administración del proyecto se realizaron los siguientes documentos,

mismos que se describen en el apartado de anexos.

• Project Charter (ver Anexo 1).

• Alcance del Proyecto (ver Anexo 2).

• Plan de administración del proyecto (ver Anexo 3).

• WBS y WBS Dictionary (ver Anexo 4 y Anexo 5).

• Cronograma de actividades (ver Anexo 6).

• Diagrama de Gantt (ver Anexo 7).

3.1.1 Iniciación del proyecto.

Al inicio del proyecto, se llevó a cabo la recopilación de la información para

conocer la necesidad del cliente, esto permitió tener un conocimiento general para

el desarrollo del sistema, se comenzó con la elaboración del Acta constitutiva del

Proyecto (Project Charter) y se realizó el Documento Formal de Requerimientos

(DFR), en él se establecieron uno a uno las funcionalidades del sistema.

Junto con el cliente se acordaron los alcances y limitaciones para el sistema. Se

definieron los entregables finales y se identificaron a todos los involucrados del

proyecto para conocer el impacto que tendrían sobre él.

En la Figura 3 se muestra la representación conceptual de la aplicación,

mostrando las diferentes actividades que se pueden realizar dentro del sistema.

Angel Omar Vázquez Quintero | 30

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

Figura 3.1 Representación conceptual del funcionamiento del SoftPhone

3.1.2 Planeación del proyecto.

Para comenzar con la planeación del proyecto, se realizó un calendario de

desarrollo en base a las necesidades del sistema y a los entregables

preestablecidos; de manera que mostraran el tiempo definido en cada una de las

actividades y el orden a realizarlas. Una vez terminado, se continuó con la

documentación basada en el PMBOK®, se realizaron los siguientes planes:

1. Plan de Comunicación: En este documento se determinan las formas y

objetivos de comunicación que se tendrán con cada uno de los participantes

durante la ejecución de todo el proyecto. Este documento permite observar la

forma en el equipo de trabajo interactúa con el cliente, así como la manera en que

se comunican con los distintos niveles jerárquicos que conforma a este grupo de

trabajo.

2. Enunciado del Alcance del Proyecto: Este documento es uno de los más

importantes dentro de la etapa de planeación, en él se delimitan las

Angel Omar Vázquez Quintero | 31

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

funcionalidades y objetivos del sistema, es decir, hasta donde va a llegar,

teniendo así como conocimiento el resultado del producto final.

3. Identificación de Riesgos: El plan de riesgos es fundamental para el

desarrollo de cualquier tipo de proyecto, ya que en él, se prevén los riesgos que

puedan llegar a acontecer durante la ejecución del proyecto. Permite contar con

un plan de contención y un plan contingencia que ayude al equipo de trabajo

como respuesta inmediata en caso de que suceda.

3.1.3 Control del proyecto.

Para llevar el control durante la ejecución del sistema, se dio seguimiento al

calendario de desarrollo del proyecto, de manera que se creará cada dos

semanas una nueva versión que mostrará los avances y se detectaran los

aplazamientos. Se expusieron avances al cliente de manera periódica, y se

monitorearon los riesgos.

3.1.4 Cierre del proyecto.

Al finalizar el proyecto, se realizó una reunión con el cliente para mostrar la

funcionalidad del sistema, se entregaron los productos acordados y se firmó un

documento de liberación del proyecto.

3.2 Ejecución del proyecto

3.2.1 Requerimientos

3.2.1.1 Requerimientos de Software

Angel Omar Vázquez Quintero | 32

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

Cliente

El usuario deberá tener instalado la última versión de adobe Air en su equipo de

cómputo en cualquier sistema operativo(OS X, Windows 7), o en dado caso si se

llegara a realizar una versión web contar con un browser, (por ejemplo Chrome,

Safari, Firefox, Opera, Internet Explorer) que tenga instalada la última versión de

Adobe Flash Player.

Servidor:

Sistema operativo basado en Linux (preferencia CentOS).

Servidor de Streaming RED5.

3.2.1.2 Requerimientos de hardware

En el caso del cliente los requerimientos son bastante básicos y, hoy en día

cualquier computador cumpliría con las exigencias, sin olvidarse que el

computador que ocupará el profesor debe poseer cámara web. En el caso del

servidor, los requerimientos del hardware necesario para el correcto

funcionamiento corresponden a la capacidad de procesamiento y memoria, debido

a la carga que se produce al realizar variados Streaming simultáneos.

3.2.2 Planeación

En primera instancia, se estableció una entrevista con el cliente para poder

realizar el Project chárter con el fin de identificar su problemática, los objetivos a

cumplir y tomar decisiones como el qué tecnologías se ocuparían para realizar tal

proyecto.

Posteriormente se plasmó todo lo anterior en el documento formal de

requerimientos, para tener más claro lo que se tenía que cubrir con la aplicación.

Angel Omar Vázquez Quintero | 33

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

Así como también desarrollar los paquetes del WBS y en consiguiente desarrollar

el cronograma de actividades para la medición de tiempos de cada una de las

actividades a desempeñar para llegar a los tiempos establecidos a los mismos.

3.2.3 Desarrollo

Después del levantamiento de requerimientos y de una entrevista previa con el

cliente, se empieza a modelar la estructura que tendrá el proyecto a desarrollar y

en este caso se empezó con la instalación de FreeSWITCH y configuración de las

extensiones.

3.2.3.1 Instalación de FreeSWITCH

FreeSWITCH es una plataforma de comunicaciones de software libre/código

abierto para la creación de productos de voz, mensajería instantánea y video. El

cual está disponible bajo la licencia publica de Mozilla. La biblioteca principal,

libfreeswitch, puede ser embebida en programas externos así como en

aplicaciones independientes.

3.2.3.1.1 Requerimientos

Instalar lo siguiente:

gnumake

autoconf

automake

libtool libtool-dev

gcc

wget

libcurses

Angel Omar Vázquez Quintero | 34

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

3.2.3.1.2 Instalación

Para llevar a cabo la instalación del server FreeSWITCH es necesario realizar los

siguientes pasos

1. Descargar FreesWitch

http://200.57.93.77/freeswitch-1.0.7.tar.gz

2. Descargar a un directorio donde tengamos privilegios

$wget http://200.57.93.77/freeswitch-1.0.7.tar.gz

3. Una vez descargado se descomprime con el siguiente comando

$ tar –xzy freeswitch-1.0.7.tar.gz

4. Ya descomprimido se habilita módulo Erlang(Debe estar instalado Erlang)

$ cd freeswitch-1.0.7

$ vi modules conf

5. Después quitar signo # de la línea y guardar:

#eventhandlers/mod_erlang_event

6. Ejecutar los siguientes comandos para instalar

$ ./configure

7. Usar los siguientes comandos con privilegios de “root” o administrador.

$ make

$makeinstall

Angel Omar Vázquez Quintero | 35

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

8. Si se requieren archivos de audio ejecutar lo siguiente

$ make sounds-install

$ makemoh-install

La compilación e instalación de FreeSWITCH toma alrededor de media hora.

FreeSWITCH no instala automáticamente un script de inicialización tipo init.d para

crearlo, descargar el script de la sección.

$wgethttp://200.57.93.77/freeswitch

$ mv /etc./init_d/

Una vez descargado, damos permiso de ejecución

$chmod 755 /etc./ignited/free switch

Inicializamos FreeSWITCH

$ /etc./imitad/freeswitchstart

3.2.3.2 Creación de extensiones en FreeSWITCH

Una extensión nos sirve para tener asignado un DID, y este puede ser asignado

algún teléfono IP o un SoftPhone para poder realizar llamadas.

Para poder configurar una extensión tenemos que tener en cuenta que tipos de

campos o variables existen para crear una nueva extensión, se puede dar una

idea observando las extensiones que vienen por default en el directorio

“/sur/local/freeswitch/conf/directory/default/, en este directorio se

encuentran algunas extensiones que ya vienen asignadas por default, lo que se

hará es abrir cualquier extensión de las ya existentes.

Angel Omar Vázquez Quintero | 36

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

Ejemplo:

#vi 1000.xml

<include>

<user id=”1000” mailbox=”1000”>

<params>

<param name=”password” value=”1234”/>

<param name=”vm-password” value=”1000”/>

</params>

<variables>

<variable name=”troll-allow” value=”domestic

international,local” />

<variable name=”accountcode” value=”1000” />

<variable name=”user_context” value=”default” />

<variable name=”effective_caller_id_name” value=”Extension

1000”/>

<variable name=”effective_caller_id_number” value=”1000”/>

<variable name=”outbound_caller_id_name” value=”$$

{outbound_caller_name}”/>

<variable name=”outbound_caller_id_number” value=”$$

{outbound_caller_name}”/>

<variable name=”callgroup” value=”techsupport”/>

<variables>

</user>

</include>

Esta es la configuración básica de una extensión, ahora la explicación de cada

una de las líneas.

En la primera línea indica el include es la que va a realizar el archivo .xml, en la

segunda línea aparece el número de la extensión y de la casilla del correo de voz,

en la tercera línea indica los parámetros que contendrá la extensión, en la cuarta

se encuentra la contraseña que es asignada para cada extensión. en la quinta va

la contraseña para acceder a la casilla del correo de voz, En FreeSWITCH hay un

plan de llamadas ya configurado. Para acceder a la casilla de voz tenemos dos

posibilidades. llamando nuestro número de extensión(en este caso es 1000)

Angel Omar Vázquez Quintero | 37

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

entramos directamente a nuestro correo de voz, en la sexta línea nos indica el

cierre de la etiqueta de parámetros, en la línea siete indica la etiqueta variables y

allí se pondrán las variables de la extensión, en la octava línea se define qué tipo

de llamadas puede hacer la extensión.(Locales, larga distancia e internacionales),

en la numero nueve se define una cuenta para el registro de las llamadas, en la

línea diez el contexto de la extensión, es importante que recordar en qué contexto

está ubicado el plan de marcación para extensión, ya que sino no podrá

registrarse y realizar llamadas, en la línea once el nombre del identificativo de

llamada e esta extensión y en la doce el número. Para concluir en la última línea

el grupo al que pertenece la extensión, sino pertenece a ningún grupo la extensión

no es necesario que lleve esta línea.

Después de haber visto uno de los ejemplos ya existentes se creara un de

ejemplo con los campos requeridos. Para crear un nuevo archivo se utiliza el

comando touch.

Ahora se podrán crear nuevas extensiones, que deben de ser configuradas en el

directorio /usr/local/freeswitch/conf/directory/default/ahí estarán

contenidas todas las extensiones. Para que FreeSWITCH puede detectar los

nuevos archivos que se crearon es necesario que se reinicie, para reiniciar los

archivos xml se debe de ingresar a la consola de FreeSWITCH y teclear el

comando:

>reloadxml

Con este comando se actualizan los nuevos archivos para que FreeSWITCH

pueda hacer uso de la nueva configuración.

3.2.3.3 Configuración del soporte para RTMP en FreeSWITCH

Para poder instalar este módulo de FreeSWITCH fue necesario instalar Git.

Angel Omar Vázquez Quintero | 38

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

Git es un software de control de versiones, pensando en la eficiencia y la

confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen

un gran número archivos de código fuente. 

Para instalar Git en CentOS es necesario seguir los siguientes pasos:

 

1. Primero se deben de instalar las siguientes dependencias.# yum install gettext-devel expat-devel curl-develzlib-developenssl-devel

 2. Bajar el último código disponible con wget # wget http://git-core.googlecode.com/files/git-1.7.8.4.tar.gz 3. Se descomprime el código fuente# tarvez git-*.tar.gz 4. Abrir directorio Git # cd git-*

 5. Compilar el código fuente # make prefix=/usr/local/ all

 6. InstalarGit # make prefix=/usr/local/ install

 7. Eliminar archivos generados y descargados # cd ..; rm -rfgit-*

 Ya con Git instalado procedemos a la instalación de mod_rtmp. Nota: Si se encuentra ya instalado FreeSWITCH es necesario eliminar el ya instalado para poder seguir con el siguiente procedimiento. Para instalar el módulo de RTMP se siguen las siguientes instrucciones.

1. Abrir el directorio donde será descargado el nuevo código fuente de FreeSWITCH.

# cd /usr/src/

 2. Se teclean los siguientes comandos para descargar  la versión de

FreeSWITCH que contiene el módulo RTMP mod_rtmp.

  git clone git://git.freeswitch.org/freeswitch.git  cd freeswitch

Angel Omar Vázquez Quintero | 39

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

  ./bootstrap.sh

3. Se edita el archivo modules.conf para quitar el comentario el módulo “endpoints/mod_rtmp”. La línea debe quedar sin comentario es decir sin el signo “#” ya sin comentarios se guardan los cambios.

4. Por último se compila el código fuente aplicando los siguientes comandos../configuremakemake install

 5. Acabada la compilación e instalación se inicia FreeSWITCH.

/usr/local/freeswitch/bin/freeswitch

 6. En el archivo de configuración modules.conf.xml ubicado en el directorio

/usr/local/freeswitch/conf/autoloads_configs/se va  quitar el comentario de la línea de rtmp y quedará de la siguiente manera:antes:<!–<load module="mod_rtmp"/> –> 

como debe estar:<load module="mod_rtmp"/> 

 7. Se abre la consola y se introduce el comandoreloadxml para recargar los

nuevos cambios realizados.

 8. En consola de FreeSWITCH se teclea el siguiente comando para iniciar el

módulo rtmp.> load mod_rtmp

9. Yse observa el estado de rtmp con el comando “rtmp status”.Se tiene al módulo RTMP funcionando ahora solo falta instalar un cliente Flex y se crea de la siguiente manera:Se crea un nuevo directorio dentro de /usr/local/freeswitch/.

#mkdirclients

 10. Dentro del directorio nuevo se crea un nuevo directorio llamado Flex.

#mkdirflex

Angel Omar Vázquez Quintero | 40

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

 11. Ya creados los directorios se hace referencia al códigofuente de

FreeSWITCH descargado con Git y en el directorio /usr/local/freeswitch/clients/flex/ dentro de la carpeta Flex se encuentran varios archivos, lo que se realiza es importar esos archivos al nuevo directorio creado en /usr/local/freeswitch/clients/flex/ y se hace de la siguiente manera: 

#cp flex/* /usr/local/freeswitch/clients/flex/

 12. Con el comando anterior especificamos que copie todo lo que contiene la

carpeta Flex a la carpeta Flex de dicho directorio.Se edita el archivo FreeSWITCH.hmtl ubicado en el directorio /usr/local/freeswitch/clients/flex/, donde se modificará una

sola sección y se reemplazara la IP del servidor en donde está funcionando el módulo de rtmp y queda de la siguiente manera:

#vimfreeswitch.hmtl 

  varflashvars = {          rtmp_url: 'rtmp://ip-de-tu-server/phone'      };

Ya que se tiene a hasta esta parte terminada solo faltaría instalar Apache y se

instala de la siguiente manera:

 

Paso 1. Abrir el Command Prompt (consola).

 

Paso 2. Escribe el comando “su-”(sin las comillas), para cambiar al usuario

principal.

 

Paso 3. Escribe el comando “yuminstallhttpd”(sin las comillas) para instalar el

servidor web Apache.

 

Paso 4. Escribe el comando “apachectlstart” (sin las comillas) para in iniciar el

servidor Apache, cuando la instalación se complete.

 

Angel Omar Vázquez Quintero | 41

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

Paso 5. Finalmente, abre un buscador Web y escribe “http://localhost” (sin las

comillas) en la barra de direcciones. Se verá una página de bienvenida de Apache.

Si fue instalado en Centos y no se tiene una interfaz gráfica, se debe abrir algún

explorador de otra máquina y que este dentro de la misma red y se teclea “http://tu-ip-server” (sin las comillas).

 

6. Ya que se ha instalado Apache, el siguiente paso a realizar es copiar la carpeta

flex del directorio / usr/local/freeswitch/clients/flex/ al directorio /var/www/html/ para

copiar la carpeta se realiza de la siguiente manera:

#cp flex/* /var/www/html/flex/

7. Se reinicia Apache y verificamos el nuevo archivo que acabamos de añadir al

directorio /var/www/html/, abrimos algún explorador y la parte superior se coloca lo

siguiente:

http://ip-de-tu-server/flex/freeswitch.html

 

En Permissions required elegimos permitir y clic en cerrar.

 

3.2.4. Instalación de Red5.

Para llevar a cabo la instalación del server Red5 es necesario realizar los

siguientes pasos

1) Instalar el jdk-devel de java con los siguientes comandos

yum install java-1.6.0-openjdk-devel.x86_64

2) Descargar e instalar ANT (Proyecto de apache)

cd /usr/src

http://apache.rediris.es//ant/binaries/apache-ant-1.8.2-bin.tar.gz

Angel Omar Vázquez Quintero | 42

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

tar -xvzf apache-ant-1.8.2-bin.tar.gz

mv apache-ant-1.8.2 ../local/ant

3) Exportar variables para ant y java

export ANT_HOME=/usr/local/ant

export JAVA_HOME=/usr/lib/jvm/java

export PATH=$PATH:/usr/local/ant/bin

export CLASSPATH=.:$JAVA_HOME/lib/classes.zip

Opcional: Acceso a las variables por cualquier usuario

echo ‘export ANT_HOME=/usr/local/ant’ >> /etc/bashrc

echo ‘export JAVA_HOME=/usr/lib/jvm/java’ >> /etc/bashrc

echo ‘export PATH=$PATH:/usr/local/ant/bin’ >> /etc/bashrc

echo ‘export CLASSPATH=.:$JAVA_HOME/lib/classes.zip’ >> /etc/bashrc

4) Descargar e instalar Red5 Server

cd /usr/src

svncheckout http://red5.googlecode.com/svn/java/server/trunk/ red5 (Si no

tienes svn ejecutar "yuminstallsubversion")

mv red5 ../local/red5

cd /usr/local/red5

ant prepare

antdist (Este comando puede tardar varios minutos)

5) Copiar la carpeta conf en su lugar y dar permiso de ejecución

cp -r dist/conf.

chmod 755 red5.sh

6) Crear el siguiente archivo: vi /etc/init.d/red5

Con este contenido:

#!/bin/bash # For RedHat and cousins: # chkconfig: 2345 85 85 #

description: Red5 flash streaming server # processname: red5 # Created

Angel Omar Vázquez Quintero | 43

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

By: SohailRiaz ([email protected]) PROG=red5 RED5_HOME=/usr/local/red5

DAEMON=$RED5_HOME/$PROG.sh PIDFILE=/var/run/$PROG.pid # Source function

library . /etc/rc.d/init.d/functions [ -r /etc/sysconfig/red5 ] && .

/etc/sysconfig/red5 RETVAL=0 case "$1" in start) echo -n $"Starting

$PROG: " cd $RED5_HOME $DAEMON >/dev/null 2>/dev/null &RETVAL=$? if

[ $RETVAL -eq 0 ]; then echo $! > $PIDFILE touch /var/lock/subsys/$PROG

fi [ $RETVAL -eq 0 ] && success $"$PROG startup" || failure $"$PROG

startup" echo ;; stop) echo -n $"Shutting down $PROG: " killproc -p

$PIDFILE RETVAL=$? echo[ $RETVAL -eq 0 ] &&rm -f

/var/lock/subsys/$PROG ;; restart) $0 stop $0 start ;; status) status

$PROG -p $PIDFILE RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|

restart|status}" RETVAL=1 esac exit $RETVAL

y dar permiso de ejecución con el siguiente comando :

chmod 755 /etc/init.d/red5

7) Se puede arrancar y parar el servicio

/etc/init.d/red5 stop/etc/init.d/red5 start/etc/init.d/red5 status/etc/init.d/red5 restart

8) http://IP_DE_NUESTRO_SERVIDOR:5080

3.2.5. Instalación de Flash Builder

Para instalar el Flash Builder(IDE) es necesario descargarlo del sig. Link

https://www.adobe.com/cfusion/tdrc/index.cfm?product=flash_builder que es

de la página oficial y posteriormente comprar el serial o comprar en alguna tienda

departamental (ver Figura 3.2).

Angel Omar Vázquez Quintero | 44

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

Figura 3.2 Opción de descarga del IDE Flash Builder

Se descargó la versión disponible, se ejecuta el programa y se siguen las

instrucciones de instalación hasta concretar la misma.

3.2.6 Instalación del SDK Flex.

Para llevar a cabo la instalación del software development kit (SDK.) de Flex de su

página oficial, ir al siguiente enlace:

http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4.5

Después de descargar el SDK, se descomprime el archivo en el equipo, es

importante recordar el directorio donde se ha guardado y el nombre de la carpeta,

ya que es necesario para establecer el SDK de Flex y usar las herramientas del

SDK con Flash Builder 4.

Ahora se guarda el SDK de Flex en C:\ para hacer referencia más rápidamente.

Posteriormente se ejecuta el Flash Builder 4 y en Windows y se selecciona

preferences (ver Figura 3.3).

Angel Omar Vázquez Quintero | 45

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

Figura 3.3 Configuración del IDE.

La siguiente imagen quese abre,se elige de la barra lateral izquierda Flash Builder

y después installed Flex SDK’s posteriormente en el botón “Add…” la siguiente

ventana, se da clic en “Browse…”se busca la ubicación del SDK y se selecciona

(ver Figura 3.4).

Figura 3.4 Configuración del IDE Flex.

Después de instalado el SDK se observa de la siguiente manera (ver Figura 3.5)

Angel Omar Vázquez Quintero | 46

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

Figura 3.5 Selección de versión de SDK.

3.2.7 Desarrollo de la aplicación

Durante el siguiente apartado se explica la funcionalidad y se presentan las

diferentes pantallas que conforman esta aplicación. El funcionamiento consiste en

la primera parte, autentificarse con la extensión previamente creada en

FreeSWITCH.

Figura 3.6 pantalla para autentificarse y acceder al SoftPhone.

Angel Omar Vázquez Quintero | 47

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

Una vez realizada laautentificación dentro de la aplicación aparece el SoftPhone el

cual cuenta con una interfaz gráfica, algo rústica por el momento, con los botones

enumerados, una sección de marcado rápido de algunas extensiones ya

registradas previamente, dos botones para marcar(Dial), y colgar(Hang up), una

barra deslizable para poder subir o bajar el volumen de la llamada y un ícono de

una cámara para poder habilitar la cámara del usuario y poder realizar la video

llamada, para empezar a transmitir al otro usuario.

Figura 3.7 SoftPhone para realizar llamadas.

Para poder realizar la llamada a otro usuario, es necesario que los dos usuarios

que se comuniquen,esténautentificados dentro de la aplicación con diferentes

extensiones. Una vez que se realice lo comentado anteriormente, uno de los dos

usuarios debe de marcar la extensión del otro con el que quiere establecer

comunicación. Después de haber marcado la extensión, se realiza la llamada con

el botón“Dial”, para confirmar que se está realizando la llamada, el SoftPhone

emite un tono de marcación.

Angel Omar Vázquez Quintero | 48

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

Figura 3.8 Llamada establecida con otro usuario (ext. 10001).

Al usuario número dos al que se le está realizando la llamada, su SoftPhone

emitirá un tono de llamada entrante y automáticamente se le mostrará un botón

que dice “Answer”con el cual se puede contestar a la llamada si es que el usuario

lo desea.

Una vez establecida la llamada se habilita el botón para poder realizar la video-

llamada. Internamente al momento en que se realiza la llamada con FreeSWITCH

esa misma extensión se utiliza para suscribirse al “canal” del usuario dos,y el

usuario dos se suscribe al “canal” del usuario uno en Red5. Ahora, sí algunode los

dos usuarios durante la llamada decide habilitar la video-llamada, ese usuario es

el que empieza a transmitir su video mediante Red5.

Angel Omar Vázquez Quintero | 49

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

Figura 3.9 video llamada establecida mediante Red5.

Es entonces, cuando se hace uso de los dos servidores, tanto de audio como de

video, trabajando en conjunto y simulando como si fuera uno mismo, una vez

realizada la video llamada el usuario puede optar por ocultar la cámara y solo

llamar o también finalizarla presionando el botón “Hang Up”, si el usuario decide

solo ocultar la cámara sin terminar la llamada, dejará de trasmitir, el que cierre la

cámara, y al otro usuario tendrá la sensación de que la imagen se congeló, pero si

opta de nuevo por habilitar la cámara durante la misma llamada se podrá trasmitir

el video sin ningún percance, si alguno decide terminar la video llamada,

automáticamente se cierran las cámaras de ambos usuarios, así como también las

conexiones en ambos servidores.

Posteriormente si se desea hacer alguna otra llamada, es necesario marcar a

alguna otra extensión conocida y realizar nuevamente los pasos anteriormente

mencionados.

Angel Omar Vázquez Quintero | 50

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

De esta manera, se logróunir cada de las tecnologías, FreeSwitch y Red5, en un

proyecto de video-llamadas, proporcionando ambas resultadosóptimos y estables

en la aplicación Dilo Communicator.

Angel Omar Vázquez Quintero | 51

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

CAPÍTULO 4CONCLUSIONES

4.1 Comprobación de hipótesis

Se afirma la hipótesis planteada desde el inicio del proyecto, esto debido a que

implementando tecnologías libres (Open Source), se creó un SoftPhone, con las

especificaciones requeridas, como fueron, la elección de los server adecuados

para la transmisión de voz y de video, así como también la convivencia de ambos

servidores en una sola aplicación, permitiendo comunicarse a los usuarios

mediante una red LAN o WLAN, utilizando la plataforma de “Dilo

Communicator”.

4.2 Cumplimiento de objetivos

Para el desarrollo del proyecto, se plantearon varios objetivos a cumplir, mismos

que ayudarían a definir el porcentaje de cumplimiento al término del proyecto.

4.2.1 General.

Se desarrolló un SoftPhone con el cual se pueden realizar llamadas y video

llamadas usando tecnologías Open Source, con el fin de brindar un servicio de

soporte técnico para la aplicación de “Dilo Communicator”.

Los factores positivos que influyeron para su desarrollo se destacan en la

recopilación y definición de los requerimientos con respecto a los campos que

llevaría la base de datos y los requisitos de la aplicación, de esta manera se

evitaron los retrasos para la ejecución del mismo.

Angel Omar Vázquez Quintero | 52

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

4.3 Resultados del proyecto

Lo mostrado en el desarrollo de este documento, fue el resultado de un prototipo

realizado en base a lo investigado, el cual en un principio se realizó con una

interfaz un poco rústica y poco amigable para el usuario, también contaba con el

paso de autentificarse por parte del usuario, el cual debe de ser transparente al

usuario, ya que sería un paso no muy bien visto por los mismos.

A continuación se muestra el resultado del SoftPhone ya montado dentro de la

aplicación “Dilo Communicator”, para brindar un servicio de soporte técnico a

los usuarios que utilicen dicha plataforma.

Figura 4.1 Plataforma “Dilo Communicator”.

Angel Omar Vázquez Quintero | 53

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

Figura 4.2 Lista de contactos disponibles dentro la plataforma.

Figura 4.3 llamando al usuario disponible para establecer una llamada.

Angel Omar Vázquez Quintero | 54

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

Figura 4.4 llamada establecida ocupando FreeSWITCH.

Figura 4.5 Video llamada establecida mediante Red5 dentro de la plataforma “Dilo Communicator”.

Angel Omar Vázquez Quintero | 55

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

4.4 Contribuciones

Las contribuciones realizadas a la empresa fueron el desarrollo de un SoftPhone

con el cual pudieran comunicarse con otros usuarios con el uso de tecnologías

Open Source, gracias al desarrollo del SoftPhone se podrá brindar un servicio de

soporte técnico y de servicio de consulta de resultados médicos en la aplicación

“Dilo Communicator”.

Como trabajos futuros se recomienda buscar mejoras para el SoftPhone y

estabilidad, con el fin de que no consuma mucho ancho de banda y tener una

comunicación más fluida y de mejor calidad el audio y video.

Angel Omar Vázquez Quintero | 56

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

BIBLIOGRAFÍA

[1] Adobe Flex, Información general de Flex, Adobe. 20 de Enero del 2013.http://www.adobe.com/es/products/flex/overview/

[2] Adobe Flex, características de Flex, Adobe. 25 de Enero del 2013.http://www.adobe.com/es/products/flex/productinfo/features/

[3] Adobe Flex, Marco de trabajo de Flex, Adobe. 30 de Enero del 2013.http://www.adobe.com/es/products/flex/flex_framework/

[4] Adobe Flex, documentación, Adobe. 02 de Febrero del 2013.http://www.adobe.com/devnet/flex/documentation.html

[5] ActionScrip 3.0 Flex, api de Flex, Adobe. 05 de Febrero del 2013http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/index.html

[6] Adobe Flex, Accessing Data with ADOBE® FLEX® 4.5, Adobe.09 de Marzo del 2013.http://help.adobe.com/en_US/legalnotices/index.html

Angel Omar Vázquez Quintero | 57

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

ANEXOS

Listado de Anexos:

Anexo 1: Project Charter

Anexo 2: Alcance del Proyecto

Anexo 3: Plan de Administración del Proyecto

Anexo 4: WBS

Anexo 5: WBS Dictionary

Anexo 6: Cronograma de actividades

Anexo 7: Diagrama de Gantt

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

Anexo 1: Project Charter

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

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.

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

StakeHolders

Nombre Puesto Rol PosturaNivel de

influencia

BA.E. Jorge Madrid

Director General de

Hova Networks

Sponsor/Cliente Apoya

Muy Alto

LDG. Octavio Funes

Director de Unidad de

negocio Hova Cloud

StakeHolder Apoya Alto

MBA. Anel Flores

Gerente de Mercadotecnia

StakeHolder Apoya Alto

I.C Adrián Fuentes Muñoz

Arquitecto de Desarrollo de

Software

Líder de Proyecto/

StakeHolderApoya Alto

TSU. Ángel Vázquez

Líder de proyecto

StakeHolder Apoya Alto

Descripción del producto/ Entregables.

Como producto final se entregara un SoftPhone desarrollado con tecnologías

Open Source, con el cual se puedan realizar llamadas de manera local, pero

también diseñado para que más adelante puede realizar llamadas a números

externos(Locales, Celulares), ya posteriormente de una manera fácil sea montado

en la aplicación “Dilo Communicator”.

Objetivos medibles del Proyecto.

Desarrollar SoftPhone con tecnologías Open Source

Montar un server de audio Open Source, con posibilidad de conectarse a un

proveedor de servicios de telefonía (carrier).

Montar un server de video Open Source.

Page 62: Tesina Angel Vazquez - Streaming de Video implementando el protocolo RTMP y tecnologias 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).

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

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.

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

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

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

El SoftPhone a desarrollar no será capaz de conectarse a proveedores de

telefonía para poder hacer llamadas a celulares o teléfonos fijos (llamadas

locales).

El SoftPhone solo podrá establecer comunicación entre dos usuarios.

Planeación del Proyecto

Inicio Fin

9 de Enero 2013 26 de Abril 2013

Plan Tecnológico

Métodos, Herramientas y Técnicas

Actividad Lenguaje Herramienta

Desarrollo de la aplicación de escritorio

AS3 Flash Builder

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

Anexo 4: WBS

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

Anexo 5: WBS Dictionary

Nombre del Proyecto Siglas del ProyectoSTREAMING DE VIDEO USANDO EL PROTOCOLO RTMP Y TECNOLOGÍAS

OPEN SOURCE“STREAMINGVIDEO”

FA

SE

1 IN

ICIO

1.1Documentación

1.1.1 Project Charter

Este documento detalla: la definición del proyecto, definición del producto, requerimiento de los StakeHolders, necesidades del negocio, finalidad y justificación del proyecto, organizaciones que intervienen, supuestos, restricciones, riesgos y oportunidades del proyecto.

1.1.2 Identificación de

StakeHolders

En este documento se identifican todos los interesados que intervienen en el proyecto.

1.2 Investigación de

plataformas

1.2.1 Investigación de

las posibles plataformas

para desarrollo de la aplicación

En este documento se definirán que plataforma es la adecuada para poder desarrollar la aplicación o el sistema.

FA

SE

2 P

LA

NE

AC

ION

2.1 Análisis de requerimientos

En este documento se plasman las necesidades del cliente con las que contara el proyecto.

2.2 Definición del alcance

Este documento define claramente hasta donde llegara el proyecto, es el entregable final que espera el cliente.

2.3 WBS

2.3.1 Definición de paquetes

En este documento se dividen las fases en paquetes toman en cuenta las actividades que se realizaran en el proyecto.

2.3.2 Definir entregables

En este documento se realizan los entregables que servirán como evidencia para comprobar que las actividades realizadas se estén llevando de la forma adecuada

2.4 Cronograma de actividades

2.4.1Desarrollo del cronograma

En este documento se identifican los recursos humanos, los tiempos, nos

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

genera el diagrama de red y también nos sirve como línea base, este se realiza en una herramienta especial para el desarrollo de proyectos.

2.5 Representación

Conceptual

2.5.1 Representar de

manera conceptual el procedimiento del proyecto

Se elaborara un diagrama conceptual, en la cual explique gráficamente la funcionalidad lógica de la aplicación.

FA

SE

3

EJE

CU

CIO

N

3.2 Desarrollo de la aplicación

Se elaborara la aplicación NEPDO la cual, cubrirá todos los requisitos del cliente, y llegar a los alcances establecidos y acordados con el cliente.

FA

SE

4

SE

GU

IMIE

NT

O Y

4.1Ejecutar el plan de pruebas

Se elaborara un documento con las pruebas que se realizaron a la aplicación, el cual contendrá los errores que tuvo y la confirmación de que ese error fue resuelto.

FA

SE

5 C

IER

RE

5.1 Aplicación final

5.1.1Presentación y

demostración final de la aplicación

Se presentara de manera de exposición las funcionalidades de la aplicación ya concluida, y de su funcionalidad

5.2 Manuales5.2.1 Manual de

usuario

Se elaborara un manual dedicado para el usuario con el motivo de que el cliente haga un buen uso de la aplicación y esta misma tenga un buen desempeño.

5.3Documentación de aceptación

5.3.1 Firma del documento final

Ya terminada la aplicación funcionando correctamente, sin errores y cumpliendo con el

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

alcance que definió el cliente como último paso firma el documento final para terminar el proyecto.

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

Anexo 6: Cronograma de actividades

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

Anexo 7: Diagrama de Gantt

Anexo 8: Plan de comunicaciones

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

Matriz de comunicación

Pro

jec

t C

har

ter

Ide

nti

fica

ció

n

de

Sta

keH

old

ers

An

ális

is d

e re

qu

eri

mie

nto

s

De

fin

ició

n d

el

alc

ance

De

sarr

ollo

de

l cr

on

og

ram

a d

e

acti

vid

ad

es

Re

pre

sen

tac

ión

co

nce

ptu

al

de

l fu

nc

ion

amie

nto

d

el p

roy

ecto

De

sarr

ollo

de

la

aplic

ació

n

Eje

cu

ció

n d

e

pla

n d

e p

rueb

as

Entrega: Recibe:

10/0

1/1

3

10/0

1/1

3

15/0

1/1

3

15/0

1/1

3

18/0

1/1

3

14/0

2/1

3

27/0

3/1

3

03/0

4/1

3

TSU. Ángel Vázquez

Jorge Madrid I.C, R.

I.C, R.

I.C,R. I.C. I.C. I.C,R. I.C I.C

TSU. Ángel Vázquez

Octavio Funes I.C, R.

I.C, R.

R, I.I. I.C, R.

I.C. I.C,R. I.C I.C.

TSU. Ángel Vázquez

I.C Adrián Fuentes Muñoz

I.C, R, I.I.

I.C, R.

I.C, R. I.C, R.

I.C, R. I.C,R. I.C I.C

SimbologíaI.C. : Información vía correoR : ReunionesI.I. : Información impresa