DVSwitch to zestaw aplikacji które pozwalają uruchomić własny lokalny serwer DV do którego mogą podłączać się hotspoty i przemienniki. Ma możliwość połączenia takiej lokalnej sieci do innych sieci np DMR BM/ DMR+ itp. DMRlink (Open Source IPSC Client Motorola), HBlink (mmdvm hotspots, przemienniki), Analog_Bridge (analog audio), HB_Bridge or IPSC_Bridge. Przy pomocy tych narzędzi możemy zbudować własną lokalną sieć DV do której mogą podłączać się przemienniki i hotspota na bazie mmdvm oraz motoroli itp.

Historia DVSwitch jest związana z grupą radioamatorów z Kansas w USA K0USY. Na długo przed powstaniem Brandmeister, DMR+ i każdej sieci innej niż DMR-MARC, powstała KS-DMR. W październiku 2010 roku, Grupa K0USY umieściła w Lawrence pierwszy swój stały przemiennik DMR Kansas. Wkrótce potem, K0USY Group zakupiła c-Bridge, aby umożliwić tworzenie sieci na własną rękę, bez uzależnienia od sieci krajowej.
Grupa radioamatorów z Kansas, zauważyła ograniczenia jakie posiada c-Bridge i grupa stawała się coraz bardziej niezadowolona z braku niezawodności i nieelastyczności. W połowie 2013 roku, Cort Buffington, N0MJS rozpoczął projekt inżynierii odwrotnej protokołu sieciowego Motorola IPSC. W wyniku czego, grupa zyskała niezależność; tym razem od komercyjnych produktów sieciowych, które nigdy nie były przeznaczone do użytku amatorskiego. Pod koniec 2013 roku, K0USY Group pracowała na własnym oprogramowaniu do routingu sieciowego IPSC o nazwie DMRlink - które udostępniła jako oprogramowanie open source.
Kiedy MMDVM ustabilizowało się i wprowadziło "HomeBrew Repeater Protocol", ponownie K0USY Group opracowała HBlink, kolejnym pakietem oprogramowania open source dla przemienników na bazie MMDVM. Dzięki pomocy współtwórców Steve'a, N4IRS i Mike'a, N4IRR, DMRlink i HBlink zyskały możliwość komunikacji międzykomunikacyjnej - tworząc kolejne rozwiązanie open source łączące ze sobą przemienniki MMDVM i Motoroli.

DMRlink to Open Source IPSC Master / Peer narzędzie napisany w pytonie przez Cort Buffington, N0MJS. DMRlink zapewnia komunikację do i z IPSC (np przemienniki Motorola). Może to być naprzykład przemiennik Motoroli. Z DMRLink jest też dostępna aplikacja IPSC_Bridge. Ta aplikacja komunikuje się z DMRlink i zapewnia mostek do innych systemów. Warto tu powiedzieć o ograniczenicha DMRLink. Po pierwsze - działają tylko połączenia grupowe, brak połączeń prywatnych, brak obsługi sms. Musimy konfigurować każdą grupę rozmowną w konfiguracji 'bridges', nie ma możliwości użycia „zakresu” grup rozmownych.

IPSC_Bridge

HBlink to Open Source HB Master / Peer napisany w pythonie przez Cort Buffington, N0MJS. HBlink zapewnia komunikację do i z sprzętem który używa HB Repeater Protocol. Może to być przemiennik MMDVM, DVMega HotSpot, OpenSpot lub urządzenie sieciowe jak BrandMeister. Posiada wsparcie dla protokołu OpenBridge. Z HBLink dostępna jest aplikacja HB_Bridge. Ta aplikacja komunikuje się z HBlink i zapewnia mostek do innych systemów.

MMDVM_Bridge służy do zapewnienia połączenia pomiędzy sieciami cyfrowymi. MMDVM_Bridge działa w połączeniu z innymi narzędziami mostkowymi, aby umożliwić połączenie sieci z różnymi formatami audio i komponentami metadanych. Jest dostępna obsługa sieci DMR, D-Star, Yaesu Fusion, P25 i NXDN. Dodatkowo, mostkowanie do sieci analogowych (Allstar, Echolink) może być zrealizowane przy niewielkim nakładzie pracy.

