Saltar al contenido principal

Guía de Operaciones

Procedimientos operativos diarios

Dependencia Crítica: OmniMessage Core​

IMPORTANTE: La puerta de enlace SMPP de OmniMessage no puede funcionar sin acceso a OmniMessage Core. Todo el procesamiento de mensajes ocurre en OmniMessage - la puerta de enlace es solo un traductor de protocolo.

Si OmniMessage se vuelve inaccesible:

  • ❌ No se pueden enviar nuevos mensajes
  • ❌ No se pueden recuperar mensajes pendientes
  • ❌ No se puede informar el estado de entrega
  • ❌ El sistema parece colgarse o agotar el tiempo

Verificar la Salud de OmniMessage:

# Probar conectividad API
curl -k https://omnimessage-core.example.com:8443/api/system/health

# Verificar URL API configurada en los registros
grep api_base_url /opt/omnimessage-smpp/config/runtime.exs

Operaciones Diarias​

Verificación de Salud Matutina​

Realizar estas verificaciones al inicio de cada día:

  1. Acceder al Panel Web

    • URL: https://your-server:8087
    • Verificar si el panel se carga correctamente
  2. Verificar el Estado de Conexión

    • Navegar a: SMPP → Estado en Vivo
    • Verificar que todas las conexiones muestren "Conectado" (verde)
    • Anotar cualquier enlace desconectado

    Página de Estado en Vivo SMPP - Resumen de todas las conexiones entre pares

  3. Revisar Métricas de Mensajes

    • Navegar a: pestaña de Cola
    • Verificar que los conteos de mensajes sean razonables
    • Asegurarse de que no haya acumulación inesperada en la cola
  4. Verificar Registros del Sistema

    • Navegar a: pestaña de Registros
    • Buscar mensajes de error (rojo)
    • Anotar cualquier patrón de advertencia
  5. Revisar Métricas de Prometheus

    • curl http://localhost:4000/metrics
    • O verificar paneles de Grafana
    • Asegurarse de que las tasas de mensajes sean normales

Monitoreo Continuo​

Configurar alertas para:

  • Fallos de conexión (> 2 minutos fuera de servicio)
  • Altas tasas de fallos de entrega (> 5%)
  • Sin tráfico durante períodos prolongados
  • Desconexiones frecuentes

Ver MONITORING.md para la configuración de alertas.


Comprendiendo el Enrutamiento de Mensajes​

La puerta de enlace enruta mensajes entre OmniMessage Core y conexiones SMPP utilizando dos campos clave:

  • dest_smsc - Enruta mensajes salientes a enlaces de cliente. Cuando OmniMessage coloca un mensaje en la cola con dest_smsc: "vodafone_uk", el enlace de cliente de la puerta de enlace llamado vodafone_uk lo recoge y lo envía a través de SMPP submit_sm.
  • source_smsc - Enruta mensajes entrantes a enlaces de servidor. Cuando OmniMessage coloca un mensaje en la cola con source_smsc: "partner_acme", la puerta de enlace lo entrega a los clientes conectados al enlace de servidor llamado partner_acme a través de SMPP deliver_sm.

Distinción clave: Los enlaces de cliente envían PDUs submit_sm (la puerta de enlace es el ESME que se presenta a un operador). Los enlaces de servidor envían PDUs deliver_sm (la puerta de enlace es el SMSC que entrega a un ESME conectado).


Registro del Frontend​

La puerta de enlace se registra automáticamente con OmniMessage Core para que el backend sepa qué conexiones SMPP están disponibles para el enrutamiento de mensajes.

  • Nombre de registro: Controlado por la configuración smsc_name (predeterminado: "smpp_gateway", env: SMSC_NAME)
  • Latido: Enviado cada 60 segundos para mantener el registro activo
  • Expiración: El registro expira en el backend después de 90 segundos sin un latido
  • Registro por enlace: Cada par habilitado se registra individualmente bajo su clave de enrutamiento, por lo que el nombre del frontend registrado es igual al dest_smsc en el que el backend enruta:
    • Pares de cliente: registrados bajo su queue configurada (si está configurada), de lo contrario, el nombre del par simple. Varios pares de cliente que comparten una queue por lo tanto se registran bajo ese único nombre compartido.
    • Enlaces de servidor: registrados bajo su nombre de enlace.

