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:[email protected]
SIPS URI (Uniform Resource Identifier)
sips:[email protected]
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