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