Analog_Bridge strumień analogowy dźwięku, używając Vocodera sprzętowego DV3000 lub programowego md380-emu konwertuje się do AMBE i komunikuje się z jedną z dostępnych aplikacji opisanych powyżej. Dźwięk analogowy może pochodzić z ASL lub aplikacji działającej na komputerze stacjonarnym.

Możliwości wykorzystania narzędzi DVSwitch przedstawia poniższy rysunek konfiguracji lokalnej sieci w Kansas USA, gdzie widać połączenia miedzy-sieciowe realizowane:

KS-DMR

Uruchamiamy nasz loklany HBLink Master Server.

Najlepszy rozwiązaniem jest to zrobić na komputerze który ma zainstalowany Debian Stretch v9. Poniższy opis jest wykonany na takim systemie. Wszystkie poniżej komendy w opisie są wykonywane jako użytkownik 'root'. UWAGA na Debian v8 Jessie nie będzie działał HBLink3 gdyż wersja python 3.4 ma niezgodną składnie z python 3.5 który jest w Debian v9 i dmr_utils3 które używa python 3.5 nie działa na python 3.4. Można zainstalować HBLink który działa na python 2 i używa dmr_util tak jak HBmonitor. Poniżej opis jak uruchomić podstawowy HBLink3 serwer do którego można będzie się podłączyć hotspotami. Można rozważyć instalacje HBLink serwera na wirtualnym komputerze VPS https://www.nazwa.pl/vps/ lub ArubaCloud co zapewni nam stabilność i niezawodność naszego serwera na którym oprócz serwera HBLink możemy uruchomić inne usługi dla naszej lokalnej sieci. Poniższe opisane komendy są wykonywane jako użytkownik root lub komendy sudo -s aby mieć uprawnienia użytkownika root.

apt-get update
apt-get upgrade
apt-get install git python-pip python3-pip python-dev python3-dev libffi-dev libssl-dev

Instalujemy HBLink3 który używa python3 i wg opinii autorów ma lepszą wydajność niż HBLink z python2. Obecnie kiedy pisałem ten opis Parrot nie jest jeszcze dostępny w wersji HBLink3.

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

Uruchamiamy instalacje niezbędnych bibliotek python3 dla HBlink3:

chmod 0755 install.sh
./install.sh

Konfiguracja HBLink3. Robimy kopie przykładowej konfiguracji dla HBLink:

cd /opt/HBlink3
cp hblink-SAMPLE.cfg hblink.cfg

Robimy edycje pliku:

nano hblink.cfg

Poniżej pokazuje fragmenty pliku które należy zmienić wg podanych niżej

[LOGGER]
LOG_FILE: /var/log/hblink.log
LOG_HANDLERS: file-timed
LOG_LEVEL: INFO
LOG_NAME: HBlink

Wyłączamy link OpenBridge który nie używamy:

[OBP-1]
MODE: OPENBRIDGE
ENABLED: False

Zmieniamy hasło dostępowe (PASSWORD) oraz numer portu (PORT) na jakim będzie dostępny nasz HBLink serwer, Pole IP pozostawiamy puste. Dane te (PORT, PASSWORD oraz zewnętrzny IP) będą później potrzebne dla użytkowników Pi-Star hotspotów którzy będą chcieli się podłączyć do Twojego Master serwera:

[MASTER-1]
MODE: MASTER
ENABLED: True
REPEAT: True
MAX_PEERS: 10
EXPORT_AMBE: False
IP:
PORT: 62000
PASSPHRASE: password
GROUP_HANGTIME: 5
USE_ACL: True
REG_ACL: DENY:1
SUB_ACL: DENY:1
TGID_TS1_ACL: PERMIT:ALL
TGID_TS2_ACL: PERMIT:ALL

