Создать акаунт
Ukraine Radio Link » DMR » ADN Systems » Делаем шлюз D-STAR - DMR для Украинского ADN сервера

Делаем шлюз D-STAR - DMR для Украинского ADN сервера

10 сен 2024, 22:43
ADN Systems / DMR / D-Star / DV / Цифровая радио связь / USRP
320
2
Делаем шлюз D-STAR - DMR для Украинского ADN сервера

Делаем шлюз D-STAR<--->DMR для Украинского ADN сервера

Для сборки моста (BRIDGE) нам понадобится два сервера, рекомендую виртуальные, под Ubuntu, Debian или два мини компа  с Raspbian, Ubuntu или Debian ну, или что у вас есть, на чём сможет крутиться DVSWITCH.

К сожалению я не придумал способа запустить два экземпляра DVSwitch на одном компе, если вы знаете как это реализовать то поделитесь в комментариях.

Я поднял простые два виртуальных сервера с одним процессором и 256мб памяти, выделив 6Gb динамического дискового пространства, установил Ubuntu 16.04 32Bit. Как установить DVSWITCH смотрим тут...

Не буду тут описывать как это всё работает, предоставлю вам разобраться в этом самостоятельно и приведу только блоки из конфигов которые я изменял в процессе настройки моста.

Структурно мост выглядит примерно так:


Конфигурации первой половины моста XLX----USRP:

nano /opt/Analog_Bridge/Analog_Bridge.ini

; General vocoder setup information
decoderFallBack = true                  ; Allow software AMBE decoding if a hardware decoder is not found
useEmulator = true                     ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN)
emulatorAddress = 127.0.0.1:2470        ; IP address and port of the md380 server

[AMBE_AUDIO]
address = 127.0.0.1                     ; IP address of xx_Bridge
txPort = 32103                          ; Transmit TLV frames to partner on this port
rxPort = 32100                          ; Listen for TLV frames from partner on this port
ambeMode = DSTAR                          ; DMR, DMR_IPSC, DSTAR, NXDN, P25, YSFN, YSFW (encode PCM to this format)
minTxTimeMS = 2500                      ; Analog -> Digital Minimum time in MS for hang delay (0-10000)
gatewayDmrId = ВАШ DMR ID                ; ID to use when transmitting from Analog_Bridge 7 digit ID
repeaterID = ВАШ DMR ID ПЛЮС 2 ЦЫФРЫ                  ; ID of source repeater 7 digit ID plus 2 digit SSID
txTg = ВАША ГРУППА В КОТОРОЙ БУДЕТ РАБОТАТЬ МОСТ                                ; TG to use for all frames sent from Analog_Bridge -> xx_Bridge
txTs = 2                                ; Slot to use for frames sent from Analog_Bridge -> xx_Bridge
colorCode = 1                           ; Color Code to assign DMR frames

[USRP]
address = IP АДРЕС ВТОРОЙ ПОЛОВИНЫ СЕРВЕРА                     ; IP address of USRP partner (Allstar/Asterisk or another Analog_Bridge)
txPort = 38001                          ; Transmit USRP frames on this port
rxPort = 39001                          ; Listen for USRP frames on this port
;-----
;usrpAudio = AUDIO_UNITY                 ; Digital -> Analog (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_USE_AGC)
;usrpGain = 1.10                         ; Gain factor when usrpAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
;usrpAGC = -20,10,100                    ; Set the agc threshold (db), slope (db) and decay (ms)
;tlvAudio = AUDIO_UNITY                  ; Analog -> Digital (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_BPF)
;tlvGain = 0.35                          ; Gain factor when tlvAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
;-----
usrpAudio = AUDIO_USE_AGC
usrpGain = 4.0
usrpAGC = -20,10,300
tlvAudio = AUDIO_USE_GAIN
tlvGain = 0.5

Я закомментировал настройки звука по умолчанию и применил свои, тут рекомендую поэкспериментировать с настройками.


nano /opt/MMDVM_Bridge/DVSwitch.ini

[DSTAR]
address = 127.0.0.1             ; Address to send AMBE TLV frames to (export)
txPort = 32100                  ; Port to send AMBE TLV frames to (export)
rxPort = 32103                  ; Port to listen on (import)
fallbackID = ВАШ DMR ID            ; In case we can not find a valid DMR id in the database, export this one
exportTG = ВАША ГРУППА В КОТОРОЙ БУДЕТ РАБОТАТЬ МОСТ                    ; Which TG to export
slot = 2                        ; Export slot
RemotePort = 54321              ; Port to send Gateway commands to
message = %location %description ; Get location and description from MMDVM_Bridge.ini