Si la puerta de enlace se detiene o pierde conectividad con OmniMessage Core, sus registros expiran y el backend deja de enrutar mensajes hacia ella.

Solución de problemas: Si los mensajes no se están enrutando a la puerta de enlace, verifique:

  1. Registros para entradas "frontend_register"
  2. Que el smsc_name coincida con lo que OmniMessage espera
  3. Conectividad de red a OmniMessage Core (api_base_url)

Gestión de Conexiones SMPP​

Cómo se Configuran los Pares SMPP​

Las conexiones SMPP (pares) se pueden configurar utilizando dos métodos:

Método 1: Interfaz Web (Recomendado)​

  • Ventaja: Los cambios tienen efecto inmediato, no se requiere reinicio
  • Ubicación: SMPP → Pares de Cliente / Pares de Servidor
  • Operaciones: Agregar, editar, eliminar pares
  • Persistencia: Almacenados en la base de datos Mnesia
  • Mejor para: Operaciones diarias, pruebas, cambios rápidos

Método 2: Archivo de Configuración​

  • Ventaja: Configuración como código, control de versiones
  • Ubicación: /opt/omnimessage-smpp/config/runtime.exs
  • Operaciones: Definir pares en la configuración de Elixir
  • Persistencia: Basada en archivo, sobrevive a reinicios
  • Requiere: Reinicio del servicio después de los cambios
  • Mejor para: Configuración inicial, infraestructura como código

Nota: Los cambios en la interfaz web se almacenan por separado y anulan la configuración del archivo.

Ver CONFIGURATION.md para referencia del archivo de configuración.

Agregar una Nueva Conexión de Cliente​

Propósito: Configurar la puerta de enlace para actuar como un ESME (cliente) conectándose al SMSC (servidor) de un operador

Preparación: Reunir información del operador:

  • Nombre de host/IP del servidor SMPP
  • Número de puerto (generalmente 2775)
  • ID del sistema (nombre de usuario)
  • Contraseña
  • Tipo de enlace (generalmente transceptor)
  • Límite TPS

Elija uno de los siguientes métodos:

Opción A: A través de la Interfaz Web (Recomendado)​

Ventajas: Efecto inmediato, no se requiere reinicio

Pasos:

  1. Navegar a Pares de Cliente:

    • Abrir la Interfaz Web: https://your-server:8087
    • Navegar a: SMPP → Pares de Cliente
  2. Agregar Nuevo Par:

    • Hacer clic en "Agregar Nuevo Par de Cliente"
    • Completar el formulario:
      • Nombre: vodafone_uk (identificador único)
      • Host: smpp.vodafone.co.uk
      • Puerto: 2775
      • ID del Sistema: your_username
      • Contraseña: your_password
      • Tipo de Enlace: Transceptor
      • Límite TPS: 100
      • Frecuencia de Verificación de Cola: 1000
    • Hacer clic en "Guardar"

    Formulario de Edición de Par de Cliente - Configurar parámetros de conexión del operador

  3. La Conexión se Establece Automáticamente:

    • La puerta de enlace intenta inmediatamente la conexión
    • Navegar a: SMPP → Estado en Vivo
    • El estado debería cambiar a "Conectado" (verde) dentro de 10-30 segundos
    • Verificar la pestaña de Registros para el mensaje de enlace exitoso
  4. Probar el Flujo de Mensajes:

    • Navegar a: pestaña de Cola
    • Enviar un mensaje de prueba con dest_smsc coincidiendo con el nombre del enlace
    • Monitorear en Estado en Vivo para la transmisión
    • Verificar la confirmación de entrega

Opción B: A través del Archivo de Configuración​

Ventajas: Infraestructura como código, control de versiones

