
Записывает вызовы из транкинговой радиосистемы (P25 & SmartNet)

Считаете Trunk Recorder и OpenMHz полезными? Станьте спонсором, чтобы поддержать дальнейшую разработку и работу проекта! Спасибо всем, кто внёс свой вклад!
Спасибо всем, кто вносил вклад, тестировал и помогал собирать core dump'ы!
Нужна помощь? Что-то заработало? Поделитесь!
... и не забывайте про Вики

Trunk Recorder позволяет записывать переговоры в транкинговых и конвенциональных радиосистемах. Для этого используется одно или несколько устройств программно-определяемого радио (SDR). SDR захватывают большие полосы радиочастот, а затем принятый сигнал обрабатывается программно. Для этой обработки используется GNU Radio, поскольку он предоставляет множество удобных RF-блоков, которые можно компоновать для выполнения сложной обработки радиосигнала. Значительная часть функциональности P25 реализована на основе библиотек замечательного проекта OP25. Можно записывать несколько радиосистем одновременно.
Trunk Recorder в настоящее время поддерживает следующее:
GNU Radio 3.7 - 3.10
USB-приёмники RTL-SDR; HackRF; Ettus USRP B200, B210, B205; BladeRF; Airspy; SDRplay
По умолчанию Trunk Recorder просто сохраняет множество записанных файлов в каталог. Вот несколько вариантов, которые упрощают просмотр записей и их публикацию в Интернете.
Если у вас возникли проблемы, загляните в FAQ и/или задайте вопрос на Discord-сервере
Для тех, кто не знаком с этой темой: транкинговые системы позволяют большому числу групп пользователей совместно использовать ограниченное количество радиочастот, временно и динамически назначая радиочастоты группам вызова (каналам) по запросу. Предполагается, что большинство групп пользователей пользуются радио очень редко, и им не нужна выделенная частота.
Большинство типов транкинговых систем (таких как SmartNet и P25) выделяют одну из радиочастот в качестве «управляющего канала», который управляет назначением радиочастот и передаёт эти назначения в эфир. Когда кто-то нажимает кнопку Push to Talk на своей радиостанции, радиостанция отправляет сообщение в систему, которая затем назначает голосовую частоту и передаёт сообщение Channel Grant о ней по управляющему каналу. Это сообщает радиостанции, на какой частоте передавать, и велит другим радиостанциям, настроенным на ту же группу вызова, слушать.
Чтобы отслеживать все передачи, Trunk Recorder постоянно слушает и декодирует управляющий канал. Когда частота выделяется группе вызова, Trunk Recorder создаёт процесс мониторинга, который декодирует участок радиочастотного спектра для этой частоты из SDR, который уже принимает его.
Когда разговор в группе вызова завершается, по управляющему каналу не передаётся никакого сообщения. Процесс мониторинга отслеживает передачи, и если в течение заданного периода не было активности, запись завершается.