FRN ( FreeRadioNetwork )  jest mylnie kojarzone z tylko z bramkami CB lub PMR.

Oryginalną stroną projektu jest https://www.freeradionetwork.eu/   znajdziemy tam  Windowsowe aplikacje.

Na stronie http://alterfrn.ucoz.ru/ znajdziemy zarówno program serwer jak i program klient do tej sieci FRN na różne systemy operacyjne. Na jego podstawie powstały inne produkcje a bardzie nakładki graficzne np. PiCQ, czy Java FRN ze strony freeradionetwork.de

Ale sercem bijącym jest obecnie produkcja rosyjska AlterFRN.

 

Instalację serwera przeprowadzamy w następujący sposób.

 

wget http://alterfrn.ucoz.ru/S6584/FRNServerConsole.Linux-armhf.6584r.tgz
sudo tar -zxvf FRNServerConsole.Linux-armhf.6584r.tgz
sudo rm FRNServerConsole.Linux-armhf.6584r.tgz
sudo mv FRNServerConsole.Linux-armhf.6584r FRNserver
cd FRNserver
sudo mv FRNServerConsole.Linux-armhf.r6584 FRNserver

 

wynikiem tych wszystkich operacji jest katalog i plik wykonawczy o nazwie FRNserver

pi@raspberrypi:/opt/FRNserver $ ls
FRNserver  networks.cfg  server.ini

 

Konfiguracja polega na edycji pliku networks.cfg oraz server.ini

 

Program będziemy uruchamiać  i zatrzymywać za pośrednictwem ikon w menu lub komendami

/opt/FRNserver/FRNserver daemon /opt/FRNserver/server.ini
/opt/FRNserver/FRNserver stop /opt/FRNserver/server.ini

 Próba uruchomienia serwera kończy się komunikatem błędu

Error: Parameter [Server].ServerCharsetName is empty

co generalnie informuje nas o konieczności konfiguracji serwera zanim będziemy chcieli go uruchomić.

Konfiguracja serwera odbywa się w dwóch etapach. Pierwszy to edycja pliku server.ini zawierającego główne ustawienia serwera oraz networks.cfg w którym sa zawarte informacje o ilości kanałów i funkcjach poszczególnych kanałów.

 Aby edytować plik server.ini wydajemy komendę  sudo nano /opt/FRNserver/server.ini i naszym oczom pokazuje się zawartośc pliku w którym musimy dokonać zmian w celu personalizacji ustawień serwera.

 

# AlterFRN server
# National names MUST be UTF-8
# Revision 6584
# 2021-01-22



# http://alterfrn.ucoz.ru/index/server_config/0-27#s_1
[Server]

# ServerCharsetName
# RU: Обазятельно для UNIX/Linux, необязательно для Windows
#     Имя ANSI кодировки FRN это печальное "наследие" оригинального FRN: только MSWindows, только ANSI.
#     Корректной ANSI кодировкой для FRN является текущая ANSI кодировка для вашего языка на Microsoft Windows.
#     Выяснить текущую ANSI кодировку поможет команда "ansi" для AlterFRN-Server-Win32
#     Просто запустите на MS Windows команду "C:\FRN\FRNServerConsole.Win32.exe ansi"
#       Для Германии: ISO-8859-1
#       Для России: WINDOWS-1251
# EN: Mandatory for UNIX/Linux, optional for Windows
#     Name of ANSI charset for FRN is very sad "heritage" of the original FRN: only MSWindows, only ANSI.
#     Correct FRN ANSI charset is default ANSI charset on MS Windows for your language.
#     Command "ansi" for AlterFRN-Win32-server will show it for you.
#     Just run on command console of your MSWindows with your language: "C:\FRN\FRNServerConsole.Win32.exe ansi"
#       For Germany: ISO-8859-1
#       For Russia: WINDOWS-1251
ServerCharsetName=


PresentServerAddress=your.main.server.address
PresentServerPort=10024
ServerOwnerEMail=Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.
BackupServerAddress=your.backup.server.address
BackupServerPort=10024
ClientHandshakeTimeout=4
ClientActivityTimeout=8
ListenServerPorts=10024
DefaultNetworkName=Test
DefaultCountry=
IPVersion=46
ManagerInvalidPasswordScript=
ClientSessionMaxTime=1y

# ManagerMode
# Ru: режим всего сервера для взаимодействия с FRNSysMan
#       - Standalone/S/0 - нет взаимодействия с FRNSysMan, по умолчанию
#       - Notify/N/1 - только уведомлять FRNSysMan о подключающихся клиентах
#       - Light/L/2 - мягкий режим: использовать авторизацию клиентов от FRNSysMan,
#                       но разрешать подключения при неработающем FRNSysMan
#       - FRN/F/3 - жесткий режим: использовать авторизацию клиентов от FRNSysMan,
#                       но запрещать подключения при неработающем FRNSysMan
# En: the mode of interaction with FRNSysMan for the whole server
#       - Standalone/S/0 - no interaction with FRNSysMan, default
#       - Notify/N/1 - just notify the FRNSysMan about connected clients
#       - Light/L/2 - soft mode: use FRNSysMan authentification,
#                       but allow client connections if FRNSysMans does not work(answer)
#       - FRN/F/3 - hard mode: use FRNSysMan authentification,
#                       but disallow client connections if FRNSysMans does not work(answer)
ManagerMode=Standalone

 

