Spis treści


1) Serwer DMR - instalacja HBLink + HBMonitor

Czas na instalację serwera DMR - HBlink

Uruchamiamy terminal i Wpisujemy:

sudo -s
cd /opt

git clone https://github.com/n0mjs710/HBlink3.git

cd /opt/HBlink3




Dzięki tym komendom pobraliśmy instalkę HBLink i dokonamy teraz jej instalacji dzięki poniższym komendom

chmod +x install.sh
./install.sh




Po instalacji możemy przejść do etapu wstępnej konfiguracji.

Plik konfiguracyjny hblink.cfg
Wydając komende cp hblink-SAMPLE.cfg hblink.cfg robimy kopię przykładowego pliku konfiguracyjnego nadając mu jednocześnie docelową nazwę którą rozpozna program HBLink

Edytujemy ten plik poprzez nano hblink.cfg i dokonujemy zmian w konfiguracji. Wiele stron ma te opisy ja podam MÓJ i nie traktować go proszę jako poprawny

Przedstawiam moje zmiany w pliku i prosze sobie porównać z waszymi - jednocześnie prosze o lekturę stron źródłowych aby zapoznać się z innymi konfiguracjami i sposobami wyjaśnienia co-jak-dlaczego


[GLOBAL]
PATH: ./
PING_TIME: 15
MAX_MISSED: 3
USE_ACL: False
REG_ACL: PERMIT:ALL
SUB_ACL: PERMIT:ALL
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL



Ustawienia wysyłania RAPORTÓW niezbednych do pracy monitora www
[REPORTS]
REPORT: True
REPORT_INTERVAL: 10
REPORT_PORT: 4321
REPORT_CLIENTS: 127.0.0.1



Ustawienia LOGów systemowych
[LOGGER]
LOG_FILE: /tmp/hblink.log
LOG_HANDLERS: console-timed
LOG_LEVEL: INFO
LOG_NAME: HBlink



Ustawienia pobierania aktualizacji bazy danych użytkowników
[ALIASES]
TRY_DOWNLOAD: True
PATH: ./
PEER_FILE: peer_ids.json
SUBSCRIBER_FILE: subscriber_ids.json
TGID_FILE: talkgroup_ids.json
PEER_URL: https://www.radioid.net/static/rptrs.json
SUBSCRIBER_URL: https://www.radioid.net/static/users.json
STALE_DAYS: 7



Ustawienia OPEN BRIDGE służącego do połączeń miedzy-serwerowych. Na początku jest niepotrzebna i zmieniamy paramert ENABLED z True na False
[OBP-1]
MODE: OPENBRIDGE
ENABLED: False




Tworzymy własny MASTER do którego bedziemy podłączać nasz HotSpoty.
[MASTER-1]
MODE: MASTER
ENABLED: True
REPEAT: True
MAX_PEERS: 10
EXPORT_AMBE: False
IP:
PORT: 54000
PASSPHRASE: passw0rd
GROUP_HANGTIME: 5
USE_ACL: False
REG_ACL: PERMIT:ALL
SUB_ACL: PERMIT:ALL
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL



Ten dział można kopiować w zależności ile kont chcemy zrobić, ale należy pamiętać aby NAZWA i PORT sie nie pokrywały
[MASTER-2]
MODE: MASTER
ENABLED: True
REPEAT: True
MAX_PEERS: 10
EXPORT_AMBE: False
IP:
PORT: 54010
PASSPHRASE: passw0rd
GROUP_HANGTIME: 5
USE_ACL: False
REG_ACL: PERMIT:ALL
SUB_ACL: PERMIT:ALL
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL


Wyłączamy resztę funkcji
[REPEATER-1]
MODE: PEER
ENABLED: False
...

[XLX-1]
MODE: XLXPEER
ENABLED: False


Wiem wiem ciągnie się jak flaki w oleju ale staram sie wytłumaczyć najprościej jak potrawię
Po przebrnięciu tego można zapisac plik i prześć do kolejnego etapu.




Plik reguł rules.py
Kolejnym etapem jest przygotowanie pliku który jest odpowiedzialny za kierowanie ruchem w naszym serwerze. Wstepnie zrobimy ten plik pusty a dalsze tłumaczenie bedzie w innym dziale, Narazie chodzi nam o samo uruchomienie serwera i możliwość podłączenia do niego hostpota.
Komenda cp rules_SAMPLE.py rules.py robi kopię przykładowego pliku regół nadając mu jednocześnie docelową nazwę którą rozpozna program HBLink

I następnie go edytujemy komendą nano rules.py

BRIDGES = {
'WORLDWIDE': [
{'SYSTEM': 'MASTER-1', 'TS': 1, 'TGID': 1, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': ............
{'SYSTEM': 'CLIENT-1', 'TS': 1, 'TGID': 3100, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': ............
],
'ENGLISH': [
{'SYSTEM': 'MASTER-1', 'TS': 1, 'TGID': 13, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': ............
{'SYSTEM': 'CLIENT-2', 'TS': 1, 'TGID': 13, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': ............
],
'STATEWIDE': [
{'SYSTEM': 'MASTER-1', 'TS': 2, 'TGID': 3129, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': ............
{'SYSTEM': 'CLIENT-2', 'TS': 2, 'TGID': 3129, 'ACTIVE': True, 'TIMEOUT': 2, 'TO_TYPE': ............
]
}


kasujemy wszystko pomiędzy znakami { } i pozostawiamy plik pozbawiony regół w celu uruchomienia serwera. To najbezpieczniejsza opcja, a do edycji i tworzenia regół kanałów wracać można w każdej chwili

BRIDGES = {
}


Taki plik zapisujemy i przechodzimy do następnego kroku czyli utworzenie pliku startowego/autostart.
zanim to zrobimy możemy poprzez komende /usr/bin/python3 /opt/HBlink3/bridge.py uruchomić HBLink ręcznie i sprawdzić czy raportuje nam w terminalu jakieś błędy



AutoStart
Tworzymy plik startowy hblink komendą nano /lib/systemd/system/hblink.service a następnie wklejamy poniższą zawartość po czym zapisujemy ów plik

[Unit]
Description=HB bridge all Service

After=network-online.target syslog.target
Wants=network-online.target

[Service]
StandardOutput=null
WorkingDirectory=/opt/HBlink3
RestartSec=3
ExecStart=/usr/bin/python3 /opt/HBlink3/bridge.py
Restart=on-abort

[Install]
WantedBy=multi-user.target


Sterowanie teraz odbywa się poprzez komendy :
systemctl enable hblink włączenie autostart
systemctl disable hblink wyłączenie autostart
systemctl start hblink uruchomienie hblink
systemctl stop hblink wyłączenie hblink
systemctl status hblink status hblink


Po wydaniu koment ENABLE, START i STATUS powinniście mieć taki wynik

I mamy zielone światło do przejścia o krok dalej