Dragon DMR Server 3.0.1 z SMS-ami, VoIP i XLX
Od 16 sierpnia 2019 r. serwer DMR sieci DRAGON Network działał na Raspberry Pi o nazwie fobos. 21 października 2026 r. go wyłączyłem, a serwer przeniosłem na nowy silnik w Dockerze na NAS-ie. Nazywa się Dragon DMR Server (DDMRS), a 23 października wgrałem wersję 3.0.1.
Prace zacząłem w lutym od kopii danych ze starego serwera i makiet panelu, w marcu przepisałem panel na FastAPI z danymi na żywo. Samo przejście zajęło dwa dni: 21 października wersja 2.0 z nowym silnikiem, SMS-ami i rozmowami z telefonu, 22 października 3.0.0 ze stałymi portami dla hotspotów i nowym panelem. 23 października doszła poprawka SMS-ów w 3.0.1. Kod serwera jest na licencji GNU GPLv3.
Panel i strona publiczna
Wszystko, co dzieje się na serwerze, widać pod https://fobos.dragon-net.pl: kto jest podłączony, mastery, połączenia z innymi sieciami i ostatnio słyszane stacje. Serwer restartuje się sam codziennie o 03:00, odliczanie jest na tej samej stronie.

W panelu przy numerze wersji w pasku bocznym jest ikonka, która otwiera historię zmian. Zapisuję tam krótko, co doszło w każdej wersji.

Administrator widzi w nagłówku panelu, kto w tej chwili nadaje, a po kliknięciu listę ostatnich rozmów i SMS-ów.

Hotspoty na stałych portach
Aktualizacja 25 października: porty przeniosłem do zakresu 52xx, który domyślnie przepuszcza firewall Pi-Star. Kto wpisał wcześniej 5001, 5002, 5003 albo 5010, zmienia w hotspocie tylko port, hasła zostają te same.
Hotspot łączy się z adresem fobos.dragon-net.pl. Port zależy od tego, jaki masz hotspot:
- 5201 - hotspot jednoslotowy (simplex). Każdy dostaje własną kopię mastera FREE1 i własne talkgrupy dynamiczne, więc to, co włączysz kluczowaniem, nie przełącza innych.
- 5202 - hotspot dwuslotowy (duplex), własna kopia mastera FREE2.
- 5203 - aplikacja DroidStar (na telefonie albo komputerze). Każde połączenie dostaje własną kopię mastera DroidStar.
- 5210 - dla osób, które mają w sieci własny master. Jeśli chcesz z niego korzystać, odezwij się do mnie.
Złe hasło dostaje odmowę, a po 5 złych hasłach w ciągu minuty serwer przez 10 minut nie odpowiada temu adresowi IP.
Jak podłączyć hotspot do 5201 albo 5202
W Pi-Star (albo WPSD) z DMRGateway dodaj w wolnej sekcji [DMR Network N] sieć DRAGON. ID hotspota zostaje bez zmian.
[DMR Network 3]
Enabled=1
Name=DRAGON
Address=fobos.dragon-net.pl
Port=5201
Password=hasło puli (niżej)
PassAllPC=2
PassAllTG=2
Dla hotspota dwuslotowego wpisz Port=5202 i hasło puli FREE2. PassAllPC=2 kieruje do DRAGON-a rozmowy prywatne i SMS-y ze szczeliny 2. Bez tego DMRGateway może je wysłać do innej sieci, np. do BrandMeistra. PassAllTG=2 przepuszcza do DRAGON-a wszystkie talkgrupy ze szczeliny 2, więc ustaw go tylko wtedy, gdy DRAGON jest jedyną siecią na tej szczelinie.
Hasło do portu 5201 (pula FREE1):
Pokaż hasło do 5201
fobosuser$2026Hasło do portu 5202 (pula FREE2):
Pokaż hasło do 5202
fobos2$2026Jak połączyć się z aplikacji DroidStar (port 5203)
DroidStar to aplikacja, która działa jak hotspot bez radia: łączy się z serwerem przez internet, a mówisz przez mikrofon telefonu albo komputera. Dla niej jest osobna pula DroidStar na porcie 5203.
- W ustawieniach aplikacji wpisz swój znak i swoje DMR ID.
- Dodaj własny serwer DMR: adres
fobos.dragon-net.pl, port5203i hasło (niżej). - Wybierz tryb DMR i ten serwer, połącz się i wybierz talkgrupę.
Kto korzystał z DroidStara na starym serwerze fobos, zmienia tylko port z 5224 na 5203, hasło zostaje to samo.
Hasło do portu 5203 (pula DroidStar):
Pokaż hasło do 5203
ds$2026Firewall w Pi-Star przepuszcza na zewnątrz tylko wybrane porty, w tym UDP 5200-5300. Porty serwera są w tym zakresie, więc w hotspocie nie trzeba nic dopisywać. Przy poprzednich portach (5001-5010) hotspot na Pi-Star 4.1.2 nie wysłał do serwera ani jednego pakietu, a w logu DMRGateway było sendto err: 1. Kto dopisał wtedy regułę dla 5001-5010 do /root/ipv4.fw, może ją usunąć.
Rozmowy prywatne (Private Call)
Rozmowa prywatna to połączenie z jednym radiem po jego ID DMR, bez talkgrupy.
- W radiu dodaj kontakt typu Private Call z ID DMR odbiorcy i wywołaj go.
- Odbiorca musi być za hotspotem albo przemiennikiem podłączonym do DDMRS i coś nadać w ciągu ostatniej godziny. Serwer pamięta przez 60 minut, gdzie ostatnio słyszał każde radio.
- W hotspocie z DMRGateway ustaw
PassAllPC=2w sekcji sieci DRAGON.
Rozmowa idzie wtedy tylko do hotspota, przez który odbiorca ostatnio nadawał. Jeśli serwer go w tym czasie nie słyszał, rozsyła rozmowę do wszystkich masterów sieci. Rozmowy prywatne i SMS-y zostają w sieci DRAGON, do BrandMeistra ani do partnerów OpenBridge nie przechodzą.
SMS-y
Między radiami. Zasady są takie same jak przy rozmowie prywatnej:
- Oba radia są za hotspotami albo przemiennikami na DDMRS, w hotspotach jest
PassAllPC=2. - Odbiorca coś nadał w ciągu ostatniej godziny. Po restarcie serwera (codziennie o 03:00) ta pamięć się zeruje, wtedy wystarczy krótkie kluczowanie na dowolnej talkgrupie.
- Wysyłasz SMS na ID DMR odbiorcy.
SMS trafia tylko do hotspota odbiorcy i serwer nie wciska go w środek czyjejś rozmowy. SMS do radia, którego serwer nie słyszał w ostatniej godzinie, przepada.
Na bramkę 999. ID 999 to bramka SMS serwera. SMS wysłany z radia na 999 trafia do skrzynki bramki, którą widzę w panelu.
Z panelu do radia. Jako administrator mogę wysłać z panelu SMS na dowolne ID, do 140 znaków. Do wyboru są formaty Motorola (TMS, domyślny), Hytera i trzy odmiany ETSI. Taki SMS też idzie tylko tam, gdzie serwer słyszał odbiorcę w ostatniej godzinie.

