Saltar al contenido principal

Mapeo de Datos de Respuesta de Diámetro

← Volver al Índice de Documentación

Este documento proporciona diagramas mermaid detallados que muestran de dónde se obtiene cada campo en las respuestas del protocolo Diámetro en el sistema OmniHSS.


Tabla de Contenidos


Respuesta de Actualización de Ubicación (S6a ULA)

La Respuesta de Actualización de Ubicación es enviada por el HSS al MME durante los procedimientos de conexión LTE. Este diagrama muestra el flujo de datos completo desde las tablas de la base de datos hasta los AVP de Diámetro.

Mapeo de Fuentes de Datos

Mapeo Detallado de Campos

Fuente de Base de DatosCampoAVP de DiámetroTransformación
subscriber.enabledtrue/falseSubscriber-Statustrue → 0 (activo), false → 1 (prohibido)
msisdn.msisdn'14155551234'MSISDNPrimer MSISDN, codificado en TBCD
epc_profile.ue_ambr_ul_kbps50000Max-Requested-Bandwidth-ULMultiplicar por 1000 (kbps → bps)
epc_profile.ue_ambr_dl_kbps100000Max-Requested-Bandwidth-DLMultiplicar por 1000 (kbps → bps)
epc_profile.network_access_mode0Network-Access-ModeMapeo directo
apn_identifier.apn'internet'Service-SelectionCadena directa
apn_identifier.ip_version2PDN-Type0=IPv4, 1=IPv6, 2=IPv4v6, 3=IPv4_o_IPv6
apn_qos_profile.qci9QoS-Class-IdentifierValor directo
apn_qos_profile.allocation_retention_priority8Priority-LevelValor directo
apn_qos_profile.pre_emption_capabilityfalsePre-emption-Capabilityfalse → 0, true → 1
apn_qos_profile.pre_emption_vulnerabilitytruePre-emption-Vulnerabilityfalse → 0, true → 1
apn_qos_profile.apn_ambr_ul_kbps25000APN AMBR ULMultiplicar por 1000 (kbps → bps)
apn_qos_profile.apn_ambr_dl_kbps50000APN AMBR DLMultiplicar por 1000 (kbps → bps)
static_ip.ipv4_static_ip'100.64.1.1'Served-Party-IP-Address (IPv4)Solo si asignado al suscriptor
static_ip.ipv6_static_ip'2606:4700::1111'Served-Party-IP-Address (IPv6)Solo si asignado al suscriptor

Transformaciones Clave:

  1. Ancho de banda AMBR: La base de datos almacena en kbps, Diámetro espera en bps (multiplicar por 1000)
  2. Codificación de Versión IP: 0=IPv4, 1=IPv6, 2=IPv4v6, 3=IPv4_o_IPv6
  3. Estado del Suscriptor: enabled: true → 0 (SERVICIO_CONCEDIDO), enabled: false → 1 (BLOQUEO_DETERMINADO_POR_OPERADOR)
  4. Identificador de Contexto: Numeración secuencial (0, 1, 2...) para cada APN en el perfil
  5. IP Estática: Solo incluida si se asigna a través de static_ips en una relación de muchos a muchos

Validación de Lógica de Negocio:

  • Verificación de itinerancia: Coincidir PLMN visitado contra roaming_profile.roaming_rules
  • Verificación de suscriptor habilitado: subscriber.enabled == true
  • Filtrar APNs: Puede excluir APNs IMS si la política de itinerancia niega IMS

Respuesta de Información de Autenticación (S6a AIA)

La Respuesta de Información de Autenticación proporciona vectores de autenticación para suscriptores LTE/EPC.

Mapeo de Fuentes de Datos

Componentes Clave:

  1. Claves Criptográficas: Todas las claves almacenadas como cadenas hexadecimales en la tabla key_set
  2. Gestión de SQN: Número de secuencia incrementado después de cada generación de vector de autenticación (previene ataques de repetición)
  3. Algoritmo Milenage: 3GPP TS 35.206 - genera vectores de autenticación
  4. Derivación de KASME: Clave derivada de CK||IK usando KDF según TS 33.401

Características de Seguridad:

  • SQN almacenado por suscriptor (no global)
  • Ki/OPc nunca salen del HSS (solo se transmiten valores derivados)
  • AUTN incluye número de secuencia (SQN) y AMF para autenticación de red
  • El algoritmo Milenage proporciona autenticación mutua entre UE y red

Respuesta de Asignación de Servidor (Cx SAA)

La Respuesta de Asignación de Servidor es enviada por el HSS al S-CSCF durante el registro IMS.

Mapeo de Fuentes de Datos

Características Clave:

  1. Plantilla IFC: Plantilla XML almacenada en ims_profile.ifc_template
  2. Sustitución Dinámica: Reemplaza {{msisdn}}, {{imsi}}, {{impu}} en tiempo de ejecución
  3. Asignación S-CSCF: Almacena S-CSCF asignado en subscriber_state.assigned_scscf
  4. Identidad Pública IMS: Formato: sip:+{msisdn}@{ims_domain} o tel:+{msisdn}

Parámetros de Plantilla IFC:

  • {{msisdn}} - Primer MSISDN del suscriptor
  • {{imsi}} - IMSI del suscriptor
  • {{impu}} - Identidad Pública de Usuario IMS (del estado del suscriptor)
  • {{impi}} - Identidad Privada de Usuario IMS (típicamente IMSI@realm)

Respuesta de Control de Crédito (Gx CCA)

