Ядро протокола форкнуто из dmrhubv2 (~1300 строк из 31700): analyzer, server,
parrot, dmr_voice, bptc. Отрезаны портал, БД, мосты, алерты, динамические
подписки. Своё: конфиг, состояние, маршрутизатор, панель, установщик.
Ноль зависимостей — на Debian 13 действует PEP 668, pip в систему запрещён.
Две правки под Pi-Star, которых в исходном коде не было:
• peer_id переписывается на получателя (байты 11-14) через хук encode_for —
так делают HBlink3/HBlink4 и BrandMeister, а DMRGateway на Pi-Star стоит
между MMDVMHost и сетью;
• приватный вызов при неизвестном абоненте уходит всем, а не в никуда
(взято из HBlink4: user cache with broadcast fallback).
docs/PROTOCOL.md фиксирует, что тест-вектор auth-хеша в спецификации 2015 года
ОШИБОЧЕН (посчитан от ASCII-строки соли вместо четырёх байт). Правка кода по
нему сломала бы вход всем хотспотам.
tests/test_e2e.py: 15 проверок настоящими UDP-кадрами MMDVMHost. Все проходят.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XvX94Vwy7vXWEuiFm1g9Av