Escuela superior de
ingenieros de Bilbao
PROYECTO
iseo e
pleenacin de
un
Agene
de
Aluno
bon oi arca
Tuor Eduardo Jacob
Usuario
SP
Taque
Fecha
Marzo
2002
http://sua.sourceforge.net
http://sourceforge.net/projects/sua
1
iseo e pleenacin de
un Agene de Usuario SP
ndice
•Introducción
•Objetivos
•Diseño:
•Pila SIP extendida
•Interfaz gráfica
•Estado del desarrollo
2
http://sua.sourceforge.net
iseo e pleenacin de
un Agene de Usuario SP
Session
•SIP:
Protocolo de Inicio de Sesiones (rfc 2543).
niiaion
Proocol
nroduccin

•Nivel de sesión del que carece el modelo Internet.
•En estado de desarrollo.
•Establece la comunicación entre dos
•Similar a HTTP. aplicaciones junto con unas reglas para el
diálogo.
•Características particulares:
•Se trata de un nivel orientado a conexión:
•Modelo cliente-servidor.
establecimiento, transferencia de datos y
Generalidad.
liberación
de sesiones.
•Sesiones
formadas por transacciones basadas
•Permite
una liberación
de las sesiones de
en peticiones
y respuestas.
Simplicidad.
forma ordenada, impidiendo la pérdida de datos.
•Mensajes en texto plano con estructura: línea
•Suministra
primitivas
a los niveles
superiores
Localización
de
usuarios
(estructura
de una
red SIP).
inicial (request-line ó response-line), lista de
(en este caso al de aplicación) para establecer
•Aplicaciones:
cabeceras y carga.
sesiones
•Comparten
códigos de respuesta y cabeceras
Videoconferencia
y Teleconferencia.
(parte de la definición ABNF de SIP proviene de
HTTP).
Mensajería Instantánea
(localización de usuarios).
Computación ubicua.
Servicios Web (propuesta de SOAP sobre SIP, HTTP no define conexión). 3
http://sua.sourceforge.net
iseo e pleenacin de
un Agene de Usuario SP
Modo
sip:[email protected]
de operacin
SP
nroduccin
sip:[email protected]
bsico
atlanta.com
Alice
Alice cuelga
llama a Bob
INVITE F1
100 Trying F2
180 Ringing F8
 
