shkolakz.ru 1 2 3 ... 14 15

1.Introducción



Por diseño de alto nivel entendemos aquella parte de nuestro proyecto que define de forma explícita pero general el comportamiento del mismo. Vamos a centrarnos en explicar qué hace nuestro agente de usuario SIP y cómo lo hace, pero dejaremos la definición detallada de la implementación para la parte en la que se trata el diseño de bajo nivel. En esta sección no mostraremos código, ni expondremos la organización del mismo, ni relataremos las clases usadas. Habrá que tener muy presentes conocimientos concretos acerca de SIP, y la introducción que se realizó en el documento nº1 MEMORIA puede ser muy útil.


Para acometer este objetivo vamos a marcarnos una serie de puntos que nos serán de gran utilidad para intentar explicar de forma clara este diseño. Podemos enumerar los tres siguientes:



  • Diseño de la interfaz de usuario.

  • Diseño del esquema general de la pila SIP ampliada.

  • Diseño de la señalización específica GUI-pila.


En el primer punto detallaremos qué es lo que ve el usuario al ejecutar nuestro agente y cómo puede operar con él de forma sencilla (configuración, registro, realizar y recibir llamadas, pregunta de capacidades,... etc.).

En el segundo punto veremos cómo la pila SIP realiza estas actividades usando el protocolo SIP (y tal vez también otros si fueran necesarios). Como es lógico se produce un mapeo entre lo que el usuario quiere y la implementación de esto. Además, se da un mapeo más explícito entre las 'llamadas' a la pila que la interfaz gráfica realiza (y las respuestas que obtiene asociadas) y las acciones realizadas por la pila. Toda esta señalización entre la pila y la interfaz la denominaremos señalización específica ó metaseñalización para diferenciarla de la señalización SIP y de otras (por ejemplo la Q.931 o la H.323) porque se define específicamente para este proyecto. Será una señalización lo suficientemente sencilla para abstraer el funcionamiento SIP a unos cuantos mensajes, pero también lo suficientemente específica como para dar funcionalidades complejas.



La idea básica de este diseño en tres partes consiste separar claramente lo que es funcionalidad SIP y lo que no lo es. Este proyecto busca construir un soft-phone, o teléfono para realizar llamadas VoIP. Pero SIP ofrece muchas más posibilidades: podríamos querer diseñar un contestador automático, un servidor de streaming de vídeo/audio unidireccional o incluso un 'recolector' de flujos multimedia en múltiples formatos para redistribuirlos luego en formato de una sesión SIP (podríamos pensar en encorsetar en SIP formatos WindowsMedia de Microsoft, QuickTime de Apple ó Real de Real Networks).


El punto fuerte (ó débil, dependiendo del resultado final) de este esquema es la definición de la interfaz entre la pila y los usuarios de la pila (interfaces gráficas, scripts, programas para la consola,... etc.). Deberá ser muy sencilla para aplicaciones que busquen unas prestaciones limitadas, pero muy completa para aquellas que requieran de un control fuerte sobre las operaciones. Además, deberá mantenerse constante a lo largo de las versiones que se puedan producir en el futuro, y para ello, debe ser expansible, sin que la inclusión de nuevos métodos modifique el funcionamiento de los antiguos. Por lo tanto, se introduce el concepto de señalización específica: debe consistir en procedimientos más sencillos que los que brinda SIP a bajo nivel, pero lo más completa posible. Esta pseudo-señalización tiene una dificultad añadida en el hecho de que SIP todavía no se encuentra en un punto estable de su desarrollo, y cada día se añaden características o se modifican las existentes. Como se puede comprobar, el problema de su diseño es relativamente complejo. Más adelante veremos las soluciones aportadas.


La siguiente gráfica muestra un ejemplo del diseño propuesto en tres módulos:



Figura 1: Diseño modular del agente de usuario SIP




<< предыдущая страница   следующая страница >>