Pasos:

  1. Editar el Archivo de Configuración:

    sudo nano /opt/omnimessage-smpp/config/runtime.exs
  2. Agregar Nuevo Enlace a la Configuración:

    config :omnimessage_smpp, :binds, [
    # Enlaces existentes...

    # Agregar nuevo enlace
    %{
    name: "vodafone_uk",
    mode: :client,
    bind_type: :transceiver,
    host: "smpp.vodafone.co.uk",
    port: 2775,
    system_id: "your_username",
    password: "your_password",
    tps_limit: 100,
    queue_check_frequency: 1000,

    # Opcional: fijar la IP/puerto de origen local si el operador los blanquea
    bind_source_ip: "10.20.30.40",
    bind_source_port: 5000,

    # Opcional: compartir una cola de backend entre varios enlaces (por defecto se usa el nombre)
    queue: "vodafone_uk"
    }
    ]

    Ver CONFIGURATION.md para la lista completa de parámetros de enlace de cliente, incluyendo bind_source_ip, bind_source_port, y queue.

  3. Guardar y Reiniciar el Servicio:

    # Guardar archivo (Ctrl+X, Y, Enter en nano)

    # Reiniciar servicio
    sudo systemctl restart omnimessage-smpp
  4. Verificar Conexión:

    • Navegar a: SMPP → Estado en Vivo
    • Encontrar nueva conexión
    • El estado debería ser "Conectado" (verde)
    • Verificar registros para enlace exitoso
  5. Probar el Flujo de Mensajes:

    • Navegar a: pestaña de Cola
    • Enviar un mensaje de prueba con dest_smsc coincidiendo con el nuevo nombre de enlace
    • Monitorear en Estado en Vivo para la transmisión
    • Verificar la confirmación de entrega

Agregar un Enlace de Servidor​

Propósito: Configurar la puerta de enlace para actuar como un SMSC (servidor) aceptando conexiones de ESMEs externas (clientes asociados)

Preparación:

  1. Generar Credenciales:

    • Crear un ID de sistema único: partner_name
    • Crear una contraseña fuerte
    • Documentar y compartir de manera segura con el socio
  2. Obtener Información del Socio:

    • Direcciones IP de origen del socio
    • Volumen de mensajes esperado (para límite TPS)
    • Tipos de enlace requeridos

Elija uno de los siguientes métodos:

Opción A: A través de la Interfaz Web (Recomendado)​

Ventajas: Efecto inmediato, no se requiere reinicio

Pasos:

  1. Navegar a Pares de Servidor:

    • Abrir la Interfaz Web: https://your-server:8087
    • Navegar a: SMPP → Pares de Servidor
  2. Agregar Nuevo Par de Servidor:

    • Hacer clic en "Agregar Nuevo Par de Servidor"
    • Completar el formulario:
      • Nombre: partner_acme (identificador único)
      • ID del Sistema: acme_corp
      • Contraseña: secure_password_123
      • Tipos de Enlace Permitidos: Seleccionar todos (Transmisor, Receptor, Transceptor)
      • Lista Blanca de IP: 203.0.113.0/24 (separados por comas para múltiples)
      • Límite TPS: 50
      • Frecuencia de Verificación de Cola: 1000
    • Hacer clic en "Guardar"

    Formulario de Edición de Par de Servidor - Configurar parámetros de conexión del socio entrante

  3. Puerta de Enlace Lista para la Conexión:

    • El par de servidor ahora está activo y esperando la conexión del socio
    • No se requiere reinicio
  4. Compartir Información con el Socio:

    • Dirección IP de la puerta de enlace
    • Puerto: 2775
    • ID del Sistema: acme_corp
    • Contraseña: secure_password_123
    • Tipo de Enlace: Como se configuró
  5. Esperar la Conexión del Socio:

    • Navegar a: SMPP → Estado en Vivo
    • Observar la conexión entrante
    • Verificar el éxito de la autenticación
    • Comprobar que la IP coincida con la lista blanca

Opción B: A través del Archivo de Configuración​

Ventajas: Infraestructura como código, control de versiones