La Respuesta de Control de Crédito es enviada por la función PCRF al PGW durante el establecimiento del bearer.

Mapeo de Fuentes de Datos

Características Clave:

  1. Seguimiento de Sesiones: Crea/actualiza el registro pdn_session para cada bearer
  2. Aplicación de QoS: Proporciona QCI y límites de ancho de banda del perfil QoS APN
  3. Reglas de Carga: Devuelve reglas de carga predeterminadas para integración de facturación
  4. CC-Request-Type: Maneja INITIAL (1), UPDATE (2), TERMINATION (3)

Gestión del Estado de la Sesión:

  • INITIAL_REQUEST: Crea un nuevo registro de sesión PDN
  • UPDATE_REQUEST: Actualiza la sesión PDN existente
  • TERMINATION_REQUEST: Elimina el registro de sesión PDN

Respuesta de Datos de Usuario (Sh UDA)

La Respuesta de Datos de Usuario es enviada por el HSS al AS (Servidor de Aplicaciones) a través de la interfaz Sh.

Mapeo de Fuentes de Datos

Características Clave:

  1. Datos del Repositorio: Puede almacenar XML personalizado en subscriber_state.sh_repository_data
  2. Indicación de Servicio: Filtra datos por servicio solicitado (por ejemplo, presencia, mensajería)
  3. Identidades Públicas: Devuelve todas las identidades públicas IMS para el suscriptor
  4. Referencia vs Transparente: Soporta ambos modos de datos, de referencia y transparentes

Respuesta de Verificación de Identidad del ME (S13 ECA)

La Respuesta de Verificación de Identidad del ME es enviada por la función EIR al MME para la validación de IMEI.

Mapeo de Fuentes de Datos

Características Clave:

  1. Coincidencia de Regex de IMEI: Las reglas utilizan expresiones regulares para coincidencias flexibles
  2. Reglas basadas en TAC: Puede coincidir con el Código de Asignación de Tipo (primeros 8 dígitos)
  3. Comportamiento Predeterminado: Configurable para IMEIs desconocidos (aceptar o rechazar)
  4. Valores de Estado del Equipo:
    • 0 = LISTA BLANCA (permitido explícitamente)
    • 1 = LISTA NEGRA (robado/bloqueado)
    • 2 = LISTA GRIS (permitido pero monitoreado)
    • 5 = DESCONOCIDO (sin regla coincidente)

Casos de Uso:

  • Bloquear dispositivos robados por IMEI exacto
  • Bloquear modelos de dispositivos por patrón TAC
  • Solo permitir dispositivos aprobados en la lista blanca
  • Rastrear dispositivos del mercado gris

Elementos Comunes de Respuesta

Todas las respuestas de Diámetro comparten estos AVPs comunes:

Ejemplo de Configuración:

config :diameter_ex,
diameter_host: "hss",
diameter_realm: "example.com",
diameter_service_name: "OmniHSS"

Resumen del Flujo de Datos

Pipeline de Procesamiento de Solicitudes

Optimización de Consultas a la Base de Datos

OmniHSS utiliza pre-carga consciente del contexto para minimizar las consultas a la base de datos:

# Ejemplo: ULR pre-carga todo lo necesario para los datos de suscripción
def get_subscriber_data(:update_location_request, imsi) do
from(s in Subscriber, where: s.imsi == ^imsi)
|> join(:left, [s], epc in assoc(s, :epc_profile))
|> join(:left, [s, epc], apn in assoc(epc, :apn_profiles))
|> join(:left, [s, epc, apn], qos in assoc(apn, :apn_qos_profile))
|> join(:left, [s], msisdn in assoc(s, :msisdns))
|> join(:left, [s], sip in assoc(s, :static_ips))
|> preload([s, epc, apn, qos, msisdn, sip], [
epc_profile: {epc, apn_profiles: {apn, apn_qos_profile: qos}},
msisdns: msisdn,
static_ips: sip
])
|> Repo.one()
end

# Resultado: Consulta única con todos los joins - sin problema N+1

Notas de Implementación

Controladores de Protocolo

El sistema implementa controladores para los siguientes protocolos de Diámetro:

  • S6a - Interfaz LTE/MME para autenticación y actualizaciones de ubicación
  • Cx - Interfaz IMS/CSCF para registro IMS y asignación de servidor
  • Sh - Interfaz IMS/AS para recuperación de datos de suscriptor
  • Gx - Interfaz PCRF para control de políticas y carga
  • Rx - Interfaz IMS/AF para autorización de medios
  • S13 - Interfaz EIR para validación de IMEI
  • SWx - Interfaz WiFi/IMS para autenticación de acceso no 3GPP

Modelos de Datos

El esquema de la base de datos incluye las siguientes entidades centrales:

  • Suscriptor - Registro central del suscriptor con IMSI
  • Conjunto de Claves - Claves criptográficas para autenticación
  • Perfil EPC - Configuración del servicio LTE
  • Perfil APN - Configuración del punto de acceso
  • Perfil IMS - Configuración del servicio IMS con plantillas IFC
  • Perfil de Itinerancia - Reglas y restricciones de itinerancia
  • Estado del Suscriptor - Seguimiento dinámico de sesión y estado
  • Sesión PDN - Seguimiento de sesión de bearer activa
  • IP Estática - Asignaciones de dirección IP estática
  • Regla EIR - Reglas de validación de IMEI

← Volver al Índice de Documentación | Referencia de API → | Flujos de Protocolo →