Wyłączamy link przy pomocy Homebrew protokołu (nie będziemy używali tego)

[REPEATER-1]
MODE: PEER
ENABLED: False
.....

[XLX-1]
MODE: XLXPEER
ENABLED: False
.....

Zapisujemy konfiguracje.

Robimy kopie pliku z regułami mapowania grup:

cp rules_SAMPLE.py  rules.py

Zrobić edycje pliku rules.py

nano rules.py

I należy skasować przykładowe mapowania grup w BRIDGES i zostawić zawartość taką jak niżej:

 BRIDGES = {

 }

W podstawowym Master serwerze nie potrzebujemy robić mapowania grup rozmownych.

Zapisać plik.

Tworzymy plik do uruchamiania automatycznie podczas startu systemu HBlink3

nano /lib/systemd/system/hblink.service

wklejamy zawartość do pliku:

[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

Zapisujemy plik i następnie aktywujemy HBLink:

systemctl enable hblink.service
systemctl start hblink.service

Sprawdzamy czy HBLink wystartował:

systemctl status hblink.service

Jeśli wszystko jest poprawnie, nasz serwer działa będziemy mieli wynik:

● hblink.service - HB bridge all Service
   Loaded: loaded (/lib/systemd/system/hblink.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-06-10 13:44:38 CEST; 2h 11min ago
 Main PID: 29582 (python3)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/hblink.service
           └─29582 /usr/bin/python3 /opt/HBlink3/bridge.py

cze 10 13:44:38 dmr-torun systemd[1]: Started HB bridge all Service.

Możemy zobaczyć do logu:

more /var/log/hblink.log

Instalujemy HBmonitor

HBmonitor to narzędzie dla administratora serwera które służy do monitorowania na stronie internetowej ruchu na HBLink.

UWAGA! HBmonitor jest w wersji bardzo rozwojowej i niechętnie jest wsparcie do napotkanych problemów z tym narzędziem przez grupe DVSwitch. Dlatego jeśli będziesz miał problemy z HBmonitor raczej nie wysyłaj zapytań do DVSwitch bo możesz spotkać się uwagami że to narzędzie obecnie ma ma supportu. Będziesz musiał sam rozwiązać problem.

Poniżej instalacja mojej wersji HBmonitora która ma zmienioną kolorystykę, dołożona funkcja wyświetlania nazw grup z talkgroup_ids.json itp.

cd /opt
git clone https://github.com/sp2ong/HBmonitor.git
cd HBmonitor
chmod 0755 install.sh
./install.sh
cp config_SAMPLE.py config.py

.

nano config.py

.

REPORT_NAME     = 'Dashboard of local DMR Network'  # Name of the monitored HBlink system
CONFIG_INC      = True                # Include HBlink stats
LASTHEARD_INC =True             # Show lastheard
BRIDGES_INC     = True                 # Include Bridge stats (confbrige.py)
HBLINK_IP       = '127.0.0.1'           # HBlink's IP Address
HBLINK_PORT     = 4321                  # HBlink's TCP reporting socket
FREQUENCY       = 10                    # Frequency to push updates to web clients
WEB_SERVER_PORT = 8080                 # Has to be above 1024 if you're not running as root
CLIENT_TIMEOUT  = 0                  # Clients are timed out after this many seconds, 0 to disable

# Files and stuff for loading alias files for mapping numbers to names
PATH            = './'                                                             # MUST END IN '/'
PEER_FILE       = 'peer_ids.json'                              # Will auto-download from DMR-MARC
SUBSCRIBER_FILE = 'subscriber_ids.json'          # Will auto-download from DMR-MARC
TGID_FILE       = 'talkgroup_ids.json'                          # User provided, should be in "integer TGID, TGID name" format
LOCAL_SUB_FILE  = 'local_subscriber_ids.json'    # User provided (optional, leave '' if you don't use it), follow the format of DMR-MARC
LOCAL_PEER_FILE = 'local_peer_ids.json'           # User provided (optional, leave '' if you don't use it), follow the format of DMR-MARC
FILE_RELOAD     = 7                                                   # Number of days before we reload DMR-MARC database files
PEER_URL        = 'https://www.radioid.net/static/rptrs.json'
SUBSCRIBER_URL  = 'https://www.radioid.net/api/dmr/user/?country=Poland'

# Settings for log files
LOG_PATH        = './log/'
LOG_NAME        = 'hbmon.log'

Zwróć uwagę na LOG_PATH, CLIENT_TIMEOUT, SUBSCRIBER_URL, FILE_RELOAD , WEB_SERVER_PORT (port na którym dostępny jest nasz monitor: http://ip_adres_hblink:8080

Tworzymy plik do uruchamiania automatycznie podczas startu systemu HBmonitor

nano /lib/systemd/system/hbmon.service

wklejamy zawartość do pliku:

[Unit]
Description=HBmon Service

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

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

[Install]
WantedBy=multi-user.target

Zapisać plik i następnie aktywujemy HBmonitor:

systemctl enable hbmon.service
systemctl start hbmon.service

Sprawdzamy czy HBLink wystartował:

systemctl status hbmon.service

Jeśli całość działa poprawnie wynik statusu będzie wyglądał:

● hbmon.service - HB bridge all Service
   Loaded: loaded (/lib/systemd/system/hbmon.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-06-10 13:42:06 CEST; 2h 18min ago
 Main PID: 29543 (python)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/hbmon.service
           └─29543 /usr/bin/python3 /opt/HBmonitor/monitor.py

cze 10 13:42:06 dmr-torun systemd[1]: Started HB bridge all Service.

Możemy teraz sprawdzić jak działa nasz monitor sieci HBLink: http://ip_adrres_hblink:8080

W Polsce są używane także przemienniki Hytera. Na obecna chwilę w DVSwitch nie ma wsparcia dla tych przemienników choć wiem że prace trwają. Obecnie można rozwiązać ten problem stosując rozwiązanie (niestety program dostępny jako skompilowany moduł) Hytera DMR Gateway który jest dostępny na stronie: http://ham-dmr.at/index.php/dmr-gateway/. Używając gw_hytera_mmdvm i dmrgateway możemy podłączyć się do HBLinka:

Repeater Hytera->Hytera-Gateway->DMRGateway->HBlink->OpenBridge BM

Opis jak to zrobić jest dostępny tu: http://sp2ong.noip.pl/pl/blog/podlaczanie-przemiennika-hytera-do-hblink

Z opinii jakie otrzymałem od osób które używają HBLink bardzo dobrze działa na Raspberry PI (myślę że mówimy tu o wersji RPI 3 z Raspbian Stretch).

Jak uruchomić HBLink w wersji 2 na Pi-Star znajdziecie opis w tym dokumencie:

http://dl4fly.darc.de/docs/lokales_DMR_mit_pistar_DL4FLY.pdf

Na koniec warto jako lekturę przeglądać strony twórców narzędzi HBLink z Kansas http://ks-dmr.net/ http://k0usy.strikingly.com/. Mają oni najwięcej doświadczeń w konfiguracji i łączeniu HBLink z innymi sieciami DV. Polecam lekturę DVSwitch wiki: https://dvswitch.groups.io/g/main/wiki/home

Może komuś przyda się do rozwiązania problemu z:
"Please install it from HTTPS://pypi.python.org/pypi/service_identity".
( info z forum hblink)

pip install --upgrade google-auth-oauthlib
pip install service_identity
pip install --upgrade pyasn1-modules
pip3 install service_identity --force --upgrade
pip install service_identity --force --upgrade
pip2 install service_identity --force --upgrade
pip3 install service_identity --force --upgrade

Poprzedni Post Następny Post

Cytowanie lub kopiowanie treści jest dozwolone w przypadku podania źródła pochodzenia tekstu i/lub autora.