La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Diseño e Implementación de un Agente de Usuario SIP

Presentaciones similares


Presentación del tema: "Diseño e Implementación de un Agente de Usuario SIP"— Transcripción de la presentación:

1 Diseño e Implementación de un Agente de Usuario SIP
Escuela superior de ingenieros de Bilbao PROYECTO Diseño e Implementación de un Agente de Usuario SIP Alumno: Ibon Gotxi García Tutor: Eduardo Jacob Taquet Fecha: Marzo 2002

2 Diseño e Implementación de un Agente de Usuario SIP
Índice Introducción Objetivos Diseño: Pila SIP extendida Interfaz gráfica Estado del desarrollo

3 Diseño e Implementación de un Agente de Usuario SIP
Introducción (I): Session Initiation Protocol SIP: Protocolo de Inicio de Sesiones (rfc 2543). Nivel de sesión del que carece el modelo Internet. En estado de desarrollo. Similar a HTTP. Establece la comunicación entre dos aplicaciones junto con unas reglas para el diálogo. Se trata de un nivel orientado a conexión: establecimiento, transferencia de datos y liberación de sesiones. Permite una liberación de las sesiones de forma ordenada, impidiendo la pérdida de datos. Suministra primitivas a los niveles superiores (en este caso al de aplicación) para establecer sesiones Características particulares: Generalidad. Simplicidad. Localización de usuarios (estructura de una red SIP). Modelo cliente-servidor. Sesiones formadas por transacciones basadas en peticiones y respuestas. Mensajes en texto plano con estructura: línea inicial (request-line ó response-line), lista de cabeceras y carga. Comparten códigos de respuesta y cabeceras (parte de la definición ABNF de SIP proviene de HTTP). Aplicaciones: Videoconferencia y Teleconferencia. Mensajería Instantánea (localización de usuarios). Computación ubicua. Servicios Web (propuesta de SOAP sobre SIP, HTTP no define conexión).

4 Diseño e Implementación de un Agente de Usuario SIP
Introducción (y II): Modo básico de operación SIP biloxi.com atlanta.com SIP/ OK Via: SIP/2.0/UDP :5060 To: Bob From: Alice Call-ID: CSeq: INVITE Contact: Content-Type: application/sdp Contact-Length: 131 (No se muestra la carga SDP de Bob) Bob Alice Alice llama a Bob Alice cuelga Bob acepta INVITE F1 INVITE F3 100 Trying F2 INVITE F5 100 Trying F4 180 Ringing F6 INVITE SIP/2.0 Via: SIP/2.0/UDP :5060 To: Bob From: Alice Call-ID: CSeq: INVITE Contact: Content-Type: application/sdp Contact-Length: 142 (La carga SDP no se visualiza) 180 Ringing F7 180 Ringing F8 200 Ok F9 INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=77ef4c Via: SIP/2.0/UDP :5060 To: Bob From: Alice Call-ID: CSeq: INVITE Contact: Content-Type: application/sdp Contact-Length: 142 (Carga SDP no mostrada) 200 Ok F10 200 Ok F11 ACK F12 Flujos multimedia en tiempo real (RTP) BYE F13 200 Ok F14

5 Diseño e Implementación de un Agente de Usuario SIP
Objetivos 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. 2.- Interfaz gráfica. implementando: El protocolo SIP para establecer mantener y liberar sesiones (varias sesiones de forma simultánea). SDP para definir los contenidos multimedia de dichas sesiones RTP para transportar la información multimedia en tiempo real. Acceso a los dispositivos de sonido del sistema para grabar/reproducir la información multimedia 3.- Interfaz entre ambas basada en eventos asíncronos. Basada en las librerías Qt y KDE para GNU/Linux Integración total con el escritorio KDE: Configuración, compilación e instalación. Normas de estilo. Diseño minimalista (bandeja del sistema). Información de depuración independiente. Eventos de Qt. Separación lógica de responsabilidades. Funcionamiento en paralelo: un hilo para la GUI, múltiples hilos trabajando en la pila (uno de ellos controlando a los demás). Posibilidades para la separación física de los dos módulos anteriores (en un futuro).