Informacje o poszczególnych funkcjach znajdziecie na stronie http://alterfrn.ucoz.ru lecz postaram się troszkę to przybliżyć.

 

 Generalnie najczęściej interesować nas będzie zmiana podstawowych funkcji.
 


ServerCharsetName=ISO-88859-2
Ustawnienia klawiatury
 

PresentServerAddress=your.main.server.address
Adres pod jakim serwer będzie się przedstawiał
 

PresentServerPort=10024
Port na jakim serwer będzie się przedstawiał
 

ServerOwnerEMail=Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.
Konto super-administratora serwera
 

BackupServerAddress=your.backup.server.address
Adres zapasowego serwera
 

BackupServerPort=10024
Port zapasowego serwera
 

ListenServerPorts=10024
Port lub porty na jakich serwer ma wpuszczać klientów ( może być ich kilka )
 

DefaultNetworkName=Test
Kanał domyślny na serwerze
 

ManagerMode=Standalone
Tryb pracy serwera ( samowystarczalny lub współpraca z SysManagerem Holandia lub Niemcy )

 

 

Po wstępnym dokonaniu konfiguracji można uruchomić serwer i postarać się na niego zalogować. W tym celu wydajemy komendę

sudo /opt/FRNserver/FRNserver daemon /opt/FRNserver/server.ini

 I w odpowiedzi na terminalu powinniśmy zobaczyć podobny komunikat

pi@raspberrypi:~ $ sudo /opt/FRNserver/FRNserver daemon /opt/FRNserver/server.ini
AlterFRN-Server-r6584-Linux-armhf [/opt/FRNserver/server.ini] started as daemon with PID=4299 [/var/run/frnserver.pid]
pi@raspberrypi:~ $

 

Windowsowy FRN klient po połączeniu powinien pokazać coś takiego

 

Czyli serwer się uruchomił lecz trzeba zamienić te dziwne kanały na takie jakie byśmy chcieli mieć na naszym serwerze. Dlatego teraz krok numer dwa konfiguracja kanałów na serwerze.

W tym celu edytujemy plik networks.cfg poprzez wydanie komendy

sudo nano /opt/FRNserver/networks.cfg

i naszym oczom pokazuje sie konfiguracja kanałów którą możemy dowolnie zmieniać.

# National names MUST be UTF-8


Test | ParrotEnable=yes ; ParrotStartStopEnable=no
Rossija | OwnerEMail=Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.;
Parrot5|ParrotEnable=yes;ParrotRepeatCount=5
Parrot15|ParrotEnable=yes;ParrotRepeatCount=15
Room
Debug
Mäßüöen(CP1252)|CharsetName=CP1252
Привет(Serv CP1251)
Привет(Net CP1251)|CharsetName=CP1251
Привет(CP866)|CharsetName=CP866
Привет(ISO-8859-5)|CharsetName=ISO-8859-5
Привет(KOI8R)|CharsetName=KOI8-R
ПРИВЕТ(KOI7)|CharsetName=KOI-7
Привет(UTF8)|CharsetName=UTF-8;MaxSpeechTime=60
Длинное имя комнаты в UTF-8|CharsetName=UTF-8
HiddenNet|Hidden=yes;ManagerMode=S

 

Ja mam gotowy szablon tak wiec kasuję wszystko w pliku w wklejam

# National names MUST be UTF-8


Test    | Hidden=N ; ManagerMode=S ; AccessInfoMode=A ; SpeechPause=3000 ; ParrotEnable=yes ; ParrotStartStopEnable=yes ; ParrotMaxRecordTime=20 ; ParrotRepeatCount=2
Kanal-1 | AccessInfoMode=A ; OwnerEMail=Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.;
Kanal-2 | OwnerEMail=Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.;
Kanal-3 | OwnerEMail=Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.;
Kanal-4 | OwnerEMail=Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.;
Kanal-5 | OwnerEMail=Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.;
Kanal-6 | OwnerEMail=Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.;
Kanal-7 | OwnerEMail=Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.;
Kanal-8 | OwnerEMail=Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.,Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.;



#OwnerEMail=Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.      - email urzytkownika mającego uprawnienia ADMIN na kanale. Każdy kanał może mieć innego
#Hidden=N                       - kanał ukryty Y=yes, N=no
#ManagerMode=S                  - obsługa przez kanał autoryzacji SysManagera S=nie, N=tylko informowanie, L+F=Autoryzacja przez Holandię
#AccessInfoMode=A               - Wiadomość powitalna po wejściu na kanał
#SpeechPause=3000               - Wymuszona przerwa pomiędzy PTT  
#ParrotStartStopEnable=yes      - Możliwość aktywacji/deaktywacji papugi
#ParrotMaxRecordTime=20         - Maksymalny czas nagrywania papugi
#ParrotRepeatCount=2            - Ilość odtworzeń papugi

