HBLink i reflektory

Obecnie mamy kilka programów które pozwalają uruchomić serwer reflektora między innymi:

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