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:[email protected]: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
{
A plicación
A plicación M ultim edia
Presentación
Sesión
Transporte
Red
H .323
TCP
S IP
SDP
RTCP
C ódecs
RTP
UDP
IP (IP v4, IP v6)
Enlace
P P P , A A L 3/4, A A L 5, ...
Física
S onet, S D H , A T M , E thernet, ...
Protocolo SIP (4)
Modelo de capas
{
A plicación
A plicación M ultim edia
Presentación
Sesión
Transporte
C ap a T U
(T ran sactio n U ser)
Red
H .323
TCP
S IP
SDP
RTCP
C ódecs
RTP
UDP
IP (IP v4, IP v6)
C ap a d e tran sacció n
Enlace
P P P , A A L 3/4, A A L 5, ...
Física
S onet, S D H , A T M , E thernet, ...
C ap a d e tran sp o rte
C ap a d e sin tax is
y co d ificació n
Protocolo SIP (5)
SP1
SP2
Ejemplo de sesión SIP U A 1
UA2
IN V IT E
IN V IT E
100 T rying
IN V IT E
100 T rying
180 R inging
180 R inging
180 R inging
200 O K
200 O K
200 O K
ACK
S esión M ultim edia
BYE
200 O K
Metodología
P rototipo
er
1 In crem en to
o
2 In crem en to
...
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 s e
d e D e s a r r o llo d e l
p ro ye ct o )
A
P r o t o t ip o
ná
i
lis
s
c
on
el
c
n
lie
C lie n t e / S e r v id o r S IP
2 º In c r e m e n t o
D
i
ñ
se
o
P
r
r
og
am
ac
ió
n
Im p le m e n t a c ió n d e l
c ó d ig o
P r u e b a d e t o d a s la s
o p c io n e s d e la b a r r a d e
m e n ú y c a m b io d e
id io m a
Re v is ió n d e l p r o t o t ip o
Fu n c io n a lid a d d e la
s e s ió n m u lt im e d ia
D ia g r a m a d e c la s e s
Im p le m e n t a c ió n d e l
c ó d ig o
P r u e b a d e c o n e x ió n d e
s e s ió n S IP e n t r e e q u ip o s
e n u n a r e d lo c a l
Re v is ió n d e l in c r e m e n t o
Re q u is it o s d e s o n id o
D ia g r a m a d e c la s e s
Im p le m e n t a c ió n d e l
c ó d ig o
P r u e b a d e l s o n id o e n
d is t in t o s e q u ip o s y
s is t e m a s o p e r a t iv o s
Re v is ió n d e l in c r e m e n t o
Re q u is it o s d e v íd e o
D ia g r a m a d e c la s e s
Im p le m e n t a c ió n d e l
c ó d ig o
P r u e b a d e v íd e o e n
d is t in t o s e q u ip o s y
s is t e m a s o p e r a t iv o s
Re v is ió n d e l in c r e m e n t o
Re q u is it o s p a r a la a y u d a
D is e ñ o d e la a y u d a
Im p le m e n t a c ió n d e l
c ó d ig o
P r u e b a d e t o d a s la s
a y u d a s d e l p ro g ra m a
Re v is ió n d e l in c r e m e n t o
Re t o q u e s a r e a liz a r e n e l
in t e r fa z
Re d is e ñ o p a r a u n
in t e r fa z g r á fic o m á s
c ó m o d o y a g r a d a b le
Im p le m e n t a c ió n d e l
c ó d ig o
C o m p r o b a c ió n d e l
a c c e s o a t o d a s la s
o p c io n e s d e l m e n ú
Re v is ió n d e l in c r e m e n t o
A n á lis is d e lo s p o s ib le s
id io m a s a t r a d u c ir
Tr a d u c c ió n d e l fic h e r o d e
id io m a a lo s d ife r e n t e s
id io m a s
E s c r ib ir lo s fic h e r o s d e
id io m a c o n la s
t r a d u c c io n e s y a ñ a d ir lo s
P r u e b a d e c a m b io s d e
id io m a s
A d ic ió n d e V íd e o
4 º In c r e m e n t o
ba
B a rra d e m e n ú y
o p c io n e s E s t r u c t u r a d e l
fic h e r o d e id io m a s
A d ic ió n d e S o n id o
3 º In c r e m e n t o
P
e
ru
Re q u is it o s d e l in t e r fa z
g r á fic o
In t e r f a z G r á f ic o
M ó d u lo d e Id io m a
1 º In c r e m e n t o
te
M anual de Ayuda
5 º In c r e m e n t o
Re v is ió n y m e jo r a d e l
In t e r f a z G r á f ic o
6 º In c r e m e n t o
Tr a d u c c ió n
m u lt ilin g ü e
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
Descargar

webpersonal.uma.es