Pasos:

  1. Editar el Archivo de Configuración:

    sudo nano /opt/omnimessage-smpp/config/runtime.exs
  2. Agregar Enlace de Servidor y Configuración de Escucha:

    # Agregar a la lista de server_binds
    config :omnimessage_smpp, :server_binds, [
    # Enlaces de servidor existentes...

    # Agregar nuevo enlace de servidor
    %{
    name: "partner_acme",
    system_id: "acme_corp",
    password: "secure_password_123",
    allowed_bind_types: [:transmitter, :receiver, :transceiver],
    ip_whitelist: ["203.0.113.0/24"],
    tps_limit: 50,
    queue_check_frequency: 1000
    }
    ]

    # Asegurarse de que la configuración de escucha exista (solo se necesita una vez)
    config :omnimessage_smpp, :listen, %{
    host: "0.0.0.0",
    port: 2775,
    max_connections: 100
    }
  3. Guardar y Reiniciar el Servicio:

    sudo systemctl restart omnimessage-smpp
  4. Compartir Información con el Socio:

    • Dirección IP de la puerta de enlace
    • Puerto: 2775
    • ID del Sistema: acme_corp
    • Contraseña: secure_password_123
    • Tipo de Enlace: Como se configuró
  5. Esperar la Conexión del Socio:

    • Navegar a: SMPP → Estado en Vivo
    • Observar la conexión entrante
    • Verificar el éxito de la autenticación
    • Comprobar que la IP coincida con la lista blanca

Modificar Conexión Existente​

Propósito: Actualizar parámetros de conexión (límites TPS, contraseñas, lista blanca de IP, etc.)

Elija uno de los siguientes métodos:

Opción A: A través de la Interfaz Web (Recomendado)​

Ventajas: Efecto inmediato, no se requiere reinicio

Pasos:

  1. Navegar a Pares:

    • Abrir la Interfaz Web: https://your-server:8087
    • Para conexiones de cliente: SMPP → Pares de Cliente
    • Para conexiones de servidor: SMPP → Pares de Servidor
  2. Editar Par:

    • Encontrar el par a modificar
    • Hacer clic en el botón "Editar"
    • Actualizar los parámetros deseados:
      • Cambios comunes: límite TPS, contraseña, lista blanca de IP, host/puerto
    • Hacer clic en "Guardar"
  3. Los Cambios se Aplican Inmediatamente:

    • La conexión se reconecta automáticamente con la nueva configuración
    • No se requiere reinicio del servicio
    • Navegar a: SMPP → Estado en Vivo para verificar
  4. Verificar Cambios:

    • Comprobar que la conexión se establezca con éxito
    • Monitorear la pestaña de Registros en busca de errores
    • Probar el flujo de mensajes si es aplicable

Opción B: A través del Archivo de Configuración​

Ventajas: Infraestructura como código, control de versiones

Pasos:

  1. Editar el Archivo de Configuración:

    sudo nano /opt/omnimessage-smpp/config/runtime.exs
  2. Modificar Parámetros de Enlace:

    • Encontrar el enlace en la lista de :binds o :server_binds
    • Actualizar los parámetros deseados:
      • Cambios comunes: límite TPS, contraseñas, lista blanca de IP, host/puerto
    • Ejemplo:
      %{
      name: "vodafone_uk",
      # ... otros parámetros
      tps_limit: 150, # Cambiado de 100
      password: "new_password" # Contraseña actualizada
      }
  3. Guardar y Reiniciar el Servicio:

    sudo systemctl restart omnimessage-smpp
  4. Verificar Cambios:

    • Navegar a: SMPP → Estado en Vivo
    • Comprobar que la conexión se establezca con éxito
    • Monitorear registros en busca de errores
    • Probar el flujo de mensajes

Eliminar una Conexión​

Propósito: Descontinuar una conexión SMPP

