Integración de HOMER
Este documento cubre la integración opcional de HOMER para correlacionar registros de aplicaciones con trazas SIP.
Visión General
OmniTAS puede enviar registros de aplicaciones a un servidor HOMER utilizando el HEP3 (Homer Encapsulation Protocol) sobre UDP. Los registros se correlacionan con trazas SIP utilizando el SIP Call-ID, lo que permite una visibilidad de extremo a extremo del procesamiento de llamadas junto con la señalización.
Cómo Funciona
- Metadatos de Registro: Durante el procesamiento de llamadas, OmniTAS establece el SIP Call-ID en los metadatos del Logger.
- Captura de Registros: El módulo Homer se suscribe a los mensajes de registro a través de PubSub.
- Filtrado: Solo se envían los registros que contienen metadatos
call_id. - Codificación HEP3: Los registros se codifican como paquetes HEP3 con tipo de protocolo 100 (registro).
- Correlación: HOMER correlaciona los registros con trazas SIP utilizando el Call-ID.
Configuración
Agregue la configuración homer_server a su config/runtime.exs:
config :tas,
homer_server: %{
host: "10.179.2.136",
port: 9060,
auth_key: nil,
capture_id: 2001
}
Parámetros
| Parámetro | Tipo | Requerido | Predeterminado | Descripción |
|---|---|---|---|---|
host | String | Sí | - | Dirección IP o nombre de host del servidor HOMER |
port | Integer | No | 9060 | Puerto UDP del receptor HEP |
auth_key | String | No | nil | Clave de autenticación HEP opcional. Establecer para que coincida con authkey en la configuración de heplify-server si está habilitada |
capture_id | Integer | No | 2001 | Identificador del agente de captura. Aparece en la interfaz de usuario de HOMER para identificar la fuente del registro |
Deshabilitar la Integración de HOMER
Para deshabilitar la integración de HOMER, ya sea:
- Elimine la configuración
homer_serverpor completo, o - Comente el bloque de configuración
Cuando está deshabilitado, el módulo Homer no se inicia y no se envían registros.
Requisitos del Servidor HOMER
El servidor HOMER debe estar ejecutando heplify-server con la recepción de HEP habilitada en UDP.
Configuración de heplify-server
Verifique que su heplify-server.toml incluya:
HEPAddr = "0.0.0.0:9060"
Tipos de Protocolo Soportados
OmniTAS envía registros con el tipo de protocolo HEP 100, que heplify-server dirige a logs_capture. Asegúrese de que el esquema de base de datos de HOMER soporte el almacenamiento de registros.
Correlación de Registros
Inyección Automática de Call-ID
OmniTAS inyecta automáticamente el Call-ID en los metadatos del Logger durante:
- Procesamiento de Llamadas MO: Al procesar llamadas de origen móvil
- Procesamiento de Llamadas MT: Al procesar llamadas terminadas móviles
- Eventos de Llamada: Al manejar eventos de respuesta y colgado
Formato de Registro
Los registros enviados a HOMER incluyen:
| Campo | Descripción |
|---|---|
| Correlation ID | SIP Call-ID para la correlación de trazas |
| Timestamp | Marca de tiempo con precisión de microsegundos |
| Level | Nivel de registro (debug, info, warning, error) |
| Message | Contenido del mensaje de registro |
| Source IP | Dirección IP del servidor OmniTAS |
| Capture ID | Identificador del agente de captura configurado |
Ejemplo de Registro en HOMER
Después de que se procesa una llamada, HOMER muestra datos correlacionados:
[info] Processing MO call from: 61400123456 to: 61400654321
[debug] Sh lookup for caller: 61400123456
[info] OCS authorization: GRANTED (120 seconds)
[debug] Setting variable: hangup_case = none
Estos registros aparecen junto con los mensajes SIP INVITE, 200 OK y BYE en la vista de detalles de llamada de HOMER.
Detalles del Protocolo HEP3
OmniTAS implementa HEP3 según lo definido por el proyecto HOMER, compatible con el módulo siptrace de Kamailio.
Tipos de Chunk Usados
| Chunk ID | Nombre | Descripción |
|---|---|---|
| 0x0001 | IP Family | Siempre 2 (IPv4) |
| 0x0002 | IP Protocol | Siempre 17 (UDP) |
| 0x0003 | Source IPv4 | Dirección del servidor OmniTAS |
| 0x0004 | Dest IPv4 | Dirección del servidor HOMER |
| 0x0007 | Source Port | 0 (no aplicable para registros) |
| 0x0008 | Dest Port | Puerto HEP configurado |
| 0x0009 | Timestamp Sec | Segundos de marca de tiempo Unix |
| 0x000A | Timestamp USec | Componente de microsegundos |
| 0x000B | Protocol Type | 100 (registro) |
| 0x000C | Capture ID | capture_id configurado |
| 0x0011 | Correlation ID | SIP Call-ID |
| 0x000F | Payload | Mensaje de registro |
| 0x000E | Auth Key | Autenticación opcional |
Solución de Problemas
Registros No Aparecen en HOMER
Síntomas: Las llamadas se completan con éxito pero no aparecen registros en HOMER.
Causas posibles:
- Servidor HOMER inalcanzable en el puerto configurado.
- Cortafuegos bloqueando el tráfico UDP al puerto 9060.
- heplify-server no configurado para recibir HEP.
- Registros faltando metadatos call_id.
Resolución:
- Verifique la conectividad de red:
nc -zvu <homer_host> 9060 - Verifique que heplify-server esté escuchando:
ss -ulnp | grep 9060 - Revise los registros de heplify-server en busca de paquetes entrantes.
- Verifique que call_id aparezca en los registros de OmniTAS (busque
call_id=en la salida del registro).
Fallos de Autenticación
Síntomas: Los registros de heplify-server muestran errores de autenticación.
Causas posibles:
- Clave de autenticación no coincidente entre OmniTAS y heplify-server.
- Clave de autenticación configurada en un lado pero no en el otro.
Resolución:
- Si heplify-server no tiene clave de autenticación configurada, establezca
auth_key: nilen OmniTAS. - Si heplify-server requiere autenticación, configure una clave coincidente en ambos sistemas.
Correlación Faltante
Síntomas: Los registros aparecen en HOMER pero no están correlacionados con las trazas SIP.
Causas posibles:
- Desajuste en el formato del Call-ID entre SIP y registros.
- Configuración de correlación de HOMER.
Resolución:
- Verifique que el Call-ID en los registros coincida exactamente con el encabezado SIP Call-ID.
- Revise la configuración de correlación de HOMER para la tabla logs_capture.
Métricas
Cuando la integración de HOMER está habilitada, monitoree estos indicadores:
Registros de OmniTAS
Esté atento a advertencias que indiquen fallos en la transmisión de HEP:
[warning] Failed to send HEP packet to Homer: <reason>
Métricas de heplify-server
Si las métricas de Prometheus están habilitadas en heplify-server, monitoree:
heplify_packets_total{type="log"}- Total de paquetes de registro recibidos.heplify_packets_dropped_total- Paquetes descartados (errores de búfer/análisis).
Referencia de Arquitectura
Interacción de Componentes
Flujo de Datos
Ver También
- Proyecto HOMER - Captura y monitoreo de VoIP/RTC de código abierto.
- Especificación del Protocolo HEP - Documentación del protocolo HEP/EEP.
- heplify-server - Servidor de captura HEP.