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ć.
ServerCharsetName=ISO-88859-2
Ustawnienia klawiaturyPresentServerAddress=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 serweraBackupServerAddress=your.backup.server.address
Adres zapasowego serweraBackupServerPort=10024
Port zapasowego serweraListenServerPorts=10024
Port lub porty na jakich serwer ma wpuszczać klientów ( może być ich kilka )DefaultNetworkName=Test
Kanał domyślny na serwerzeManagerMode=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
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
[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
tail -f /var/log/frnserver.log
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`
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..