La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

1 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.

Presentaciones similares


Presentación del tema: "1 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."— Transcripción de la presentación:

1 1 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

2 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 3 Diseño e Implementación de un Agente de Usuario SIP Introducción (I): Session Initiation Protocol Características particulares: Generalidad. Simplicidad. Localización de usuarios (estructura de una red SIP). 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 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). 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. 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 4 Diseño e Implementación de un Agente de Usuario SIP Introducción (y II): Modo básico de operación SIP AliceBob atlanta.combiloxi.com INVITE F1 INVITE F3 INVITE F5100 Trying F2 100 Trying F4 180 Ringing F6 180 Ringing F7 180 Ringing F8 200 Ok F9 200 Ok F Ok F11 ACK F12 BYE F Ok F14 Flujos multimedia en tiempo real (RTP) INVITE SIP/2.0 Via: SIP/2.0/UDP :5060 To: Bob From: Alice ;tag= Call-ID: CSeq: INVITE Contact: Content-Type: application/sdp Contact-Length: 142 (La carga SDP no se visualiza) INVITE SIP/2.0 Via: SIP/2.0/UDP :5060;branch=77ef4c Via: SIP/2.0/UDP :5060 To: Bob From: Alice ;tag= Call-ID: CSeq: INVITE Contact: Content-Type: application/sdp Contact-Length: 142 (Carga SDP no mostrada) Alice llama a Bob Bob acepta SIP/ OK Via: SIP/2.0/UDP :5060 To: Bob ;tag=a6c85cf From: Alice ;tag= Call-ID: CSeq: INVITE Contact: Content-Type: application/sdp Contact-Length: 131 (No se muestra la carga SDP de Bob) Alice cuelga

5 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. 3.- Interfaz entre ambas basada en eventos asíncronos. 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 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 6 Diseño e Implementación de un Agente de Usuario SIP Diseño General del sistema Hilo GUI Señalización específica Control de Llamada Gestión Hilos Texto Volumen Pila SIP extendida Generador de Hilos Texto Gestión Hilos Control de Llamada Hilo SIP nº1 Hilo SIP nº2 Hilo SIP nº N... Abrir, Cerrar, Volumen Arquitectura Multimedia

7 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 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. 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.

8 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 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 10 Diseño e Implementación de un Agente de Usuario SIP Diseño Pila SIP ext. (IV): Arquitectura multimedia Hilo Grabación Hilo Reproducción ENVIAR Buffer de Recepción RTP RECIBIR Open Sound System Hilo RTP Micrófono Altavoces Tarjeta de sonido Buffer Salida Buffer Entrada Minimizar la pérdida de paquetes. Evitar pérdida de secuencia. 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

11 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 Párser SIP: clases SUA_Body, SUA_Request y SUA_Response % del protocolo (de un total de 37 cabeceras, 21 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. 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 SDP: clase SUA_Sdp. 30% del protocolo (de un total de 20 cabeceras, 6 soportadas).

12 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). # # 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: # 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 Ventana de presentación y estado del proceso de registro. 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. Selección automática de dirección IP.

13 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 14 Diseño e Implementación de un Agente de Usuario SIP Ruegos y preguntas


Descargar ppt "1 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."

Presentaciones similares


Anuncios Google