HOMER Integration
This document covers the optional HOMER integration for correlating application logs with SIP traces.
Overview
OmniTAS can forward application logs to a HOMER server using the HEP3 (Homer Encapsulation Protocol) over UDP. Logs are correlated with SIP traces using the SIP Call-ID, enabling end-to-end visibility of call processing alongside signaling.
How It Works
- Log Metadata: During call processing, OmniTAS sets the SIP Call-ID in Logger metadata
- Log Capture: The Homer module subscribes to log messages via PubSub
- Filtering: Only logs containing
call_idmetadata are forwarded - HEP3 Encoding: Logs are encoded as HEP3 packets with protocol type 100 (log)
- Correlation: HOMER correlates logs with SIP traces using the Call-ID
Configuration
Add the homer_server configuration to your config/runtime.exs:
config :tas,
homer_server: %{
host: "10.179.2.136",
port: 9060,
auth_key: nil,
capture_id: 2001
}
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
host | String | Yes | - | HOMER server IP address or hostname |
port | Integer | No | 9060 | HEP receiver UDP port |
auth_key | String | No | nil | Optional HEP authentication key. Set to match authkey in heplify-server config if enabled |
capture_id | Integer | No | 2001 | Capture agent identifier. Appears in HOMER UI to identify the log source |
Disabling HOMER Integration
To disable HOMER integration, either:
- Remove the
homer_serverconfiguration entirely, or - Comment out the configuration block
When disabled, the Homer module is not started and no logs are forwarded.
HOMER Server Requirements
The HOMER server must be running heplify-server with HEP reception enabled on UDP.
heplify-server Configuration
Verify your heplify-server.toml includes:
HEPAddr = "0.0.0.0:9060"
Supported Protocol Types
OmniTAS sends logs with HEP protocol type 100, which heplify-server routes to logs_capture. Ensure your HOMER database schema supports log storage.
Log Correlation
Automatic Call-ID Injection
OmniTAS automatically injects the Call-ID into Logger metadata during:
- MO Call Processing: When processing mobile-originated calls
- MT Call Processing: When processing mobile-terminated calls
- Call Events: When handling answer and hangup events
Log Format
Logs sent to HOMER include:
| Field | Description |
|---|---|
| Correlation ID | SIP Call-ID for trace correlation |
| Timestamp | Microsecond-precision timestamp |
| Level | Log level (debug, info, warning, error) |
| Message | Log message content |
| Source IP | OmniTAS server IP address |
| Capture ID | Configured capture agent identifier |
Example Log in HOMER
After a call is processed, HOMER displays correlated data:
[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
These logs appear alongside the SIP INVITE, 200 OK, and BYE messages in the HOMER call detail view.
HEP3 Protocol Details
OmniTAS implements HEP3 as defined by the HOMER project, compatible with Kamailio's siptrace module.
Chunk Types Used
| Chunk ID | Name | Description |
|---|---|---|
| 0x0001 | IP Family | Always 2 (IPv4) |
| 0x0002 | IP Protocol | Always 17 (UDP) |
| 0x0003 | Source IPv4 | OmniTAS server address |
| 0x0004 | Dest IPv4 | HOMER server address |
| 0x0007 | Source Port | 0 (not applicable for logs) |
| 0x0008 | Dest Port | Configured HEP port |
| 0x0009 | Timestamp Sec | Unix timestamp seconds |
| 0x000A | Timestamp USec | Microseconds component |
| 0x000B | Protocol Type | 100 (log) |
| 0x000C | Capture ID | Configured capture_id |
| 0x0011 | Correlation ID | SIP Call-ID |
| 0x000F | Payload | Log message |
| 0x000E | Auth Key | Optional authentication |
Troubleshooting
Logs Not Appearing in HOMER
Symptoms: Calls complete successfully but no logs appear in HOMER
Possible causes:
- HOMER server unreachable on configured port
- Firewall blocking UDP traffic to port 9060
- heplify-server not configured to receive HEP
- Logs missing call_id metadata
Resolution:
- Verify network connectivity:
nc -zvu <homer_host> 9060 - Check heplify-server is listening:
ss -ulnp | grep 9060 - Review heplify-server logs for incoming packets
- Verify call_id appears in OmniTAS logs (check for
call_id=in log output)
Authentication Failures
Symptoms: heplify-server logs show authentication errors
Possible causes:
- Mismatched auth_key between OmniTAS and heplify-server
- Auth key configured on one side but not the other
Resolution:
- If heplify-server has no auth key configured, set
auth_key: nilin OmniTAS - If heplify-server requires auth, configure matching key in both systems
Missing Correlation
Symptoms: Logs appear in HOMER but are not correlated with SIP traces
Possible causes:
- Call-ID format mismatch between SIP and logs
- HOMER correlation configuration
Resolution:
- Verify the Call-ID in logs matches the SIP Call-ID header exactly
- Check HOMER's correlation settings for the logs_capture table
Metrics
When HOMER integration is enabled, monitor these indicators:
OmniTAS Logs
Watch for warnings indicating HEP transmission failures:
[warning] Failed to send HEP packet to Homer: <reason>
heplify-server Metrics
If Prometheus metrics are enabled on heplify-server, monitor:
heplify_packets_total{type="log"}- Total log packets receivedheplify_packets_dropped_total- Dropped packets (buffer/parse errors)
Architecture Reference
Component Interaction
Data Flow
See Also
- HOMER Project - Open source VoIP/RTC capture and monitoring
- HEP Protocol Specification - HEP/EEP protocol documentation
- heplify-server - HEP capture server