nano /opt/MMDVM_Bridge/MMDVM_Bridge.ini

[General]
Callsign=ВАШ ПОЗЫВНОЙ
Id=ВАШ DMR ID
Timeout=180
Duplex=0

[D-Star]
Enable=1
Module=B

[D-Star Network]
Enable=1
GatewayAddress=127.0.0.1
GatewayPort=20010
LocalPort=20011
Debug=0


nano /etc/ircddbgateway

repeaterCall1=UT3FT
repeaterBand1=B
repeaterType1=0
repeaterAddress1=127.0.0.1
repeaterPort1=20011
reflector1=XLX168 E
atStartup1=1
reconnect1=1
frequency1=434.00000
offset1=0.0000
rangeKms1=0.000
latitude1=0.000000
longitude1=0.000000
agl1=0.000
description1_1=
description1_2=

repeaterCall1=UT3FT   ---   Тут ваш позывной

reflector1=XLX168 E   ---   Это ваш XLX рефлектор и буква модуля в которой будет работать мост)


Конфигурация второй половины моста USRP----ADN DMR:

nano /opt/Analog_Bridge/Analog_Bridge.ini

; General vocoder setup information
decoderFallBack = true                  ; Allow software AMBE decoding if a hardware decoder is not found
useEmulator = true                     ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN)
emulatorAddress = 127.0.0.1:2470        ; IP address and port of the md380 server

[AMBE_AUDIO]
address = 127.0.0.1                     ; IP address of xx_Bridge
txPort = 31103                          ; Transmit TLV frames to partner on this port
rxPort = 31100                          ; Listen for TLV frames from partner on this port
ambeMode = DMR                          ; DMR, DMR_IPSC, DSTAR, NXDN, P25, YSFN, YSFW (encode PCM to this format)
minTxTimeMS = 2500                      ; Analog -> Digital Minimum time in MS for hang delay (0-10000)
gatewayDmrId = ВАШ DMR ID                ; ID to use when transmitting from Analog_Bridge 7 digit ID
repeaterID = ВАШ DMR ID ПЛЮС 2 ЦЫФРЫ                  ; ID of source repeater 7 digit ID plus 2 digit SSID
txTg = ВАША ГРУППА В КОТОРОЙ БУДЕТ РАБОТАТЬ МОСТ                                ; TG to use for all frames sent from Analog_Bridge -> xx_Bridge
txTs = 2                                ; Slot to use for frames sent from Analog_Bridge -> xx_Bridge
colorCode = 1                           ; Color Code to assign DMR frames

[USRP]
address = IP АДРЕС ПЕРВОЙ ПОЛОВИНЫ СЕРВЕРА                    ; IP address of USRP partner (Allstar/Asterisk or another Analog_Bridge)
txPort = 39001                          ; Transmit USRP frames on this port
rxPort = 38001                          ; Listen for USRP frames on this port
;-----
;usrpAudio = AUDIO_UNITY                 ; Digital -> Analog (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_USE_AGC)
;usrpGain = 1.10                         ; Gain factor when usrpAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
;usrpAGC = -20,10,100                    ; Set the agc threshold (db), slope (db) and decay (ms)
;tlvAudio = AUDIO_UNITY                  ; Analog -> Digital (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_BPF)
;tlvGain = 0.35                          ; Gain factor when tlvAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY)
;-----
usrpAudio = AUDIO_USE_AGC
usrpGain = 4.0
usrpAGC = -20,10,300
tlvAudio = AUDIO_USE_GAIN
tlvGain = 0.5


nano /opt/MMDVM_Bridge/DVSwitch.ini

; Configure the DMR Partner
; Audio format is AMBE 72 bit
[DMR]
address = 127.0.0.1             ; Address to send AMBE TLV frames to (export)
txPort = 31100                  ; Port to send AMBE TLV frames to (export)
rxPort = 31103                  ; Port to listen on (import)
slot = 2                        ; Export slot
exportTG = ВАША ГРУППА В КОТОРОЙ БУДЕТ РАБОТАТЬ МОСТ                     ; Which TG to export
hangTimerInFrames = 0           ; Use 50 for 3 seconds of hang time (3000 / 60)
talkerAlias = %callsign %location %description ; Get callsign location and description from MMDVM_Bridge.ini


nano /opt/MMDVM_Bridge/MMDVM_Bridge.ini

[General]
Callsign=ВАШ ПОЗЫВНОЙ
Id=ВАШ ID
Timeout=180
Duplex=0