SMS GSM. Bramka umie też wysłać SMS na telefon komórkowy przez modemy GSM w centrali DN-VoIP (SMS na 999 o treści +48XXXXXXXXX treść). Każdy taki SMS kosztuje, dlatego ta funkcja jest domyślnie wyłączona i działa tylko dla ID DMR z listy dozwolonych.
Format SMS-a w radiu. Radia kodują SMS-y różnie. Anytone w trybie DMR Standard (ETSI) wysyła tekst w UTF-16LE, a nie w UTF-16BE, jak opisuje norma. Od wersji 3.0.1 bramka czyta taki SMS poprawnie, a SMS z panelu w formacie „ETSI (IP, UTF-16LE)” wychodzi w tym samym układzie, w jakim wysyła go radio. Domyślny format panelu to Motorola TMS. Jeśli Twoje radio nie pokazuje SMS-a z panelu, napisz, jaki to model, bo każdy SMS z radia zostawia w logu bramki surowe bajty, z których mogę dopisać kolejny format.
Rozmowy z telefonu (VoIP)
Z telefonu wewnętrznego w sieci DN-VoIP można słuchać talkgrupy i na nią nadawać. Działa to w simpleksie, jak radio:
- Wybierz 77019 (TG 19, Tech) albo 77020 (TG 20, Wywoławczy). Po dwóch krótkich pipnięciach słychać talkgrupę.
- Wybierz
*98#i po pipnięciu mów. #kończy nadawanie (niższe pipnięcie). Po 60 s nadawanie kończy się samo, usłyszysz trzy krótkie sygnały.
Między nadawaniami słuchasz talkgrupy. Jeśli radio akurat nadaje, po *98# usłyszysz zajętość, a mostek zacznie nadawać, gdy radio skończy (# rezygnuje). Na jednej talkgrupie może być naraz jedna rozmowa z telefonu, drugi dzwoniący od razu usłyszy zajętość.
Na radiach nadawanie z telefonu widać z numerem wewnętrznym jako ID, np. telefon 201 nadaje jako ID 201, a w panelu jako „VoIP 201”. Numer, który przypiszę w panelu do ID radia, nadaje jako to radio i ma znak właściciela. TG 19 i 20 idą też przez OpenBridge do partnera, więc rozmowę z telefonu słychać także u niego.

Połączenia z XLX
Serwer jest połączony z reflektorami XLX778 (moduły A i C) i XLX134 (moduł A). Każdy moduł to osobne połączenie: serwer loguje się do reflektora i po każdym połączeniu sam wybiera swój moduł. W sieci DRAGON te moduły są pod talkgrupami 7781 (XLX778-A), 7783 (XLX778-C) i 1341 (XLX134-A). Włączasz je kluczowaniem tej talkgrupy, a wyłączasz kluczowaniem TG 400. Na razie są dostępne na kilku masterach sieci, w pulach FREE1 i FREE2 (porty 5201 i 5202) ich nie ma.

OpenBridge i papuga
Partnerzy OpenBridge łączą się teraz na jeden port UDP 5220, a nie każdy na swój. Papuga jest na TG 666 (TS2): nadajesz krótki komunikat, a serwer odtwarza go z powrotem, więc łatwo sprawdzić, jak Cię słychać.
Tagi: DDMRS, DMR, SMS, VoIP, XLX, hotspot