Introducción: La Búsqueda del Control Absoluto
En el dinámico sector de los Proveedores de Servicios de Internet (ISP), la escalabilidad no es una opción, es una necesidad. Pero el crecimiento descontrolado conduce al caos. Tareas manuales, información descentralizada y falta de visibilidad sobre la salud de la red y las finanzas son los enemigos silenciosos de la rentabilidad.
Conscientes de esto, nos propusimos una meta audaz: construir un sistema de gestión (ISPMS) propio, desde cero. No queríamos una solución genérica, sino un traje a la medida, una plataforma que se integrara a nivel molecular con nuestra infraestructura MikroTik y nuestros procesos de negocio. Este es el relato detallado, función por función, de cómo lo logramos.
Capítulo 1: El Fundamento - Arquitectura y Módulos Base
Todo gran edificio necesita cimientos sólidos. La arquitectura de nuestro sistema se basó en tecnologías probadas, robustas y flexibles: un servidor Linux (Ubuntu), con una base de datos MySQL (MariaDB) y un backend desarrollado íntegramente en PHP puro, sin frameworks, para tener un control total sobre el código.
Los primeros módulos fueron los pilares de la gestión de clientes:
-
Gestión de Routers: Más que una lista de equipos. Cada router en el sistema almacena su IP de gestión, credenciales de API (usuario, contraseña, puerto) y, crucialmente, la configuración para la automatización de tareas, un punto que detallaremos más adelante.
-
Gestión de Sectoriales/Nodos: Un mapa lógico de nuestra infraestructura, permitiéndonos asociar cada cliente a un punto de acceso específico, facilitando la sectorización de averías.
-
Gestión de Clientes: El núcleo inicial del sistema. Un CRUD completo para registrar, modificar y eliminar abonados. Cada cliente se asocia a un router y a un plan, y su estado (
Activo
,Suspendido
,Retirado
) está directamente vinculado a su servicio en el MikroTik. -
Gestión de Usuarios y Roles: Un sistema para administrar quién puede acceder al panel y qué puede hacer, sentando las bases para un entorno multi-usuario (administradores, técnicos, soporte).
Capítulo 2: El Corazón de la Red - La Magia de la API de MikroTik
Aquí es donde el software se fusiona con el hardware. La integración con la API de RouterOS fue la clave para pasar de un simple registro a un sistema de gestión activo.
2.1. Control de Ancho de Banda (Simple Queues): Para cada cliente de tipo "Cola Simple", el panel crea una regla en /queue simple
con los siguientes parámetros extraídos del plan:
-
name
: Se asigna elid_cliente
del panel. Esta decisión fue crucial para poder identificar y monitorear la cola de forma inequívoca. -
target
: La dirección IP del cliente. -
max-limit
: La velocidad máxima de subida y bajada (ej.10M/20M
). -
priority
: Un valor de 1 a 8 para priorizar el tráfico en momentos de congestión.
2.2. La Eficiencia del Reúso (Parent Queues & PCQ): Para optimizar el uso de nuestro ancho de banda, implementamos un modelo de agregación (reúso) avanzado:
-
Cola Padre (
Parent Queue
): Cuando un plan tiene un Nivel de Reúso > 1, el sistema crea automáticamente una cola padre en el router (ej.PQ_PlanID_5
). Esta cola agrupa a todos los clientes de ese plan en ese router. -
Límite Garantizado (
limit-at
): La cola simple del cliente (hijo) se configura con unlimit-at
, que es la velocidad mínima garantizada. La calculamos con la fórmula:Velocidad del Plan / Nivel de Reúso
. -
Distribución Equitativa (PCQ): Tanto la cola padre como las colas hijo utilizan tipos de cola
PCQ
(Per Connection Queueing
), asegurando que, bajo congestión, el ancho de banda disponible en la cola padre se distribuya de forma justa entre los clientes activos.
2.3. Mejorando la Experiencia (Ráfagas/Bursts): Para que los clientes sientan una navegación más ágil, integramos la configuración de ráfagas. El panel permite definir cuatro parámetros en cada plan, que se aplican directamente a la cola del cliente:
-
burst-limit
: La velocidad pico que puede alcanzar temporalmente. -
burst-threshold
: El umbral por debajo del cual el cliente debe estar para que la ráfaga se "recargue". -
burst-time
: El período en segundos sobre el que se calcula el promedio de consumo. -
Se descubrió que es vital que
burst-time
sea mayor a 0 para que la ráfaga se active correctamente.
2.4. La Alternativa Robusta (Perfiles PPPoE): Para clientes PPPoE, la lógica es aún más profunda. En lugar de una cola, el sistema crea un perfil en /ppp profile
. La pieza central es la construcción de la compleja cadena rate-limit
, que encapsula toda la política de ancho de banda en una sola línea. Nuestro sistema la construye en el orden exacto que MikroTik requiere: rate-limit = [max-limit U/D] [burst-limit U/D] [burst-threshold U/D] [burst-time U/D] [priority] [limit-at U/D]
Además, se configuran otros parámetros del perfil como local-address
, remote-address
(apuntando a un pool de IPs), servidores DNS y only-one
para prevenir sesiones múltiples.
Capítulo 3: La Automatización - El Sistema Trabajando 24/7
3.1. Tareas Programadas (Facturación, Cortes y Recordatorios): Una de las funcionalidades más potentes fue la automatización de tareas repetitivas. Desde el formulario de cada router, se puede configurar el día y la hora para ejecutar:
-
Generación de facturas.
-
Corte de servicio a morosos.
-
Envío de recordatorios de pago.
-
Reactivación de clientes que ya pagaron. Al guardar, el sistema genera dinámicamente archivos
.bat
en el servidor y crea (o actualiza) las tareas correspondientes en el Programador de Tareas de Windows, logrando una automatización robusta y nativa del sistema operativo del servidor. Se incluyó un script desincronizar_tareas.php
para regenerar estas tareas en caso de migración o corrupción.
3.2. Operaciones Masivas (Carga y Actualización de Clientes):
-
Carga Masiva por CSV: Creamos una herramienta de dos pasos. Primero, se sube un archivo CSV con los datos de los nuevos clientes. Segundo, el sistema muestra una tabla interactiva donde se puede asignar masivamente el Plan, Router y Sectorial a los clientes recién cargados antes de procesarlos y crearlos en el MikroTik.
-
Actualizar Clientes por Plan: Una función para aplicar cambios de un plan a todos los clientes suscritos a él. Permite filtrar por router, seleccionar clientes específicos (excluyendo planes de infraestructura) y aplicar los nuevos parámetros, recalculando automáticamente las colas padre afectadas.
-
Eliminación Masiva: En todos los listados principales (clientes, facturas, etc.) se añadieron checkboxes y un botón de "Eliminar Seleccionados" para agilizar la depuración de datos.
Capítulo 4: Visibilidad Total - Monitoreo y Diagnóstico
4.1. El Pulso del Cliente (Estadísticas de Consumo): El desarrollo de esta función fue una odisea técnica. El objetivo era simple: una gráfica de consumo en tiempo real. El problema: siempre mostraba 0/0 Mbps
. El proceso de depuración reveló:
-
El Identificador Correcto: La única forma fiable de encontrar la cola de un cliente era usar su
id_cliente
como elname
de la cola. -
La Falla de Versión: El verdadero culpable era la versión de RouterOS (v6.x), que no soporta el comando
/queue/simple/monitor
. -
La Solución: Cambiamos la estrategia para usar
/queue/simple/print
, solicitando la propiedadrate
. Esta propiedad devuelve el tráfico en tiempo real en formatoupload/download
en bits por segundo, que luego procesamos para alimentar la gráfica. ¡La gráfica cobró vida!
4.2. La Salud de la Infraestructura:
-
Monitor de Estado de Red: Una página dedicada que ejecuta un
ping
desde el MikroTik a todos los routers y clientes, mostrando su estado en tiempo real. Esto permite un diagnóstico de conectividad mucho más preciso que un ping desde el servidor. -
Estadísticas de Router: Una vista que se conecta a un router y grafica el consumo en tiempo real de cada una de sus interfaces físicas (
ether
,sfp
,wlan
), utilizando el comentario de la interfaz en MikroTik como título del gráfico para una fácil identificación. -
Diagnóstico Remoto (ARP y Neighbors): Añadimos vistas que permiten consultar las tablas ARP y de vecinos (Neighbors) de cualquier router directamente desde el panel, agilizando la resolución de problemas sin necesidad de acceder por WinBox.
Capítulo 5: El Motor Financiero - Gestión Integral del Negocio
5.1. Facturación Flexible y Multi-País:
-
Configuración Detallada: Creamos una sección de configuración de facturación donde se define todo: datos fiscales, moneda por defecto, prefijo y consecutivo de facturas, métodos y monedas de pago permitidos.
-
Sistema de Impuestos Dinámico: El sistema maneja un impuesto principal (IVA/VAT) y uno secundario (IGTF). Se puede configurar si el impuesto está incluido en el precio del plan o si se añade al final. El IGTF se calcula y aplica automáticamente solo en pagos con divisas extranjeras, una lógica crucial para operaciones en Venezuela.
-
Generación y Envío: El panel permite generar facturas manualmente o de forma masiva, y enviarlas por correo electrónico usando plantillas personalizables.
5.2. Comunicación Inteligente con el Cliente:
-
Gestor de Plantillas: Un sistema completo con un editor WYSIWYG (TinyMCE) para crear y modificar plantillas de email y documentos (PDF de facturas). Utiliza un sistema de placeholders (ej.
{CLIENTE_NOMBRE_COMPLETO}
,{FACTURA_TOTAL_GENERAL}
) para personalizar cada comunicación. -
Notificaciones Multi-canal: Se desarrolló la infraestructura para enviar notificaciones vía Email (SMTP), Telegram y WhatsApp. La integración con la API de WhatsApp Business fue particularmente profunda, gestionando la obtención y renovación automática de tokens de acceso y utilizando plantillas específicas para confirmar pagos recibidos.
5.3. El Cerebro Contable - Más Allá de la Facturación: Este fue el módulo más complejo y transformador. Un sistema de contabilidad por partida doble dentro del mismo panel.
-
Datos Maestros: Se gestionan
Cuentas Contables
(dónde está el dinero),Categorías
(en qué se usa),Proveedores
eImpuestos
(un sistema flexible para definir cualquier tipo de impuesto aplicable a los gastos). -
Transacciones Conectadas: Al registrar un pago de un cliente en el módulo de facturación, se genera automáticamente una transacción de ingreso en el módulo de contabilidad, asociándola a la cuenta bancaria correcta. Los gastos se registran manualmente, permitiendo aplicar los impuestos definidos.
-
Libro de Transacciones y Anulación: Un libro mayor muestra todos los movimientos, con filtros potentes. Crucialmente, las transacciones no se borran; se anulan. Este proceso revierte el impacto financiero en la cuenta correspondiente y marca el registro como "Anulado", manteniendo un rastro de auditoría impecable.
-
Dashboard Financiero: La página de inicio de contabilidad ofrece un vistazo instantáneo a la salud del negocio: ingresos, gastos, utilidad y saldo total del mes en curso.
Capítulo 6: La Experiencia de Usuario - Un Panel para Humanos
6.1. Diseño Adaptable (Responsive First
): Desde el principio, se diseñó para ser funcional en cualquier dispositivo. En pantallas pequeñas, las tablas de datos ocultan columnas secundarias y muestran un botón +
o una flecha que, al ser pulsado, expande la fila para revelar toda la información y los botones de acción, que se convierten en iconos con descripciones emergentes.
6.2. El Dashboard Inteligente: El dashboard principal evolucionó para convertirse en un centro de mando, mostrando tarjetas con:
-
Estado general de la red.
-
Distribución de clientes por router.
-
Top de planes más vendidos.
-
Gráfico de ingresos de los últimos meses.
6.3. La Documentación Viva (El Manual): Dentro del propio sistema, se creó un manual de usuario que se actualiza constantemente con cada nueva función, asegurando que todo el personal pueda aprovechar al máximo las capacidades del panel.
Conclusión: ¿Necesitas una Solución a tu Medida?
Este viaje a través del desarrollo de nuestro sistema de gestión demuestra una verdad fundamental: las herramientas genéricas ofrecen soluciones genéricas. Para alcanzar la máxima eficiencia y tener un control real sobre una operación de ISP, se necesita una solución pensada y construida para los desafíos específicos del negocio.
En Sitonline, no solo conectamos hogares y empresas; construimos la tecnología que lo hace posible. La experiencia adquirida en este exhaustivo proyecto nos ha posicionado como expertos en el desarrollo de software a medida para el sector de las telecomunicaciones.
Si eres un ISP o WISP y te sientes identificado con los desafíos descritos; si tu crecimiento se ve frenado por procesos manuales y sistemas desconectados; si sueñas con un panel de control unificado que te dé una visión 360° de tu red y tus finanzas, estamos aquí para ayudarte.
Ofrecemos servicios de consultoría y desarrollo de software especializado, utilizando las mismas tecnologías y la misma filosofía que nos permitieron construir nuestro propio éxito.
Contacta con nosotros aquí y comencemos a diseñar el futuro de tu operación.