SIP/2.0 200 OK
Via: SIP/2.0/UDP
10.1.3.3:5060
biloxi.com
To: Bob <sip:[email protected]>;tag=a6c85cf
From: Alice <sip:[email protected]>;tag=1928301774
Call-ID: [email protected]
CSeq: 314159 INVITE
Bob acepta
Contact:
INVITE
F3 <sip:[email protected]>
INVITE F5
Content-Type: application/sdp
100 Trying
F4
Contact-Length: 131
(No se muestra la carga SDP de180
Bob)Ringing F6
180 Ringing
F7
INVITE sip:[email protected] SIP/2.0
200 Ok F9
Via: SIP/2.0/UDP 10.1.3.3:5060
INVITE sip:[email protected]
SIP/2.0
200
Ok
F10
To: Bob <sip:[email protected]>
200 Ok F1110.1.1.1:5060;branch=77ef4c2312983.1
Via: SIP/2.0/UDP
From: Alice <sip:[email protected]>;tag=1928301774
Via: SIP/2.0/UDP 10.1.3.3:5060
Call-ID: [email protected]
ACK F12
To: Bob <sip:[email protected]>
CSeq: 314159 INVITE
From: Alice <sip:[email protected]>;tag=1928301774
Contact: <sip:[email protected]>
Call-ID: [email protected]
Flujos multimedia
en tiempo real (RTP)
Content-Type:
application/sdp
CSeq: 314159 INVITE Contact-Length: 142
Contact: <sip:[email protected]>
(La carga SDP no se visualiza)
Content-Type: application/sdp
BYE F13
Contact-Length: 142
(Carga SDP no mostrada)
200 Ok F14
http://sua.sourceforge.net
Bob
4
iseo e pleenacin de
un Agene de Usuario SP
Objeivos
Diseño e implementación para GNU/Linux de un UA SIP concebido como
soft-phone (teléfono por software) y consistente en tres módulos básicos:
1.- Pila SIP extendida.
implementando:
2.- Interfaz
gráfica.
3.-
•El protocolo SIP para establecer mantener y liberar
Interfaz
entre
ambas
basada
en
eventos
sesiones en
(varias
sesiones
formapara
simultánea).
•Basada
las librerías
Qtde
y KDE
GNU/Linux
asíncronos.
•SDP para definir
los contenidos
de dichas
•Integración
total con
el escritoriomultimedia
KDE:
•Eventos
sesiones de Qt.
Configuración, compilación e instalación.
•Separación
lógica de responsabilidades.
•RTP para transportar
la información multimedia en
Normas
de
estilo.
tiempo real.
•Funcionamiento en paralelo: un hilo para la GUI,
minimalista
deldel
sistema).
múltiples
hilos
en(bandeja
la pila
(uno
de
ellos
•Acceso Diseño
a
los trabajando
dispositivos
de
sonido
sistema
para
controlando
losdepuración
demás).
grabar/reproducir
la información
multimedia
•Informaciónade
independiente.
•Posibilidades para la separación física de los dos
módulos anteriores (en un futuro).
5
http://sua.sourceforge.net
iseo e pleenacin de
un Agene de Usuario SP
iseo
eneral del
sisea
Señalización
Pila SIP extendida
específica
Generador de Hilos
Texto
Gestión
Hilos
Gestión
Hilos
Hilo
SIP nº1
Hilo
SIP nº2
...
Hilo SIP
nº N
Texto
Abrir, Cerrar,
Volumen
Hilo GUI
Control de
Llamada
Control de
Llamada
Volumen
Arquitectura
Multimedia
6
http://sua.sourceforge.net
iseo e pleenacin de
un Agene de Usuario SP
iseo Pila SP e

•Hilos
derivados de hilo
una clase base degenerador
hilo “SUA_Thread”
•Control de la pila a través de:
Funciones realizadas por “SUA_Thread”:
•Hilo generador de hilos (“SUA_Thread_Gen”).
•Identificación del hilo
•Lista •Asociación
global de hilos
activos
(“SUA_Thread_List”).
de un
Call-Leg
(binomio hilo<->sesión)
Eventos
“SUA_ThMan_Event”:
Funciones
realizadas por “SUA_Thread_Gen”:
•Depuración
•Gestión de
los
hilos
SIP
de apoyo:
•Destrucción
de
hilo.
•Creación
hilos (=sesiones) por:
•Acceso a de
la GUI
•Salida
o sin
confirmación.
•Creación
deconfirmada
hilos del
cliente
a petición
usuario.
•Petición
usuario
a travésdel
de la
GUI.
•Cambio
en control
el servidores
método
de acceso
a la pila o lade
GUI.
Eventos
de
de llamada:
•Información
recibida
por
•Creación
de hilos
porlalared.
recepción
mensajes por la
red. •W_Make_Call:
•Acceso a red: inicio de sesión como cliente.
•W_Query_Options:
petición de capacidades como
•Retransmisiones
•Eventos
de
gestión de hilo.
Peticiones aceptadas:
cliente.
•INVITE:
inicio decomprobación
sesión como servidor.
•Recepción,
de la corrección,
•W_Register:
registro
con
un servidorcomo
SIP. servidor.
asociación
a sesión.
•OPTIONS:
petición
de
capacidades
7
http://sua.sourceforge.net
iseo e pleenacin de
un Agene de Usuario SP
iseo
Pila
hilos
SP
de
e
apoo

SP
•Posibilidad de mantener múltiples sesiones de forma simultánea
(solamente una accediendo a los recursos multimedia).
•Una sesión (o en su defecto una transacción) está representada por un
hilo de apoyo.
•Existen 5 tipos de hilos de apoyo:
Sesión iniciada en modo cliente (“SUA_Thread_Client”).
Sesión iniciada en modo servidor (“SUA_Thread_Server”).
Registro en modo cliente (“SUA_Thread_CReg”).
Petición de opciones en modo cliente (“SUA_Thread_COpt”).
Petición de opciones en modo servidor (“SUA_Thread_SOpt”).
8
http://sua.sourceforge.net
iseo e pleenacin de
un Agene de Usuario SP
iseo Pila SP e

regisro
SP
•Modificación
del ‘location service’
(asociación entre dirección
SIP
pública y dirección SIP actual) de un servidor SIP (proxy ó redirector).
•Transacción en dos+ pasos:
•challenge al servidor: conocer el sistema de autenticación requerido.
•modificación del ‘location service’: añadir una entrada al final, borrar
entradas, obtener copia de las entradas actuales.
•Autenticación como en HTTP (rfc 2617):
•Básica: login/password codificados en base-64.
•Digest: resúmenes criptográficos MD5 basados en el par
login/password y en algunos valores aleatorios que expiran con el
tiempo.
9
http://sua.sourceforge.net
iseo e pleenacin de
un Agene de Usuario SP
iseo
ENVIAR
Pila SP •Conseguimos
e independencia
 entre
Arquiecura
uliedia
el acceso al driver y la pila RTP
•Acople de velocidades
•Mejora en las posibilidades de acceso
•Mayor facilidad para realizar mejoras
Tarjeta de
sonido
Hilo Grabación
Micrófono
Hilo Reproducción
Altavoces
RECIBIR
Buffer de
Recepción
RTP
•Minimizar la pérdida de paquetes.
•Evitar pérdida de secuencia.
Open Sound System
10
http://sua.sourceforge.net
iseo e pleenacin de
un Agene de Usuario SP
iseo
Pila SP e  
prser
 bsquedas
•Diseño de pársers manuales:
S
•Creación de mensajes.
•Extracción de cabeceras y de campos dentro de dichas cabeceras.
•Análisis sintáctico y léxico (corrección de mensajes).
•Párser SIP: clases ‘SUA_Body’, ‘SUA_Request’ y ‘SUA_Response’.
56.75% del protocolo (de un total de 37 cabeceras, 21 soportadas).
•Párser SDP: clase ‘SUA_Sdp’. 30% del protocolo (de un total de 20
cabeceras, 6 soportadas).
•Búsquedas DNS: procedimiento de búsqueda de registros SRV.
Conseguir un conjunto dirección IP, puerto y protocolo de transporte
desde una SIP URI. Tanto síncronas como asíncronas.
11
http://sua.sourceforge.net
iseo e pleenacin de
un Agene de Usuario SP
iseo
de la
U
•Configuración a través de un fichero de texto (10 directivas).
•Ventana de presentación y estado del proceso de registro.
•Selección automática de dirección IP.
# # Sip (optional)
# ######################
UA_ADDRESS: sip:[email protected]
UA_USER_NAME: Ibon Gotxi García
•Aplicación latente en la bandeja del sistema (acceso a través de menú).
# Audio Devices(optional)
# #######################
UA_AUDIO_DEV: /dev/dsp
UA_MIXER_DEV: /dev/mixer
UA_AUDIO_PORT: 34000
•Acceso al inicio de sesiones y libreta de direcciones KAB.
•Ventana de depuración.
# Registering (optional)
# ######################
UA_SERVER: sip:somedomain.es
UA_SERVER_PROXY: No
UA_PUBLIC_ADDRESS: sip:[email protected]
UA_SERVER_USER: public_user_login
UA_SERVER_PASSWORD: public_user_password
12
http://sua.sourceforge.net
iseo e pleenacin de
un Agene de Usuario SP
Esado del desarrollo,
Presenacin  isribucin
•Proyecto software de casi 24.000 líneas de código.
•Soporte de:
•5 tipos de sesiones/transacciones (alguna de ellas con una máquina de estados de
más de 15 posibles estados).
•6 métodos SIP (INVITE, ACK, BYE, CANCEL, REGISTER, OPTIONS).
•21 cabeceras SIP.
•6 cabeceras SDP.
•Protocolo RTP.
•Acceso a drivers de sonido OSS.
•5 tipos principales de eventos y más de 24 subtipos.
•Configuración, compilación, instalación y distribución mediante
Autotools (Autoconf, Automake y Libtool).
•Código libre (GPL) disponible en http://sua.sourceforge.net (~250 descargas en
3 meses)
13
http://sua.sourceforge.net
iseo e pleenacin de
un Agene de Usuario SP
Ruegos

pregunas
http://sua.sourceforge.net
http://sourceforge.net/projects/sua
14
Descargar

Sin título de diapositiva - SUA