[Info]
RXFrequency=0
TXFrequency=0
Power=0
Latitude=0.0
Longitude=0.0
Height=0
Location=D-STAR GW (XLX168 E)
Description=MMDVM_Bridge
URL=https://groups.io/g/DVSwitch

[DMR]
Enable=1
ColorCode=1
EmbeddedLCOnly=1
DumpTAData=0

[DMR Network]
Enable=1
Address=2551.adn.systems
Port=62031
Jitter=360
Local=62032
Password=passw0rd
# for DMR+ see https://github.com/DVSwitch/MMDVM_Bridge/blob/master/DOC/DMRplus_startup_options.md
# for XLX the syntax is: Options=XLX:4009
Options="TS2=ВАША ГРУППА В КОТОРОЙ БУДЕТ РАБОТАТЬ МОСТ;"
Slot1=0
Slot2=1
Debug=0


На это всё, перезагружаемся проверяем работу. Если что-то не работает, смотрим логи и исправляем ошибки.

Вопросы, замечания в комментах.

Комментарии
Минимальная длина комментария - 50 знаков. комментарии модерируются
Кликните на изображение чтобы обновить код, если он неразборчив
lz1gsp
lz1gsp
15 сентября 2024 19:35

Всем привет,
Поздравляю автора с прекрасным уроком!
Установить два сервера DVSwitch на одну виртуальную или физическую машину несложно.

После установки первого сервера просто сделайте следующее:

Скопируйте все рабочие каталоги MMDVM_Bridge и DVSwitch:

# cp /opt/MMDVM_Bridge/ /opt/MMDVM_Bridge2/ -r

# cp /opt/Analog_Bridge/ /opt/Analog_Bridge2/ -r

# cp /opt/md380-emu/ /opt/md380-emu2/ -r 

Теперь надо также создать каталоги для их журналов:

# mkdir /var/log/mmdvm2

# mkdir /var/log/dvswitch2 

Теперь надо продублируем сервиси используемые для запуска приложений:

# cp /lib/systemd/system/mmdvm_bridge.service /lib/systemd/system/mmdvm_bridge2.service

# cp /lib/systemd/system/analog_bridge.service /lib/systemd/system/analog_bridge2.service

# cp /lib/systemd/system/md380-emu.service /lib/systemd/system/md380-emu2.service 

Отредактируйте каждый из скопированных выше файлов .service. Проверьте каждую строку, чтобы убедиться, что пути соответствуют новым путям на втором DVSwitch.

# nano /lib/systemd/system/mmdvm_bridge2.service

Найдите следующие строки и отредактируйте:

WorkingDirectory=/opt/MMDVM_Bridge2

Environment=DVSwitch=/opt/MMDVM_Bridge2/DVSwitch.ini

ExecStart=/opt/MMDVM_Bridge2/MMDVM_Bridge /opt/MMDVM_Bridge2/MMDVM_Bridge.ini 

Не забудьте сохранить файл (в Nano это Ctrl-X, затем Y, затем Enter). Если вы не являетесь пользователем root или суперпользователем, используйте sudo для редактирования элемента как root.

# nano /lib/systemd/system/analog_bridge2.service

Найдите эти строки и отредактируйте их соответствующим образом.

WorkingDirectory=/opt/Analog_Bridge2

Environment=AnalogBridgeLogDir=/var/log/dvswitch2

ExecStart=/opt/Analog_Bridge2/Analog_Bridge /opt/Analog_Bridge2/Analog_Bridge.ini

# nano /lib/systemd/system/md380-emu2.service

WorkingDirectory=/opt/md380-emu2

ExecStart=/opt/md380-emu2/md380-emu -S 2471

 

«2471» выше — это порт эмулятора MD380, который мы будем использовать на Analog Bridge2. Обратите на него внимание.

Включение, запуск и проверка состояния служб
Не забудьте использовать sudo, если вы не являетесь пользователем root.

Enable the services:

# systemctl enable mmdvm_bridge2

# systemctl enable analog_bridge2

# systemctl enable md380-emu2 

Start the services:

# systemctl start mmdvm_bridge2

# systemctl start analog_bridge2

# systemctl start md380-emu2 

Check the statuses:

# systemctl status mmdvm_bridge2

# systemctl status analog_bridge2

# systemctl status md380-emu2

 

Затем выполните все настройки, как описано выше. 

Вот и все. Желаю всем удачи!

73 LZ1GSP

Admin
Admin
16 сентября 2024 02:37
lz1gsp,

Большое Вам спасибо за пояснение. Обязательно на днях воспользуюсь вашей инструкцией!😊

Смотрите также: