Programación Orientada a Objetos - ELO329

Proyecto personal - ELO329

Manejo de eventos SIP usando JAIN

Departamento de Electrónica - Universidad Técnica Federico Santa María

David Rodríguez (), Patricio Jaque (), Daniel Góngora ()


  • Descripción
  • Análisis
  • Diagramas UML
  • Pruebas y resultados
  • Código fuente

  • Descripción

    Problema a resolver

    El manejo de aplicaciones o m´quinas dependen de algún sistema que las controle. Si bien los sistemas que los controlan suelen ser robustos, no están exentos de fallar o quedar inservibles por uno u otro problema. Un plan de contingencia que podría ayudar a minimizar este problema es poder acceder al control de estas operaciones por medio de un medio distinto a un ordenador, por ejemplo, un Teléfono Ip. En ciertas ocasiones, la mantención de un determinado servicio conlleva muchas tareas rutinarias que, por un lado, vuelven dependiente a una organización de la disponibilidad del experto a cargo, y por el otro, mantienen al encargado atado a realizar operaciones simples y rutinarias, que perfectamente otra persona podría realizar... si tuviese los conocimientos adecuados.

    Bosquejo de solución

    Nuestra solución busca facilitar las tareas de mantención y/o reparación, de carácter más simple o comunes, de forma de que puedan ser efectuadas por un operador sin mayores conocimientos, en casos de excepción donde no se cuente con la asesoría de un experto. Se propone una interfaz de telefonía ip, que comunica a un equipo telefónico con el servicio defectuoso, y le permite de forma remota y de forma sencilla, interactuar con él y realizar las operaciones necesarias para volver a un estado de funcionamiento adecuado. Se usara la libreria JAIN-SIP en Java que provee un stack-sip para el manejo de sesiones, y un softphone o teléfono ip para generar los eventos a reconocer, y con esto ejectuar alguna acción.

    Análisis

    Nuestro sistema actúa como un framework entre un equipo telefónico IP (softphone o teléfono IP) y otro sistema final, que puede ser tanto un servicio, un equipo o cualquier interfaz que implemente la comunicación con el framework.

    Diagramas UML

    Diagrama de casos de uso
    Casos de uso del Sistema
    Diagrama de clases de la solución
    Tarjetas CRC

    Viewer
    Método main AppValveViewer
    TelematicApp

    AppValveViewer
    Implementa JFrame principal y elementos Swing TelematicApp

    Valve
    Modela el funcionamiento de una válvula.

    TelematicApp
    Métodos de escucha.
    Sistema válvulas que modela reactor.
    Valve
    Sip

    SIP
    Implementación Java de SIP.

    Pruebas y resultados

    El proyecto fue desarrollado en Java utilizando Eclipse como entorno de desarrollo.
    Además se hizo uso de la librería Jain-SIP para la implementación Java del protocolo de señalización SIP Para probar el proyecto, se puede obtener el código acá

    Alternativamente, se puede obtener la última copia a través de svn
    $ svn checkout http://rtpsipoverjava.googlecode.com/svn/trunk/ rtpsipoverjava-read-only

    Probando

    En la carpeta raíz del proyecto, existe un archivo llamado .project . Este archivo hace posible que el proyecto sea importado en el entorno de desarrollo Eclipse.
    Si no se posee eclipse, el proyecto puede ser generado mediante el tradicional comando make.
    Las opciones soportadas por make son:

  • $ make doc
    Genera la documentación del proyecto en doc/
  • $ make
    Genera las clases precompiladas de Java
  • $ make run
    Lanza la aplicación
    Secuencia de operación

    Haga click para ver en tamaño completo


    En la secuencia anterior se puede apreciar:

    1. Reactor operando normalmente, se visualiza monitor del reactor y teléfono ip (en éste caso, el softphone linphone)
    2. El reactor sufre una avería y comienza a subir la temperatura del mismo.
    3. El operador a cargo realiza una llamada de control al reactor. Se aprecia en el monitor del reactor, que la llamada está siendo procesada.
    4. La llamada de control finaliza y el reactor es apagado, disminuyendo así gradualmente su temperatura.