Открытая платформа захвата и анализа VoIP-сигнализации. Перехватывает SIP, RTCP, HEP/EEP протоколы в реальном времени. Хранит в PostgreSQL/Elasticsearch, визуализирует в веб-интерфейсе. Используется для forensics VoIP-инфраструктуры и обнаружения toll fraud.
# Docker (самый простой путь): git clone https://github.com/sipcapture/homer-docker docker-compose up -d # Веб-интерфейс на :9080
100% открытый исходный код для телекоммуникационной наблюдаемости с 2011 года
homer — это универсальный монолитный сервер для захвата HEP и API, лежащий в основе озера данных Homer 11.x
application/vq-rtcpxr → DuckLake + UI транзакционного QoS)Homer использует модульную архитектуру с четырьмя основными компонентами:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Homer Core │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌──────────┐ ┌─────────────────┐ │
│ │ Ingest │ │ Storage │ │ Node │ │ Coordinator │ │
│ │ (HEP recv) │──▶│ (DuckLake) │──▶│ gRPC/HTTP│──▶│ (REST API) │ │
│ └─────────────┘ └─────────────┘ └──────────┘ └─────────────────┘ │
│ UDP/TCP/HTTP Parquet+S3 Airport :50051 HTTP :8080 │
│ FlightSQL :50055 (opt. proxy :32010) │
└─────────────────────────────────────────────────────────────────────────────┘
| Модуль | Описание |
|---|---|
| Сбор данных (Ingest) | Принимает пакеты HEP через UDP/TCP/TLS/HTTP/HTTPS; опциональные слушатели SIP для VQRTCP и SIPREC |
| Хранилище (Storage) | Записывает данные в DuckLake (Parquet + каталог) |
| Нода (Node) | gRPC аэропорта + HTTP /query; опциональный Arrow FlightSQL для Grafana (docs/FLIGHTSQL.md) |
| Координатор (Coordinator) | REST API шлюз для UI и внешних приложений |
homer для вашей ОС/архитектуры<<>
О других вариантах хранилища см. доступные ПОЛИТИКИ ХРАНИЛИЩА
Обе функции отключены по умолчанию и требуют модуль записи (DuckLake). Включите их в разделе ingest файла homer.json:
<<>
| Функция | Слушатель | Хранилище | UI |
|---|---|---|---|
| VQRTCP | Выделенный SIP (по умолчанию :5063) |
vqrtcpxr_stats |
Транзакционная вкладка QoS → VQRTCP |
| SIPREC | Процессный SRS (по умолчанию :5062) |
hep_proto_1_siprec |
Профиль поиска протоколов siprec |
Направьте ваш SBC или медиа-шлюз на SIP-порт VQRTCP для отчетов application/vq-rtcpxr. Направьте клиент записи сессий SIPREC (SRC) на порт SIPREC для записи сигнализации и rs-метаданных.
См. docs/VQRTCP.md и docs/SIPREC.md для деталей формата, корреляции и тюнинга.
# Build
make
# Run as server (default mode)
./homer --config-path /etc/homer/homer.json
# With debug logging
./homer --config-path /etc/homer/homer.json --log-level debug
Homer использует CLI на основе подкоманд. Запуск homer без аргументов запускает сервер.
homer Run the server (default)
homer search [flags] Search Homer data via coordinator API
homer cli [flags] Interactive DuckLake SQL shell
homer system [flags] System operations (compaction, extensions, reload)
homer wizard [flags] Interactive config generator wizard
homer mcp [flags] Start MCP stdio server
homer version Show version
homer help Show full help with all flags
homer --config-path /etc/homer/homer.json
homer --config-path /etc/homer/homer.json --log-level debug --syslog-disable
| Флаг | Описание |
|---|---|
--config-path <path> |
Путь к файлу конфигурации или каталогу |
--log-level <level> |
Уровень журнала: debug, info, warn, error, trace |
--syslog-disable |
Отключить syslog, использовать только stdout |
--pid-file <path> |
Путь к PID-файлу (по умолчанию: /var/run/homer-core.pid) |
Поиск данных Homer из командной строки с выводом в виде таблицы, вертикального списка, CSV, JSON, графика, графа вызовов или формата PCAP (только SIP; используйте --format pcap с -o / --output).
<<>
См. docs/SEARCH.md для полной документации и примеров.
Интерактивная оболочка для прямых запросов к DuckLake:
<<>
| Команда | Описание |
|---|---|
help, \h, \? |
Показать справку |
tables, \dt |
Вывести список доступных таблиц |
clear, \c |
Очистить экран |
exit, quit, \q |
Выйти из CLI |
# Run full compaction
homer system --config-path /etc/homer/homer.json --compaction-force
# Install DuckDB extensions
homer system --config-path /etc/homer/homer.json --install-extensions
# Show DuckDB version
homer system --config-path /etc/homer/homer.json --duckdb-version
# Generate example config
homer system --generate-example-config > homer.json
# Reload running process
homer system --reload
Интерактивный мастер, генерирующий полный файл конфигурации homer.json:
<<>
| Профиль | Включенные модули |
|---|---|
all-in-one |
ingest + storage + node + coordinator |
writer |
ingest + storage |
edge |
ingest + storage + node |
coordinator |
только coordinator |
node |
только node |
См. каталог examples/:
| Файл | Описание |
|---|---|
homer.json |
Разворачивание «все-в-одном» |
homer-writer.json |
Сбор данных + Хранилище + Нода |
homer-node.json |
Только нода (только чтение) |
homer-coordinator.json |
Только координатор |
homer-edge.json |
граничное развертывание |
Опубликованные документы (GitHub Pages): https://sipcapture.github.io/homer/ — построены из docs/ через MkDocs при пуше в homer11. Включите Settings → Pages → Build and deployment: GitHub Actions один раз после первого запуска workflow.
<<>
scripts/profile_ingest_load.sh / make profile-ingest для воспроизводимых CPU-профилейvqrtcpxr_stats, UI QoS)hep_proto_1_siprec)Выпускается под лицензией AGPL-3.0 License
Copyright (C) 2025 QXIP BV