6 Diseño General del sistema
Diseño e Implementación de un Agente de Usuario SIP Diseño General del sistema Pila SIP extendida Señalización específica Hilo GUI Generador de Hilos Control de Llamada Texto Gestión Hilos Control de Llamada Gestión Hilos Hilo SIP nº1 Hilo SIP nº2 Hilo SIP nº N ... Texto Abrir, Cerrar, Volumen Arquitectura Multimedia Volumen

7 Diseño e Implementación de un Agente de Usuario SIP
Diseño Pila SIP ext. (I): hilo generador Hilos derivados de una clase base de hilo “SUA_Thread” Control de la pila a través de: Hilo generador de hilos (“SUA_Thread_Gen”). Lista global de hilos activos (“SUA_Thread_List”). Funciones realizadas por “SUA_Thread”: Identificación del hilo Asociación de un Call-Leg (binomio hilo<->sesión) Depuración Acceso a la GUI Eventos “SUA_ThMan_Event”: Destrucción de hilo. Salida confirmada o sin confirmación. Cambio en el método de acceso a la pila o la GUI. Funciones realizadas por “SUA_Thread_Gen”: Creación de hilos (=sesiones) por: Petición del usuario a través de la GUI. Información recibida por la red. Acceso a red: Retransmisiones Recepción, comprobación de la corrección, asociación a sesión. Gestión de los hilos SIP de apoyo: Creación de hilos cliente a petición del usuario. Creación de hilos servidores por la recepción de mensajes por la red. Eventos de gestión de hilo. Eventos de control de llamada: W_Make_Call: inicio de sesión como cliente. W_Query_Options: petición de capacidades como cliente. W_Register: registro con un servidor SIP. Peticiones aceptadas: INVITE: inicio de sesión como servidor. OPTIONS: petición de capacidades como servidor.

8 Diseño e Implementación de un Agente de Usuario SIP
Diseño Pila SIP ext. (II): hilos de apoyo SIP 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”).

9 Diseño e Implementación de un Agente de Usuario SIP
Diseño Pila SIP ext. (III): registro SIP 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.

10 Diseño e Implementación de un Agente de Usuario SIP
Diseño Pila SIP ext. (IV): Arquitectura multimedia Conseguimos independencia entre el acceso al driver y la pila RTP Acople de velocidades Mejora en las posibilidades de acceso Mayor facilidad para realizar mejoras ENVIAR Hilo RTP Buffer Salida Buffer Entrada Micrófono Altavoces Tarjeta de sonido Hilo Grabación Hilo Reproducción Buffer de Recepción RTP RECIBIR Minimizar la pérdida de paquetes. Evitar pérdida de secuencia. Open Sound System

11 Diseño e Implementación de un Agente de Usuario SIP
Diseño Pila SIP ext. (y V): párser y búsquedas DNS Diseño de pársers manuales: 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’ % 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.

12 Diseño e Implementación de un Agente de Usuario SIP
Diseño de la GUI 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: UA_USER_NAME: Ibon Gotxi García # Audio Devices(optional) # ####################### UA_AUDIO_DEV: /dev/dsp UA_MIXER_DEV: /dev/mixer UA_AUDIO_PORT: 34000 # Registering (optional) UA_SERVER: sip:somedomain.es UA_SERVER_PROXY: No UA_PUBLIC_ADDRESS: UA_SERVER_USER: public_user_login UA_SERVER_PASSWORD: public_user_password Aplicación latente en la bandeja del sistema (acceso a través de menú). Acceso al inicio de sesiones y libreta de direcciones KAB. Ventana de depuración.

13 Diseño e Implementación de un Agente de Usuario SIP
Estado del desarrollo, Presentación y Distribución Proyecto software de casi 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 (~250 descargas en 3 meses)

14 Diseño e Implementación de un Agente de Usuario SIP
Ruegos y preguntas


Descargar ppt "Diseño e Implementación de un Agente de Usuario SIP"

Presentaciones similares


Anuncios Google