Pasos:

  1. Notificar a las Partes Interesadas:

    • Informar al operador/socio
    • Coordinar ventana de inactividad
  2. Desconectar a través de la Interfaz Web:

    • Navegar a: SMPP → Estado en Vivo
    • Encontrar la conexión
    • Hacer clic en "Eliminar Conexión"
    • Confirmar acción
  3. Eliminar Configuración:

    • Navegar a: SMPP → Pares de Cliente/Servidor
    • Encontrar la conexión
    • Hacer clic en "Eliminar"
    • Confirmar eliminación
  4. Verificar Eliminación:

    • Comprobar Estado en Vivo - la conexión debería haber desaparecido
    • Revisar registros para un apagado limpio

Habilitar y Deshabilitar Conexiones​

Propósito: Tomar temporalmente una conexión fuera de línea sin eliminar su configuración

Los pares tienen un campo enabled que controla si están activos. Los pares deshabilitados conservan toda su configuración pero no establecen ni aceptan conexiones.

A través de la Interfaz Web:

  1. Navegar a: SMPP → Pares de Cliente o Pares de Servidor
  2. Encontrar el par a deshabilitar
  3. Hacer clic en "Editar"
  4. Desmarcar la casilla "Habilitado"
  5. Hacer clic en "Guardar"

La conexión se eliminará inmediatamente. Para volver a habilitar, repetir los pasos y marcar la casilla nuevamente.

Casos de uso:

  • Ventanas de mantenimiento planificadas del operador
  • Pausar temporalmente una conexión de socio durante una investigación
  • Deshabilitar una conexión mientras se espera nuevas credenciales

Comportamiento de Conexión​

Lógica de Reconexión​

Cuando un enlace de cliente se desconecta inesperadamente, la puerta de enlace intenta reconectarse automáticamente:

  • Intervalo de reintento: Cada 30 segundos
  • Inicio escalonado: Cuando varios enlaces se inician simultáneamente (por ejemplo, después de un reinicio del servicio), las conexiones se escalonan con retrasos de 500 ms entre cada enlace para evitar abrumar la red
  • Inicio resiliente: Si un operador no es accesible al inicio de la puerta de enlace, la puerta de enlace se inicia con éxito y reintenta la conexión en segundo plano

La puerta de enlace envía periódicamente PDUs SMPP enquire_link para verificar que las conexiones estén vivas:

  • Intervalo predeterminado: 60 segundos (configurable por enlace a través de enquire_link_interval)
  • Deshabilitar: Establecer enquire_link_interval: 0 (no recomendado)
  • Detección de fallos: Si el par remoto deja de responder a enquire_link, la conexión se considera muerta y comienza la reconexión

Monitorear la salud de enquire_link a través de las métricas de Prometheus smpp_enquire_link_sent_total y smpp_enquire_link_received_total. Una brecha creciente entre enviados y recibidos indica problemas de conexión.

Limitación de Tasa TPS​

Cada enlace aplica su tps_limit utilizando una ventana deslizante por segundo:

  • Los mensajes se cuentan dentro de cada ventana de 1 segundo
  • Cuando se alcanza el límite, el trabajador de la cola se pausa hasta el siguiente segundo
  • Un máximo de 100 mensajes puede estar en vuelo (esperando respuesta) por enlace en cualquier momento
  • La ventana se restablece automáticamente al inicio de cada nuevo segundo

Si observa un rendimiento lento, verifique que:

  1. tps_limit esté configurado lo suficientemente alto para su tráfico
  2. queue_check_frequency sea lo suficientemente bajo para mantener el flujo de la tubería
  3. El operador esté respondiendo a los mensajes de manera oportuna (respuestas lentas reducen el rendimiento efectivo)

Gestión del Flujo de Mensajes​

Verificación de la Cola de Mensajes​

Propósito: Monitorear mensajes pendientes

Pasos:

  1. Acceder a la Cola:

    • Navegar a: pestaña de Cola
    • Ver lista de mensajes pendientes

    Pestaña de Cola de Mensajes - Ver mensajes pendientes y estado de entrega

  2. Verificar Detalles del Mensaje:

    • Hacer clic en la fila del mensaje
    • Revisar:
      • Número de destino
      • Cuerpo del mensaje
      • SMSC objetivo (dest_smsc)
      • Intentos de entrega
      • Estado
  3. Buscar Mensaje Específico:

    • Usar filtro de búsqueda
    • Filtrar por destino, contenido o SMSC

