Documentación de Microservicios - OnePBX
Introducción
El sistema OnePBX está diseñado para ejecutarse dentro de un entorno basado en microservicios, lo que permite una mayor escalabilidad, flexibilidad y facilidad de mantenimiento. Cada microservicio tiene una función específica dentro de la arquitectura del sistema y se comunica con los demás a través de APIs y bases de datos compartidas.
En esta documentación, se describen los microservicios que componen OnePBX, su funcionalidad y su interacción dentro de la plataforma.
Arquitectura de Microservicios
OnePBX utiliza Docker y Docker Compose para organizar los microservicios en contenedores independientes. Estos microservicios se comunican mediante una red interna definida en Docker, asegurando eficiencia y seguridad en las operaciones.
Los principales microservicios en OnePBX son:
- Servicio de Autenticación
- Servicio de Administración de Extensiones
- Servicio de Gestión de Troncales
- Servicio de IVR
- Servicio de Registro y Monitoreo de Llamadas
- Servicio de Grabaciones
- Servicio de API Gateway
1. Servicio de Autenticación
Descripción
Este servicio maneja el proceso de autenticación y autorización de usuarios dentro de la plataforma.
Funciones
- Validación de credenciales de usuario.
- Generación de tokens de sesión (JWT o cookies de sesión).
- Gestión de roles y permisos.
Comunicación con otros servicios
- Se conecta con la base de datos para validar credenciales.
- Interactúa con el frontend para autenticar usuarios en el sistema.
- Envía información de sesión al backend para validar operaciones seguras.
2. Servicio de Administración de Extensiones
Descripción
Este servicio permite la creación, actualización y eliminación de extensiones SIP dentro del sistema.
Funciones
- Creación de nuevas extensiones SIP.
- Modificación y eliminación de extensiones existentes.
- Configuración de reglas de autenticación para cada extensión.
Comunicación con otros servicios
- Interactúa con el servicio de autenticación para validar permisos de usuario.
- Se comunica con Asterisk para actualizar configuraciones en tiempo real.
- Utiliza la base de datos para almacenar las configuraciones de cada extensión.
3. Servicio de Gestión de Troncales
Descripción
Este servicio maneja la configuración de las troncales SIP y su integración con proveedores de VoIP.
Funciones
- Creación y configuración de nuevas troncales SIP.
- Modificación de troncales existentes.
- Definición de reglas de enrutamiento de llamadas entrantes y salientes.
Comunicación con otros servicios
- Interactúa con la base de datos para almacenar configuraciones.
- Se conecta con Asterisk para actualizar la información de las troncales.
- Trabaja con el servicio de llamadas para enrutar correctamente las comunicaciones.
4. Servicio de IVR
Descripción
Este servicio gestiona los menús de respuesta de voz interactiva (IVR) para las llamadas entrantes.
Funciones
- Creación y modificación de menús IVR.
- Configuración de opciones de selección (teclado numérico o reconocimiento de voz).
- Enrutamiento de llamadas basado en las opciones seleccionadas.
Comunicación con otros servicios
- Se comunica con Asterisk para gestionar los menús de voz.
- Utiliza la base de datos para almacenar las configuraciones de IVR.
- Interactúa con el servicio de llamadas para enrutar correctamente las llamadas.
5. Servicio de Registro y Monitoreo de Llamadas
Descripción
Este servicio maneja el almacenamiento y análisis de los registros de llamadas realizadas dentro del sistema.
Funciones
- Registro de llamadas entrantes y salientes.
- Monitoreo de actividad en tiempo real.
- Generación de reportes sobre duración, origen y destino de llamadas.
Comunicación con otros servicios
- Se conecta con la base de datos para almacenar los registros de llamadas.
- Interactúa con el servicio de autenticación para controlar accesos a los reportes.
- Se comunica con el frontend para mostrar gráficos y estadísticas en la interfaz de usuario.
6. Servicio de Grabaciones
Descripción
Este servicio administra las grabaciones de llamadas y permite su almacenamiento y recuperación.
Funciones
- Grabación automática de llamadas entrantes y salientes.
- Almacenamiento seguro de archivos de audio.
- Descarga y reproducción de grabaciones desde la interfaz web.
Comunicación con otros servicios
- Interactúa con Asterisk para capturar las grabaciones.
- Utiliza la base de datos para indexar grabaciones.
- Se comunica con el frontend para permitir la reproducción de los archivos.
7. Servicio de API Gateway
Descripción
Este servicio actúa como punto de entrada único para las comunicaciones entre el frontend y los demás microservicios.
Funciones
- Enrutamiento de solicitudes a los microservicios correspondientes.
- Aplicación de políticas de seguridad y autenticación.
- Gestión de balanceo de carga y optimización del tráfico.
Comunicación con otros servicios
- Recibe solicitudes desde el frontend y las redirige al servicio adecuado.
- Interactúa con el servicio de autenticación para validar accesos.
- Optimiza la comunicación entre los microservicios, reduciendo latencia y mejorando la eficiencia.
Diagrama de Interacción entre Microservicios
Conclusión
La arquitectura basada en microservicios de OnePBX proporciona una infraestructura escalable y modular para la administración de servidores SIP. Cada servicio cumple una función específica y se comunica con los demás a través de APIs y bases de datos compartidas, garantizando una operación eficiente y segura.
Esta documentación servirá como referencia para desarrolladores y administradores que necesiten comprender el funcionamiento y la interacción de los microservicios dentro de OnePBX.