Download Desarrollo de una aplicación de videoconferencia bajo protocolo SIP
Document related concepts
no text concepts found
Transcript
Desarrollo de una aplicación de videoconferencia bajo protocolo SIP Realizado por: D. Pablo Montoro Escaño Dirigido por: Dr. Eduardo Casilari Pérez Dpto. Tecnología Electrónica - Universidad de Málaga, Junio 2005 Índice Introducción Protocolo SIP Metodología Desarrollo del software Aplicación umasip 1.00 Pruebas realizadas Ayudas y documentación Conclusiones y líneas futuras Introducción Desarrollo de una aplicación de videoconferencia bajo protocolo SIP Programación Multimedia Tecnología de Señalización Introducción (2) 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 (3) 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 (4) Esquema de funcionamiento Protocolo SIP Definición 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 Identificador sip:user:password@host:port;uri-parameters?headers SIP URI (Uniform Resource Identifier) sip:usuario@host.com SIPS URI (Uniform Resource Identifier) sips:usuario@host.com Protocolo SIP (2) Introducción Protocolo SIP Elementos SIP - 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 Protocolo SIP (3) Mensajes SIP Cabecera Cuerpo del Mensaje (Protocolo SDP) Mensajes Petición Mensajes Respuesta (Código y Frase Textual Asociada) REGISTER 1xx: Provisional (Provisional) INVITE 2xx: Éxito (Success) ACK 3xx: Redirección (Redirection) CANCEL 4xx: Error de Cliente (Client Error) BYE 5xx: Error de Servidor (Server Error) OPTIONS 6xx: Fallo Global (Global Failure) Protocolo SIP (4) Modelo de capas { Aplicación Aplicación Multimedia Presentación Sesión Transporte Red H.323 TCP SIP SDP Códecs RTCP RTP UDP IP (IPv4, IPv6) Enlace PPP, AAL3/4, AAL5, ... Física Sonet, SDH, ATM, Ethernet, ... Protocolo SIP (4) Modelo de capas { Aplicación Aplicación Multimedia Presentación Sesión Transporte Capa TU (Transaction User) Red H.323 TCP SIP SDP Códecs RTCP RTP UDP IP (IPv4, IPv6) Capa de transacción Enlace PPP, AAL3/4, AAL5, ... Física Sonet, SDH, ATM, Ethernet, ... Capa de transporte Capa de sintaxis y codificación Protocolo SIP (5) SP1 SP2 Ejemplo de sesión SIP UA1 UA2 INVITE INVITE 100 Trying INVITE 100 Trying 180 Ringing 180 Ringing 180 Ringing 200 OK 200 OK 200 OK ACK Sesión Multimedia BYE 200 OK Metodología Prototipo 1er Incremento 2o Incremento ... modelo incremental en modo secuencial + modelo de construcción de prototipos Metodología (2) M a t r iz P r o c e s o (Fa se d e D e sa rro llo d e l p ro ye ct o ) A P r o t o t ip o ná is lis c on el c n lie Clie n t e /Se rvid o r SIP 2 º In c r e m e n t o D ñ is e o Pr r og am ac ió n Im ple m e nta ción de l código Prue ba de toda s la s opcione s de la ba rra de m e nú y ca m bio de idiom a Re visión de l prototipo Funciona lida d de la se sión m ultim e dia D ia g ra m a d e cla se s Im ple m e nta ción de l código Prue ba de cone xión de se sión SIP e ntre e quipos e n una re d loca l Re visión de l incre m e nto Re quisitos de sonido D ia g ra m a d e cla se s Im ple m e nta ción de l código Prue ba de l sonido e n distintos e quipos y siste m a s ope ra tivos Re visión de l incre m e nto Re quisitos de víde o D ia g ra m a d e cla se s Im ple m e nta ción de l código Prue ba de víde o e n distintos e quipos y siste m a s ope ra tivos Re visión de l incre m e nto Re quisitos pa ra la a yuda D ise ñ o d e la a yu d a Im ple m e nta ción de l código Prue ba de toda s la s a yuda s de l progra m a Im ple m e nta ción de l código Com proba ción de l a cce so a toda s la s opcione s de l m e nú Ad ició n d e Víd e o 4 º In c r e m e n t o ba Ba rra de m e nú y opcione s Estructura de l fiche ro de idiom a s Ad ició n d e So n id o 3 º In c r e m e n t o P e ru Re quisitos de l inte rfa z grá fico In t e rfa z Grá fico Mó d u lo d e Id io m a 1 º In c r e m e n t o te Ma n u a l d e Ayu d a 5 º In c r e m e n t o Re visió n y m e jo ra d e l In t e rfa z Grá fico Re visión de l incre m e nto Re dise ño pa ra un Re toque s a re a liza r e n e l inte rfa z grá fico m á s inte rfa z cóm odo y a gra da ble 6 º In c r e m e n t o Re visión de l incre m e nto Tra d u cció n Aná lisis de los posible s m u lt ilin g ü e idiom a s a tra ducir Tra ducción de l fiche ro de Escribir los fiche ros de idiom a a los dife re nte s idiom a con la s idiom a s tra duccione s y a ña dirlos Prue ba de ca m bios de idiom a s Desarrollo del software jSIP (Java SIP) - Protocolo SIP Lenguaje de programación Java JMF (Java Media Framework) - Multimedia Interpretado, Máquina Virtual Java (JVM) Code Conventions for the Java Programming Language de Sun Microsystems Documentación para el desarrollador en Javadocs Desarrollo del software jSIP (Java SIP) - Protocolo SIP Lenguaje de programación Java JMF (Java Media Framework) - Multimedia Interpretado, Máquina Virtual Java (JVM) Code Conventions for the Java Programming Language de Sun Microsystems Documentación para el desarrollador en Javadocs Desarrollo del software (2) Clases implementadas: - umasip - Interfaz - Idioma - Preferencias - Agente - Llamada Notación UML Desarrollo del software (3) Ejemplo de diagrama de flujos Método texto( ) de la clase Idioma Desarrollo del software (4) Diagrama de bloques umasip Agente Interfaz jSIP Idioma Preferencias Llamada JMF Desarrollo del software (5) Diagrama de estados 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 Menú de opciones Aplicación umasip 1.00 (2) Funcionamiento de los idiomas - Ficheros .fiu Pruebas realizadas Pruebas de caja blanca durante la fase de desarrollo Pruebas de funcionamiento básico Pruebas de caja negra Pruebas de entorno Pruebas de casos extraordinarios Ethereal Pruebas realizadas (2) Pruebas realizadas (3) Análisis de las capturas Pruebas realizadas (4) Ayudas y documentación Español - Manual del usuario en formatos .pdf y .sxw 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, ...) Manual, ayudas y documentación Ayudas y documentación Español - Manual del usuario en formatos .pdf y .sxw 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, ...) Conclusiones y líneas futuras Conclusiones Se ha creado una aplicación con una funcionalidad completa Software novedoso - Videoconferencia - Multiplataforma (Java) - Protocolo SIP - Software Libre - Multilingüe Telefonía Móvil (3ª Generación) Software de interés actual Banda Ancha para Internet (ISP) Videollamada en Telefonía Fija Conclusiones y líneas futuras (2) 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,...) 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ño Dirigido por: Dr. Eduardo Casilari Pérez Dpto. Tecnología Electrónica - Universidad de Málaga, Junio 2005