Desarrollo de una aplicación de videoconferencia bajo protocolo SIP
description
Transcript of Desarrollo de una aplicación de videoconferencia bajo protocolo SIP
Desarrollo de una aplicación de videoconferencia bajo protocolo SIP
Realizado por: D. Pablo Montoro EscañoDirigido por: Dr. Eduardo Casilari Pérez
Dpto. Tecnología Electrónica - Universidad de Málaga, Junio 2005
Índice
Introducción
Protocolo SIP
Metodología
Aplicación umasip 1.00
Pruebas realizadas
Ayudas y documentación
Conclusiones y líneas futuras
Desarrollo del software
Desarrollo de una aplicación de videoconferencia bajo protocolo SIP
Programación Multimedia Tecnología de Señalización
Introducción
Especificaciones
- Una aplicación de videoconferencia que funcione extremo a extremo
- Multiplataforma, válido con usuarios que empleen diferentes sistemas operativos
- Transmisión y recepción de flujos multimedia en tiempo real
- Tecnología de señalización para sesiones multimedia bajo protocolo SIP, y que su funcionamiento sea visible desde el propio interfaz
- Con un interfaz amigable y un sistema de ayudas
- Software Libre, de forma que su código fuente sea accesible por futuros desarrolladores
Introducción (2)
Restricciones Funcionales
- No implementar el registro de un usuario en un servidor SIP
- Sin funcionalidad como servidor proxy dentro de la misma aplicación
- Ningún mecanismo para atravesar un sistema NAT (Network Address Translation)
- Videoconferencia punto a punto, prescindiendo de la implementación multipunto.
Introducción (3)
Esquema de funcionamiento
Introducción (4)
Definición
Identificador
El protocolo SIP (Session Initiation Protocol) es un protocolo de control, o señalización, a nivel de sesión para la creación, modificación y conclusión de sesiones multimedia de uno o más participantes
Se trata de un estándar del IETF, definido en el RFC (Request for Comments) 3261 de Junio de 2002, y que actualiza al RFC 2543 de Marzo de 1999
SIP URI (Uniform Resource Identifier) sip:[email protected]
Protocolo SIP
sip:user:password@host:port;uri-parameters?headers
SIPS URI (Uniform Resource Identifier) sips:[email protected]
- Un agente de usuario o UA (User Agent), integra cliente y servidor
- El cliente de agente de usuario o UAC (User Agent Client)
- El servidor de agente de usuario o UAS (User Agent Server)
- Un proxy o servidor proxy es una entidad intermedia que actúa como servidor
- Un servidor de redirección genera respuestas de redirección (respuestas 3xx)
- Un proxy de registro, o en inglés registrar, provee un servicio de localización
Introducción
Protocolo SIP
Elementos SIP
Protocolo SIP (2)
Mensajes SIP
Mensajes Petición Mensajes Respuesta (Código y Frase Textual Asociada)
REGISTER
INVITE
ACK
CANCEL
BYE
OPTIONS
Cabecera
Cuerpo del Mensaje (Protocolo SDP)
1xx: Provisional (Provisional)
2xx: Éxito (Success)
3xx: Redirección (Redirection)
4xx: Error de Cliente (Client Error)
5xx: Error de Servidor (Server Error)
6xx: Fallo Global (Global Failure)
Protocolo SIP (3)
{Aplicación
Presentación
Sesión
Transporte
Red
Enlace
Física
SIP
Aplicación Multimedia
H.323 SDP RTCPCódecs
RTP
TCP UDP
IP (IPv4, IPv6)
PPP, AAL3/4, AAL5, ...
Sonet, SDH, ATM, Ethernet, ...
Modelo de capas
Protocolo SIP (4)
{Aplicación
Presentación
Sesión
Transporte
Red
Enlace
Física
SIP
Aplicación Multimedia
H.323 SDP RTCPCódecs
RTP
TCP UDP
IP (IPv4, IPv6)
PPP, AAL3/4, AAL5, ...
Sonet, SDH, ATM, Ethernet, ...Capa de sintaxisy codificación
Capa de transporte
Capa de transacción
Capa TU(Transaction User)
Modelo de capas
Protocolo SIP (4)
Sesión Multimedia
ACK
BYE
200 OK
INVITEINVITE
INVITE100 Trying100 Trying
180 Ringing
180 Ringing180 Ringing
200 OK200 OK
200 OK
UA1 UA2
SP1 SP2
Ejemplo de sesión SIP
Protocolo SIP (5)
1er Incremento
2o Incremento
Prototipo
...
modelo incremental en modo secuencial + modelo de construcción de prototipos
Metodología
Diagrama de clases
Diagrama de clases
Diagrama de clases
Diseño de la ayuda
Matriz Proceso (Fase de Desarrollo del proyecto)
Prototipo Interfaz Gráfico Módulo de Idioma
Requisitos del interfaz gráfico
Barra de menú y opciones Estructura del fichero de idiomas
Implementación del código
Prueba de todas las opciones de la barra de menú y cambio de idioma
1º Incremento Cliente/Servidor SIP
Revisión del prototipo Funcionalidad de la sesión multimedia
Implementación del código
Prueba de conexión de sesión SIP entre equipos en una red local
2º Incremento Adición de Sonido
Revisión del incremento Requisitos de sonido
Implementación del código
Prueba del sonido en distintos equipos y sistemas operativos
3º Incremento Adición de Vídeo
Revisión del incremento Requisitos de vídeo
Implementación del código
Prueba de vídeo en distintos equipos y sistemas operativos
4º Incremento Manual de Ayuda
Revisión del incremento Requisitos para la ayuda
Implementación del código
Prueba de todas las ayudas del programa
5º Incremento Revisión y mejora del Interfaz Gráfico
Revisión del incremento Retoques a realizar en el interfaz
Rediseño para un interfaz gráfico más cómodo y agradable
Implementación del código
Comprobación del acceso a todas las opciones del menú
6º Incremento Traducción multilingüe
Revisión del incremento Análisis de los posibles idiomas a traducir
Traducción del fichero de idioma a los diferentes idiomas
Escribir los ficheros de idioma con las traducciones y añadirlos
Prueba de cambios de idiomas
Metodología (2)
Lenguaje de programación JavajSIP (Java SIP) - Protocolo SIP
JMF (Java Media Framework) - Multimedia
Code Conventions for the Java Programming Language de Sun Microsystems
Documentación para el desarrollador en Javadocs
Interpretado, Máquina Virtual Java (JVM)
Desarrollo del software
Lenguaje de programación JavajSIP (Java SIP) - Protocolo SIP
JMF (Java Media Framework) - Multimedia
Code Conventions for the Java Programming Language de Sun Microsystems
Documentación para el desarrollador en Javadocs
Interpretado, Máquina Virtual Java (JVM)
Desarrollo del software
Clases implementadas:
- umasip
- Interfaz
- Idioma
- Preferencias
- Agente
- Llamada
Notación UML
Desarrollo del software (2)
Ejemplo de diagrama de flujos
Desarrollo del software (3)
Método texto( ) de la clase Idioma
Diagrama de bloques
InterfazAgente Preferencias
Idioma
umasip
Llamada
jSIP JMF
Desarrollo del software (4)
Diagrama de estados
Desarrollo del software (5)
Menú de opciones
Aplicación umasip 1.00
Menú de opciones
Aplicación umasip 1.00
Menú de opciones
Aplicación umasip 1.00
Menú de opciones
Aplicación umasip 1.00
Menú de opciones
Aplicación umasip 1.00
Menú de opciones
Aplicación umasip 1.00
Funcionamiento de los idiomas
- Ficheros .fiu
Aplicación umasip 1.00 (2)
Pruebas de funcionamiento básico
Pruebas de entorno
Pruebas de casos extraordinarios
Pruebas de caja blanca
Pruebas de caja negra
durante la fase de desarrollo
Pruebas realizadas
Ethereal Pruebas realizadas (2)
Análisis de las capturas
Pruebas realizadas (3)
Pruebas realizadas (4)
- Manual del usuario en formatos .pdf y .sxwEspañol
Inglés
- Ficheros de ayuda elemental acompañando al programa (README.txt,...)
- Menú de ayudas dentro del programa
- Documentación generada por Javadocs (clases del programa y librería jSIP)
- Página web índice de toda la documentación disponible y código fuente
- Memoria del proyecto (diagramas de estado, flujos, bloques, clases UML, ...)
Ayudas y documentación
Manual, ayudas y documentación
- Manual del usuario en formatos .pdf y .sxwEspañol
Inglés
- Ficheros de ayuda elemental acompañando al programa (README.txt,...)
- Menú de ayudas dentro del programa
- Documentación generada por Javadocs (clases del programa y librería jSIP)
- Página web índice de toda la documentación disponible y código fuente
- Memoria del proyecto (diagramas de estado, flujos, bloques, clases UML, ...)
Ayudas y documentación
Conclusiones
Se ha creado una aplicación con una funcionalidad completa
- Videoconferencia- Multiplataforma (Java)- Protocolo SIP- Software Libre- Multilingüe
Software de interés actual
Software novedoso
Telefonía Móvil (3ª Generación)
Banda Ancha para Internet (ISP)
Videollamada en Telefonía Fija
Conclusiones y líneas futuras
Líneas futuras
Software Libre permite su mejora y ampliación
Continuación del software:
- Implementar la opción de registro
- Solución a sistemas NAT
- Aumentar la posibilidad de videoconferencia a multipunto
- Funcionalidades adicionales (chat, pizarra compartida,...)
Conclusiones y líneas futuras (2)
Vídeo demostrativo del funcionamiento de umasip 1.00
Desarrollo de una aplicación de videoconferencia bajo protocolo SIP
Realizado por: D. Pablo Montoro EscañoDirigido por: Dr. Eduardo Casilari Pérez
Dpto. Tecnología Electrónica - Universidad de Málaga, Junio 2005