Solución de Problemas de Mensajes Atascados​

Síntomas: Mensajes que no se entregan

Pasos:

  1. Verificar Estado de Conexión:

    • Navegar a: SMPP → Estado en Vivo
    • Verificar que la conexión objetivo esté conectada
    • Si está desconectada, ver Reconectando
  2. Verificar Detalles del Mensaje:

    • Navegar a: pestaña de Cola
    • Encontrar mensaje atascado
    • Comprobar que el campo dest_smsc coincida con el nombre de la conexión
    • Verificar la marca de tiempo deliver_after (programación de reintentos)
  3. Verificar Intentos de Entrega:

    • Altos intentos = fallos repetidos
    • Verificar registros para mensajes de error
    • Puede indicar formato inválido o rechazo del operador
  4. Intervención Manual (si es necesario):

    • Contactar al operador para verificar el problema
    • Puede ser necesario cancelar y reenviar el mensaje
    • Consultar con el equipo de backend sobre problemas en la cola

Passthrough de Recibos de Entrega (DLR)​

Un recibo de entrega (DLR) es un mensaje SMPP que informa el estado final de un mensaje enviado. La puerta de enlace envía un DLR de vuelta a un enlace que envía cuando el enlace establece deliver_receipts: true. Utilice esta función para un enlace de interconexión cuyo operador necesita confirmación de entrega para cada mensaje.

La puerta de enlace envía el recibo como un PDU deliver_sm con el esm_class establecido en 0x04 (Recibo de Entrega del SMSC). El recibo lleva el mismo ID de mensaje que la puerta de enlace devolvió en el submit_sm_resp, por lo que el operador puede correlacionar el recibo con el envío original.

Requisitos​

  • Establecer deliver_receipts: true en el enlace de servidor. Ver CONFIGURATION.md.
  • Establecer cache_enabled: false en el mismo enlace. El almacenamiento en caché devuelve un ID de mensaje temporal que no coincide con el ID central, por lo que un enlace en caché rompe la correlación del recibo. La puerta de enlace escribe una advertencia al inicio si un enlace establece ambos.

Flujo de Mensajes​

Valores de estado del recibo​

El campo stat del recibo informa el estado final del mensaje.

Estado del CoreRecibo statSignificado
deliveredDELIVRDEl destinatario recibió el mensaje.
expiredEXPIREDEl período de validez del mensaje terminó antes de la entrega.
droppedUNDELIVLa puerta de enlace no pudo entregar el mensaje.
rejectedREJECTDEl núcleo rechazó el mensaje.
balance_rejectedREJECTDEl núcleo rechazó el mensaje por razones de saldo de cuenta.

Notas operativas​

  • La puerta de enlace rastrea los mensajes en vuelo en memoria. Si el servicio se reinicia, los recibos de los mensajes que están en vuelo en ese momento se pierden. Este es un mecanismo de mejor esfuerzo.
  • Si la sesión del enlace está caída cuando un mensaje alcanza un estado terminal, la puerta de enlace mantiene el recibo y lo envía cuando la sesión se reconecta. La puerta de enlace elimina el recibo después de 24 horas.
  • Monitorear las métricas DLR para confirmar que la función funciona. Ver MONITORING.md.

Solución de Problemas de Conexión​

Reconectando un Bind​

Síntomas: La conexión muestra "Desconectado" (rojo)

