Repositorio de desarrollo: pgomur/vpbx-flow (privado)
Extensión de Chrome (Manifest V3) que consulta y muestra los datos de una centralita VPBX sin modificar su configuración, presentándolos en un panel relacional para explorar extensiones, colas y rutas de entrada, con búsqueda, selección cruzada, detalle completo y visualización en forma de grafo.
Estado: MVP. Herramienta funcional de consulta, con un alcance deliberadamente acotado. No pretende ser una réplica completa del panel de administración de VPBX. Ver Alcance y decisiones de diseño.
Obtiene de VPBX:
- Extensiones y sus relaciones con las colas.
- Colas y sus miembros.
- Rutas de entrada y sus destinos, cuando pueden identificarse como una cola o una extensión.
La obtención se realiza mediante peticiones concurrentes por lotes y reutiliza la sesión VPBX ya iniciada en el navegador.
Los datos se presentan en tres bloques interconectados:
- Extensiones: permite consultar sus datos y las colas en las que participan.
- Colas: muestra sus datos y sus miembros.
- Rutas de entrada: muestra el destino asociado a cada ruta cuando está disponible.
El panel incluye:
- Búsqueda independiente en cada bloque.
- Selección cruzada: seleccionar un elemento resalta y filtra automáticamente los registros relacionados en los demás bloques.
- Panel de detalle con todos los atributos y parámetros disponibles del elemento seleccionado.
- Controles de vista para vaciar temporalmente la información mostrada o restaurar los datos anteriores.
Incluye una vista alternativa basada en un grafo interactivo D3 que permite explorar visualmente las relaciones entre extensiones, colas y rutas de entrada.
Los datos pueden:
- Exportarse como archivo JSON.
- Importarse desde archivos JSON externos.
Los archivos importados se someten a una validación estricta de estructura y esquema, mostrando errores detallados cuando no cumplen el formato esperado.
La extensión detecta de forma reactiva el estado de la sesión VPBX, incluyendo situaciones como:
- Sesión activa.
- Pantalla de login.
- Sesión caducada.
- Acceso denegado.
- URL incorrecta dentro de
/panel. - Panel de consulta ya abierto.
Los datos obtenidos se almacenan temporalmente en chrome.storage.session. Se conservan mientras el navegador permanece abierto, se eliminan al cerrarlo y pueden borrarse manualmente desde el side panel. El panel muestra además el tamaño de los datos y la fecha de captura.
Soporta tema claro y oscuro, con detección de las preferencias del sistema y persistencia de la elección.
-
Google Chrome o cualquier navegador basado en Chromium con soporte para Manifest V3 y Side Panel API.
-
Una sesión activa en un panel de administración VPBX alojado en un subdominio de
vpbx.me:https://*.vpbx.me/admin
La extensión admite tanto el dominio raíz como sus subdominios, por ejemplo subdominio.vpbx.me.
La extensión no está publicada en la Chrome Web Store y se distribuye internamente mediante archivos .zip.
- Descarga el
.zipde la última versión desde Releases. - Descomprime el archivo en una carpeta local.
- Abre
chrome://extensionsen Chrome. - Activa Modo de desarrollador.
- Pulsa Cargar extensión sin empaquetar y selecciona la carpeta descomprimida.
- El icono de VPBX Flow aparecerá en la barra de extensiones.
También puedes eliminarla y volver a cargarla si es necesario.
- Abre el panel de administración de VPBX (
/admin) e inicia sesión. - Abre el side panel de VPBX Flow desde el icono de la extensión.
- Espera a que aparezca el estado "Sesión activa".
- Pulsa "Obtener datos de VPBX".
- Cuando finalice la captura, abre el panel de consulta.
- Explora los datos mediante búsqueda, selección cruzada, detalle y vista de red.
También puedes abrir un panel vacío en una pestaña nueva e importar manualmente un archivo JSON previamente exportado.
VPBX Flow es un MVP orientado a consulta, no una réplica del panel de administración de VPBX.
El panel de administración contiene muchas otras secciones, como Provisioning, Contactos, Locuciones, Menús interactivos,etc. Estas áreas quedan fuera del alcance actual porque no aportan una relación cruzada suficientemente útil con los datos consultados o porque su obtención requeriría un coste de implementación desproporcionado para el valor aportado.
Las entidades incluidas se seleccionaron porque forman relaciones cruzadas útiles para la consulta operativa:
- Una extensión puede pertenecer a varias colas.
- Una cola puede tener varias extensiones como miembros.
- Una ruta de entrada puede dirigir un número externo hacia una cola o una extensión.
Estas relaciones permiten responder preguntas como:
- ¿En qué colas participa esta extensión?
- ¿Qué extensiones forman esta cola?
- ¿A dónde dirige este número?
- ¿Qué elementos están relacionados con un determinado recurso?
El objetivo es poder responder estas preguntas desde una única vista, sin tener que navegar manualmente por varias secciones del panel de administración.
- Las lecturas se realizan mediante peticiones HTTP a las mismas rutas del panel de administración de VPBX utilizadas por el propio navegador.
- La extensión reutiliza la sesión y las cookies existentes del usuario. No gestiona credenciales propias ni almacena contraseñas.
- La detección de sesión monitoriza las pestañas abiertas y la cookie
JSESSIONID, utilizando debounce para evitar comprobaciones innecesarias. - La consulta de miembros de las colas utiliza concurrencia controlada y procesamiento por lotes para reducir la carga sobre el navegador y la centralita.
- Las operaciones de obtención disponen de un timeout de seguridad de 90 segundos.
- Los datos capturados se almacenan en
chrome.storage.session, evitando su persistencia indefinida. - El almacenamiento permite además mostrar el tamaño de la captura y su timestamp, así como eliminar los datos manualmente.
