DMRGateway это просто

апрель 2021

Jonathan Naylor (g4klx) написал много полезного софта, для развития цифровых радиолюбительских сетей. Рассмотрим ещё один полезный модуль DMRGateway, который работает как полезное дополнение к MMDVMHost, расширяя его функционал.


Зачем он нужен?

При использовании только MMDVMHost, мы имеем возможность сконфигурировать подключение только к одной DMR-сети. Мы можем менять TG, но в пределах одной конкретной сети или сервера.

Модуль MMDVMHost может быть подключен одновременно только к одной сети и работать только в ней. Пример на картинке:

###

DMRGateway позволяет подключить DMR радиостанцию одновременно к нескольким сетям (XLXdmr, DMR+, BrandMeister, TGIF, FreeDMR, HBLink). Если в любой из подключенных сетей начинается разговор, hotspot транслирует его в эфир.

Чтобы вы могли менять установленные в DMRGateway сети, нужно запрограммировать в радиостанции соответствующие каналы. Например: канал-1 это XLX..., канал-2 = BrandMeister и тд.

Большое преимущество DMRGateway, в том что он может менять назначение передаваемых/принимаемых пакетов на лету и таким образом маршрутизировать вызов из радиостанции в нужную сеть и таймслот. Причём, вызовы могут быть как групповыми, так и персональными.

На картинке показано как работает DMRGatewaу:

###

При подключении к XLX комнатам и их смене, DMRGateway будет выдавать голосовые подсказки, чтобы указать текущую комнату. Подсказки доступны на нескольких языках. Эти возможности повышают удобство работы в эфире через hotspot и городской линк(репитер).

Полезно знать, что DMRGateway может работать как на одном компьютере с MMDVMHost, так и на разных. Pi-Star поддерживает работу через DMRGateway, но в несколько урезанном варианте.


Сборка

Соберём исполняемый файл из исходного кода, обычным способом. Смотрите внимательно, чтобы не было ошибок при компиляции! Если ошибки есть, добавляем недостающие библиотеки на которые ссылается компилятор.

cd /opt/
git clone https://github.com/g4klx/DMRGateway.git
cd DMRGateway
make

Конфигурация

Сначала настраиваем MMDVMHost. В файле MMDVM.ini включаем DMR и DMR Network (Enable=1) затем проверяем порты:

Type=Gateway
Address=127.0.0.1
Port=62031
Local=62032

Теперь переходим в DMRGateway.ini и проверяем эти записи (показан вариант когда оба модуля работают на одном компьютере):

RptAddress=127.0.0.1
RptPort=62032
LocalAddress=127.0.0.1
LocalPort=62031

Обязательно сделайте настройки в других секциях конфигурационного файла DMRGateway.ini и в первую очередь в секции Info, укажите координаты и другую информацию:

[Info]
Latitude=0.0
Longitude=0.0
Height=0
Location=Nowhere
Description=Multi-Mode Repeater
URL=www.google.co.uk

Просмотрите настройки во всех секциях конфига. Возможны вы захотите отключить APRS или изменить расположение лог-файла и тд.

Не используемые подключения, нужно выключить (Enabled=0) в каждой секции. Настраивайте подключение к сетям по отдельности и смотрите сообщение об ошибках, в процессе соединения с сетью и работы в ней. В процессе настройки ставим Daemon=0, а после неё Daemon=1.


Маршрутизация

Как говорилось ранее, DMRGateway позволяет на лету менять некоторые данные пакетов, рассмотрим команды и их возможности. Важно помнить! В симплексном режиме у вас один таймслот номер 2, его и нужно указывать во всех правилах!

Примеры команд здесь. Правила маршрутизации работают в той секции, в которой вы их прописали. Не нужно применять их все сразу!

TGRewrite
Команда преобразует один идентификатор разговорной группы (TG) в другой и может изменить временной интервал (timeslot). Параметр «from» применяется к кадрам DMR, поступающим на шлюз, а «to» к кадрам выходящим из шлюза (куда они будут направлены). Правила применяются к кадрам DMR, проходящим через шлюз в обоих направлениях (из эфира и из сети).

TGRewrite=fromSlot,fromTG,toSlot,toTG,range

PCRewrite
Делает то же что и TGRewrite, он только для персональных вызовов. PCRewrite позволяет менять назначение персонального вызова и слот (если это репитер). Правила применяются к кадрам DMR, проходящим через шлюз в обоих направлениях.

Обычно используется для перенаправления вызова в сеть с другой нумерацией, чтобы избежать конфликтов, а также для отправки информации на GPS-шлюз и тд.

PCRewrite=fromSlot,fromId,toSlot,toId,range

SrcRewrite
Преобразует персональный вызов в групповой вызов. Это правило работает только с кадрами DMR, проходящими от сервера из сети и направляющиеся в эфир. Можно указать диапазон адресов!

SrcRewrite=fromSlot,fromId,toSlot,toTG,range

TypeRewrite
Преобразует групповой вызов в персональный вызов. Это правило работает только с кадрами DMR, проходящими из эфира в сеть.

TypeRewrite=fromSlot,fromId,toSlot,toId

PassAllTG
Пропускает разговорные группы (TG) без применения к ним правил и может использоваться только в одной сети DMR. Правила применяются к кадрам DMR, проходящим через шлюз в обоих направлениях.

PassAllTG=Slot

PassAllPC
Передает любые персональные вызовы без применения к ним правил и может использоваться только в одной сети DMR. Правила применяются к кадрам DMR, проходящим через шлюз в обоих направлениях.

PassAllPC=Slot

Ссылки

1. DMRGateway на github
2. Rewrite Rules
3. Cобираем линк из исходников

Делимся опытом в эфире, на 'круглых столах' и в мессенджере.

R7HJ