Pasos:

  1. Verificar Conectividad de Red:

    ping -c 3 carrier-smpp-server.com
    telnet carrier-smpp-server.com 2775
  2. Verificar Registros en Busca de Errores:

    • Navegar a: Pestaña de Registros
    • Filtrar: Nivel de error
    • Buscar fallos de autenticación, tiempos de espera de red

    Pestaña de Registros del Sistema - Monitoreo de registros en tiempo real con filtrado de nivel

  3. Verificar Credenciales:

    • Navegar a: SMPP → Pares Cliente/Servidor
    • Comprobar que system_id y contraseña son correctos
    • Contactar al operador si no está seguro
  4. Reconexión Manual:

    • Navegar a: SMPP → Estado en Vivo
    • Encontrar el bind desconectado
    • Hacer clic en el botón "Reconectar"
    • Esperar de 10 a 30 segundos
    • Verificar si el estado cambia a "Conectado"
  5. Si la Reconexión Falla:

    • Verificar reglas del firewall
    • Verificar que el servidor del operador esté operativo
    • Contactar al soporte del operador
    • Ver TROUBLESHOOTING.md

Manejo de Fallos de Autenticación​

Síntomas: Fallos de bind repetidos en los registros

Causas:

  • Nombre de usuario/contraseña incorrectos
  • IP no incluida en la lista blanca del operador
  • Cuenta suspendida/expirada

Pasos:

  1. Verificar Credenciales:

    • Navegar a: SMPP → Pares Cliente
    • Verificar nuevamente system_id y contraseña
    • Confirmar con el operador
  2. Verificar Inclusión de IP en la Lista Blanca:

    • Confirmar tu IP de gateway con el operador
    • Solicitar al operador que verifique la lista blanca de IP
  3. Verificar Estado de la Cuenta:

    • Verificar que la cuenta esté activa
    • Comprobar si hay contratos expirados
    • Contactar al departamento de facturación del operador
  4. Actualizar Configuración:

    • Si las credenciales cambiaron, actualizar en la interfaz web
    • Hacer clic en "Reconectar" para reintentar con las nuevas credenciales

Monitoreo y Alertas​

Verificando Métricas de Prometheus​

Verificación rápida:

curl http://localhost:4000/metrics | grep smpp_connection_status

Salida esperada:

smpp_connection_status{bind_name="vodafone_uk",...} 1
smpp_connection_status{bind_name="att_us",...} 1

Todos los valores deberían ser 1 (conectado).

Respondiendo a Alertas​

Alerta de Conexión Caída:

  1. Verificar Interfaz Web → SMPP → Estado en Vivo
  2. Intentar reconexión manual
  3. Verificar registros en busca de errores
  4. Contactar al operador si la interrupción es prolongada
  5. Ver TROUBLESHOOTING.md

Alerta de Alta Tasa de Fallos:

  1. Verificar registros en busca de patrones de error
  2. Revisar cambios recientes en la configuración
  3. Contactar al operador sobre rechazos
  4. Verificar cumplimiento del formato de mensaje

Alerta de Sin Tráfico:

  1. Verificar que la cola de backend tenga mensajes
  2. Verificar que el enrutamiento dest_smsc sea correcto
  3. Comprobar que los límites de TPS no sean demasiado restrictivos
  4. Revisar la configuración de queue_check_frequency

Procedimientos de Mantenimiento​

Mantenimiento de Rutina​

Realizar mensualmente:

  1. Revisar Métricas:

    • Analizar tendencias de volumen de mensajes
    • Verificar tasas de éxito de entrega
    • Identificar oportunidades de optimización
  2. Actualizar Documentación:

    • Documentar cualquier cambio en la configuración
    • Actualizar información de contacto
    • Anotar ventanas de mantenimiento del operador
  3. Auditoría de Credenciales:

    • Revisar todas las contraseñas de SMPP
    • Planificar rotación de credenciales
    • Verificar que las listas blancas de IP estén actualizadas
  4. Planificación de Capacidad:

    • Revisar tasas de mensajes pico
    • Comparar con límites de TPS
    • Planificar para el crecimiento

Reinicio del Servicio​

Cuando sea necesario:

  • Después de cambios en el archivo de configuración
  • Después de actualizaciones del sistema
  • Durante la solución de problemas

Pasos:

# Verificar estado actual
sudo systemctl status omnimessage-smpp

# Reiniciar servicio
sudo systemctl restart omnimessage-smpp

# Verificar reinicio
sudo systemctl status omnimessage-smpp

# Verificar registros
sudo journalctl -u omnimessage-smpp -n 50

