HBLink i reflektory
Obecnie mamy kilka programów które pozwalają uruchomić serwer reflektora między innymi:
- YSF Reflector by G4KLX (opis instalacji: https://register.ysfreflector.de/installation )
- XLXD Multiprotocol Reflector by LX3JL (opis instalacji: https://github.com/LX3JL/xlxd
W przypadku uruchomienia YSF reflektora musimy zrobić transkodowanie danych typu meta pomiędzy DMR a YSF. Kodek jest używany ten sam więc danych głosowych nie musimy transkodować.
XLX pozwala uruchomić reflektor który będzie mógł pracować w wielu trybach DV (wymaga stosowania sprzętowego AMBE vocodera dla D-Star). W sumie wybrałem XLX dla sieci HBLink która głównie używana jest w DMR i stwierdziłem że rozwiązanie na bazie XLX da nam jeden reflektor z wieloma subreflektorami (maksymalnie 28) do wykorzystania w przyszłości. Moduł A jest przeznaczony do rozmów między HBlink użytkownikami a pozostałe modułu do lokalnych rozmów. W ten sposób została uruchomiony reflektor dla lokalnych sieci HBLink w Polsce XLX260

Poniżej zostanie opisane jak podłączyć lokalny HBLink serwer do reflektora typu XLX i YSF.
W najnowszej wersji HBLink3 mamy możliwość połączenia się z reflektorem typu XLX bezpośrednio przy pomocy protokołu XLX. Wystarczy że w konfiguracji hblink.cfg dołożymy definicje linku XLXPEERS biorąc z najnowszego przykładu hblink-SAMPLE.cfg. Poniżej fragment konfiguracji z ustawieniami dla XLX260 z połączeniem do modułu A (4001):
[XLX260-A]
MODE: XLXPEER
ENABLED: True
LOOSE: True
EXPORT_AMBE: False
IP:
PORT: 54002
MASTER_IP: 80.211.192.189
MASTER_PORT: 62030
PASSPHRASE: password
CALLSIGN: N0CALL
RADIO_ID: 260XXXX
......
XLXMODULE: 4001
Musisz wpisać w CALLSIGN znak HBlink serwera oraz dla tego znaku jego DMR ID w polu RADIO_ID.
Musimy teraz dodać reguły mapowanie w rules.py gdzie przyjęliśmy że numer grupy która będzie używana do rozmów na XLX260 module A jest TG6:
'Reflektor XLX260-A': [
{'SYSTEM': 'MASTER-H', 'TS': 2, 'TGID': 6, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [6], 'OFF': [], 'RESET': []},
{'SYSTEM': 'MASTER-RPT', 'TS': 2, 'TGID': 6, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [6], 'OFF': [], 'RESET': []},
{'SYSTEM': 'XLX260-A', 'TS': 2, 'TGID': 9, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []},
]
Reflektor XLX260 zawsze nadaje na TG9 i szczelinie czasowej TS2.
Grupa TG 6 jest dynamiczna tzn aktywowana numerem grupy przez PTT i wyłącza się po 10 min jeśli nie jest używana od strony HBlink. Jeśli nie mam w swojej konfiguracji MASTE-RPT należy go usunąć z definicji reguł mapowania grup.
Reflektor XLX260 jest używane lokalnie w ramach serwerów HBLink. Moduł A (4001) służy do rozmów między użytkownikami z różnych HBLink serwerów aby nie zajmować TG8. Pozostałe moduły można wykorzystwać do łączności loklanych.
Reflektor XLX260 jest także dostępny dla innych z poza sieci HBlink i można go wybrać w konfiguracji na Pi-Star.
Po restarcie HBLink serwera możemy używać TG6 do rozmów na reflektorze.
Połącznie HBLink z reflektorem typu YSF
Jeśli chcemy aby nasz HBlink miał połącznie z jakimś reflektorem typu YSF (wykaz dostępnych reflektorów: https://register.ysfreflector.de/) musimy ustalić jego nazwę lub IP adres oraz numer portu do którego będziemy się łączyć. Została uruchomiony YSF reflektor dla lokalnych sieci HBLink w Polsce YSF PL HBLink
Musimy zainstalować oprogramowanie które połączy nasz HBlink z YSF reflektorem.
cd /opt
git clone https://github.com/DVSwitch/MMDVM_Bridge.git
cd MMDVM_Bridge
Musimy skopiować plik binarny z katalogu bin/
cp bin/MMDVM_Bridge.xxx MMDVM_Bridge
gzie zamiast xxx wpisujemy
armfh - komputery na procesorach ARM np Raspberry PI, Orange PI itp
i386 - komputery na procesorach Intel, AMD z Debian 32 bit
amd64 - komputery na procesorach Intel, AMD z Debian 64 bit
Robimy edycje pliku DVSwitch.ini:
nano DVSwitch.ini
Istotne parametry do zmiany / ustawiania podane są niżej:
[DMR]
TXPort =
RXPort =
[YSF]
TXPort =
RXPort =
ExportTG = 7000
Musimy ustawić porty tak aby YSF TXPort = DMR RXPort i YSF RXPort = DMR TXPort np
[DMR]
TXPort = 35103
RXPort = 35100
[YSF]
TXPort = 35100
RXPort = 35103
Ważne jest aby wybrane porty nie były używane przez inne aplikacje na komputerze na którym masz zainstalowane np HBlink, Analog_Bridge itp
W YSF mamy opcje ExportTG wpisujemy tam numer TG na której będzie przesyłane cały ruch do naszego HBLink na DMR np 7000
Po zapisaniu ustawień w DVSwitch.ini robimy edycje polu MMDVM_Bridge.ini
nano MMDVM_Bridge.ini
Wpisujemy w sekcji [General] znak wywoławczy “Callsign” i związanym z
nim DMR ID w polu “Id”naszego serwera HBLink. W części [Info]
zmieniamy informacje stosownie dla naszej lokalizacji.
Następnie konfigurujemy sieci.
[DMR]
Enable=1
[DMR Network]
Enable=1
Address=127.0.0.1 < - adres IP naszego HBLink. Jeśli na tym samym komputerze może być 127.0.0.1
Port= 62003 <- numer portu który został zdefiniowany w hblink.cfg w części [YSF-REF] pole PORT (czytaj niżej)
Password = password <- hasło jakie zostało zdefiniowane w hblink.cfg w części [YSF-REF] pole PASSPHRASE (czytaj niżej)
LocalPort = 62032 <- można pozostawić ale warto zweryfikować czy nie mam takie portu w hblink.cfg zajętego wtedy zmienić na dowolny inny
[System Fusion Network]
Enable=1
LocalAddress=0
LocalPort=3200
GatewaAddress= <- wpisać IP adres lub nazwę reflektora do którego się podłączmy (nazwę i port zajdziesz na [https://register.ysfreflector.de/](https://register.ysfreflector.de/)) )
GatewayPort= <- wpisać numer portu reflektora do którego się podłączamy
Po wpisaniu parametrów sieciowych możemy zapisać plik i przygotować plik startowy naszego gateway:
cd /lib/systemd/system
nano mmdvm_bridge_ysf.service
wpisać poniższą zawartość:
[Unit]
Description=MMDVM_Bridge_YSF Service
# Description=Place this file in /lib/systemd/system
# Description=N4IRS 04/20/2018
# To make the network-online.target available
# systemctl enable systemd-networkd-wait-online.service
After=network-online.target syslog.target netcheck.service
Wants=network-online.target
[Service]
StandardOutput=null
WorkingDirectory=/opt/MMDVM_Bridge
RestartSec=3
ExecStart=/opt/MMDVM_Bridge/MMDVM_Bridge /opt/MMDVM_Bridge/MMDVM_Bridge.ini
Restart=on-abort
[Install]
WantedBy=multi-user.target
Zapisać plik i uruchomić polecenie:
systemctl enable mmdvm_bridge_ysf
systemctl start mmdvm_bridge_ysf
Sprawdzamy status uruchomienia poleceniem:
systemctl status mmdvm_bridge_ysf
● mmdvm_bridge_ysf.service - MMDVM_Bridge_YSF Service
Loaded: loaded (/lib/systemd/system/mmdvm_bridge_ysf.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-06-27 19:08:47 CEST; 12h ago
Main PID: 23959 (MMDVM_Bridge)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/mmdvm_bridge_ysf.service
└─23959 /opt/MMDVM_Bridge/MMDVM_Bridge /opt/MMDVM_Bridge/MMDVM_Bridge.ini
Jeśli wszystko działa poprawnie status z zieloną kropką i mamy “Active: active (running)” będzie wyglądał jak wyżej.
Teraz musimy skonfigurować HBlink.
W konfiguracji hblink.cfg musimy dołożyć master dla podłączenia reflektora o nazwie: YSF-REF
[YSF-REF]
MODE: MASTER
ENABLED: True
REPEAT: True
MAX_PEERS: 5
EXPORT_AMBE: False
IP:
PORT: 62003
PASSPHRASE: password
......
Dokładamy reguły mapowania grup dla TG7000 (zakładamy że taki numer będzie TG z dostępem do YSF reflektora):
'YSF Reflector': [
{'SYSTEM': 'MASTER-S', 'TS': 2,'TGID': 7000, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [7000], 'OFF': [], 'RESET': []},
{'SYSTEM': 'MASTER-D', 'TS': 2,'TGID': 7000, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [7000], 'OFF': [], 'RESET': []},
{'SYSTEM': 'MASTER-RPT', 'TS': 2,'TGID': 7000, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'ON', 'ON': [7000], 'OFF': [], 'RESET': []},
{'SYSTEM': 'YSF-REF', 'TS': 2,'TGID': 7000, 'ACTIVE': True, 'TIMEOUT': 10, 'TO_TYPE': 'NONE', 'ON': [], 'OFF': [], 'RESET': []}
]
Grupa TG700 jest dynamiczna. Jeśli nie masz w hblink.cfg MASTER-RPT musisz go usunąć z reguł mapowania.
Po przeładowaniu hblink serwera możemy używać TG7000 do rozmów na połączonym YSF reflektorze.
Źródło: SP2ONG