Po dokonaniu tych zmian możemy zresetować serwer FRN komendami

sudo /opt/FRNserver/FRNserver stop /opt/FRNserver/server.ini
sudo /opt/FRNserver/FRNserver daemon /opt/FRNserver/server.ini

 

Warto jeszcze raz edytować plik server.ini i uruchomić w nim opcję logów serwera oraz możliwość wykonywania przez serwer komend wydanych z terminala. Warto zapoznać się z opisem na stronie  http://alterfrn.ucoz.ru/

W celu uruchomienia tych opcji w edytowanym pliku należy na samym dole odszukać takie funkcje

[System]
PidFile=frnserver.pid
LogFile=frnserver.log
DataDir=
LogClientLevel=2
LogExec=yes
DataChangeScript=


SystemCharsetName=


[Command]
CommandEnabled=no
CommandPort=10023
CommandIPVersion=4
CommandPreferIPv4=yes
 
I zamienić wpisy na
 
[System]
PidFile=frnserver.pid
LogFile=/var/log/frnserver.log
DataDir=
LogClientLevel=5
LogExec=yes
DataChangeScript=

SystemCharsetName=ISO-8859-2

[Command]
CommandEnabled=yes
CommandPort=10023
CommandIPVersion=4
CommandPreferIPv4=yes
 
Dzięki temu zabiegowi bedzie można wydać komendę
 tail -f /var/log/frnserver.log
 
i w konsoli będziemy widzieli log na żywo
 
pi@raspberrypi:~ $ tail -f /var/log/frnserver.log
2021-02-06 14:05:59.757: ERROR: Read blocks: /opt/FRNserver/blocks.dat: error [2] of opening file "/opt/FRNserver/blocks.dat": No such file or directory
2021-02-06 14:05:59.758: ERROR: Read modes: /opt/FRNserver/modes.dat: error [2] of opening file "/opt/FRNserver/modes.dat": No such file or directory
2021-02-06 14:05:59.758: ERROR: Read rights: /opt/FRNserver/rights.dat: error [2] of opening file "/opt/FRNserver/rights.dat": No such file or directory
2021-02-06 14:05:59.758: ERROR: Read notices: /opt/FRNserver/notices.dat: error [2] of opening file "/opt/FRNserver/notices.dat": No such file or directory
2021-02-06 14:05:59.759: Start listening: Command: 127.0.0.1:10023
2021-02-06 14:05:59.759: Start listening: Client: [::]:10024
2021-02-06 14:05:59.759: Start listening: Client: 0.0.0.0:10024
2021-02-06 14:06:02.135: Client: 192.168.1.160 35495 CONNECT
2021-02-06 14:06:02.260: Client: 192.168.1.160 35495 HANDSHAKE_STR_OK CT:<VX>2014003</VX><EA>Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.</EA><PW>AFHMWGW</PW><ON>M0IQF, Marcin</ON><CL>2</CL><BC>PC Only</BC><DS></DS><NN>Poland</NN><CT>- - -</CT><NT>Test</NT>
2021-02-06 14:06:02.759: Client: 192.168.1.160 35495 LOGIN EMail=`Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.` Call=`M0IQF, Marcin` Net=`Test` SID=`ra2BrFqjwxv6Niy1sXW2MgCK` City=`- - -` Band=`PC Only` Country=`Poland`
2021-02-06 14:06:13.148: Client: 192.168.1.160 35495 DISCONNECT_BY_CLIENT EMail=`Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.` Call=`M0IQF, Marcin` Net=`Test` SID=`ra2BrFqjwxv6Niy1sXW2MgCK` City=`- - -` Band=`PC Only` Country=`Poland`
 
 Dodatkowo można będzie wydawać serwerowi komendy na przykład
sudo /opt/FRNserver/FRNserver list /opt/FRNserver/server.ini
sudo /opt/FRNserver/FRNserver -f list /opt/FRNserver/server.ini


I wiele innych komend opisanych na stronie http://alterfrn.ucoz.ru/ - teleportacja, czasowe mute, czasowe zablokowanie, itd itd..
 
W artykule celowo nie opisuję integracji z serwerami SysManager ( autoryzacji ). Dla mnie współpraca z nimi to strata czasu i nerwów a jedyne plusy płynące z takiej współpracy to SPIS na którym możne być widoczny nasz serwer.
Jeśli chodzi o względy bezpieczeństwa to jestem w stanie sam zabezpieczyć serwer bez konieczności pobierania loginów i haseł i tymsamym być SAMOWYSTACZALNYM i niezależnym.
 
 
Proces tworzenia IKON w MENU przedstawiony w filmie  https://youtu.be/7-n7AYSmIpE