Verificar a través de la Interfaz Web:

  1. Acceder al panel (puede tardar de 30 a 60 segundos en estar en línea)
  2. Navegar a: SMPP → Estado en Vivo
  3. Esperar a que todas las conexiones se establezcan (1-2 minutos)
  4. Verificar registros en busca de errores

Copia de Seguridad de Configuración​

Hacer copia de seguridad de archivos críticos antes de los cambios:

# Copia de seguridad de configuración
sudo cp /opt/omnimessage-smpp/config/runtime.exs \
/opt/omnimessage-smpp/config/runtime.exs.backup.$(date +%Y%m%d)

# Copia de seguridad de certificados
sudo tar -czf /tmp/smpp-certs-$(date +%Y%m%d).tar.gz \
/opt/omnimessage-smpp/priv/cert/

Restaurar si es necesario:

# Restaurar configuración
sudo cp /opt/omnimessage-smpp/config/runtime.exs.backup.YYYYMMDD \
/opt/omnimessage-smpp/config/runtime.exs

# Reiniciar servicio
sudo systemctl restart omnimessage-smpp

Procedimientos de Emergencia​

Interrupción Completa del Servicio​

Pasos:

  1. Verificar estado del servicio:

    sudo systemctl status omnimessage-smpp
  2. Si el servicio está detenido, iniciarlo:

    sudo systemctl start omnimessage-smpp
  3. Verificar registros en busca de la razón del fallo:

    sudo journalctl -u omnimessage-smpp -n 100
  4. Si no inicia:

    • Verificar errores de sintaxis en la configuración
    • Verificar que existan certificados SSL
    • Verificar espacio en disco: df -h
    • Verificar memoria: free -h
  5. Contactar soporte si no se resuelve

Solicitudes de Desconexión de Emergencia del Operador​

Pasos:

  1. Cerrar la conexión de inmediato:

    • Navegar a: SMPP → Estado en Vivo
    • Encontrar la conexión afectada
    • Hacer clic en "Cerrar Conexión"
  2. Documentar la razón:

    • Anotar el nombre del operador
    • Registrar la hora y la razón
    • Guardar correspondencia
  3. Investigar el problema:

    • Verificar patrones recientes de mensajes
    • Revisar registros en busca de errores
    • Identificar la causa raíz
  4. Coordinar la resolución:

    • Trabajar con el operador
    • Implementar soluciones
    • Probar antes de reconectar

Pico de Alto Volumen​

Síntomas: Tráfico de mensajes inesperadamente alto

Pasos:

  1. Verificar límites de TPS:

    • Navegar a: SMPP → Estado en Vivo
    • Verificar que las conexiones no estén limitadas
    • Puede ser necesario aumentar temporalmente los límites de TPS
  2. Monitorear la estabilidad del operador:

    • Estar atento a desconexiones
    • Verificar tasas de éxito de entrega
  3. Coordinar con el backend:

    • Verificar que la fuente de mensajes sea legítima
    • Puede ser necesario implementar limitación de tasa aguas arriba
  4. Escalar si es necesario:

    • Puede ser necesario agregar instancias adicionales de gateway
    • Contactar soporte para obtener asesoramiento sobre escalamiento

Mejores Prácticas​

Lista de Verificación Diaria​

  • Verificar que todas las conexiones SMPP estén conectadas
  • Revisar registros de errores en busca de problemas
  • Monitorear la cola de mensajes para acumulaciones
  • Verificar paneles de Prometheus/Grafana
  • Verificar tasas de éxito de entrega > 98%

Tareas Semanales​

  • Revisar tendencias de métricas
  • Verificar anomalías en patrones
  • Probar procedimientos de recuperación ante desastres
  • Actualizar documentación según sea necesario
  • Revisar y reconocer alertas

Tareas Mensuales​

  • Auditoría de credenciales
  • Revisión de planificación de capacidad
  • Actualizar contactos del operador
  • Revisar y optimizar configuraciones de TPS
  • Hacer copia de seguridad de archivos de configuración

Documentación Relacionada​