L’historique et la configuration de base
La plupart des relais analogique interconnectés utilisent le programme SVXLINK développé par SM0SVX (https://www.svxlink.org/).
A l’heure actuelle, sur le territoire, nous connaissons presque tous la version Spotnik basée sur ce programme qui fait fonctionner actuellement le réseau RRF (Réseau des Répéteurs Francophone), qui se veut avant tout, un réseau mondial Francophone avec presque 200 relais.
L’image .IMG de la SD du logiciel est disponible au téléchargement pour les plateformes ARM type Pi-Zero, Orange Pi, etc… Le téléchargement des versions sont disponibles ici : ftp://rrf.f5nlg.ovh/
Suite à plusieurs demandes restées infructueuses auprès d’un « OM », nous avons crée sur l’idée de F4EED et grâce surtout à F4HOF un serveur qui se voulais plus régional http://ara.ham42.net. Ainsi qu’un serveur de communication d’urgence disponible ici : http://dashboard.fr-emcom.com/
Pour des raisons identiques il avait également été l’occasion de crée un serveur dédié, hébergé en Guadeloupe avec l’aide FG8OJ et réalisé lors d’un déplacement pour participer à l’exercice Tsunami Caribe Wave 2019 https://radioamateur.gp/relais
Ici, on ne vas pas réinventer la procédure d’installation disponible sur les sites du RRF, on vas principalement se concentrer sur : « comment adapter » ce système pour qu’il se connecte au ARA et/ou FrEmCom
L’adaptation
Connexion au spotnik
On commence par se connecter en SSH avec son logiciel favoris (putty par exemple pour les utilisateurs de Windows)
Ou comme ci dessous depuis le Bash d’un Ubuntu avec la commande ssh root@IpDeVotreSpotnik puis on saisi le mot de passe par défaut (si vous ne l’avez pas encore changé !) qui est spotnik
Mise en place des fichiers audio ARA et EmCom
Généralement les fichiers audio se trouvent tous dans le même répertoire, il faut effectuer le téléchargement depuis le dossier /home avec la commande git clone https://github.com/F4ASS/reseau_ARA/ . Puis il faut ensuite taper cd reseau_ARA/ puis mv *.wav /usr/share/svxlink/sounds/fr_FR/RRF/ pour déplacer les deux fichiers .Wav dans le bon endroit.
Création des scripts
L’ensemble des fichiers de configuration des salons (ou conférences) se trouvent dans /etc/spotnik/ on tape donc cd /etc/spotnik/
Pour commencer sachant que plusieurs versions existent, pour éviter de tout casser on vas repartir de l’existant, c’est à dire, utiliser une copie du fichier nommé « restart.rrf », depuis le répertoire courant, on peut vérifier sa présence avec la commande ls qui liste les fichiers. Il suffit ensuite de copier le fichier de configuration avec la commande cp restart.rrf restart.ara ensuite, on édite le fichier par exemple avec nano à l’aide de la commande nano restart.ara. On remplace toutes les noms rrf par ara, puis on remplace les paramètres de connexions (on peut aussi faire pareil pour le fichier FrEmCom en remplaçant pas frm).
Pour le réseau ARA (rrf=>ara)
« HOST=ara-r.fr »
« AUTH_KEY=hN8pB4jU »
« PORT=5310 »
Pour le réseau FrEmCom (rrf=>frm)
« HOST=ara-r.fr »
« AUTH_KEY=KvPXN3kF »
« PORT=5320 »
# DTMF 96 RRF #
devient
# DTMF 272 ARA #
echo "rrf" > /etc/spotnik/network
devient
echo "ara" > /etc/spotnik/network
ln -s /usr/share/svxlink/sounds/fr_FR/RRF/Srrf.wav /usr/share/svxlink/sounds/fr_FR/PropagationMonitor/name.wav
devient
ln -s /usr/share/svxlink/sounds/fr_FR/RRF/Sara.wav /usr/share/svxlink/sounds/fr_FR/PropagationMonitor/name.wav
rm -f /etc/spotnik/svxlink.rrf
devient
rm -f /etc/spotnik/svxlink.ara
cat /etc/spotnik/svxlink.cfg >/etc/spotnik/svxlink.rrf
devient
cat /etc/spotnik/svxlink.cfg >/etc/spotnik/svxlink.ara
echo "HOST=rrf2.f5nlg.ovh" >>/etc/spotnik/svxlink.rrf
devient
echo "HOST=ara-r.fr" >>/etc/spotnik/svxlink.ara
echo "AUTH_KEY=Magnifique123456789!" >>/etc/spotnik/svxlink.rrf
devient
echo "AUTH_KEY=hN8pB4jU" >>/etc/spotnik/svxlink.ara
echo "PORT=5300" >>/etc/spotnik/svxlink.rrf
devient
echo "PORT=5310" >>/etc/spotnik/svxlink.ara
svxlink --daemon --logfile=/tmp/svxlink.log --pidfile=/var/run/svxlink.pid --runasuser=root --config=/etc/spotnik/svxlink.rrf
devient
svxlink --daemon --logfile=/tmp/svxlink.log --pidfile=/var/run/svxlink.pid --runasuser=root --config=/etc/spotnik/svxlink.ara
Modification du Logic.tcl
Pour gérer les commandes de changement de conférence il est utile de rajouter les codes DTMF pour que le relais puisse exécuter le fichier restart correspondant.
Ce fichier se trouve dans /usr/share/svxlink/events.d/local/
Il suffit d’ajouter les conférences correspondantes en dessous des salons prédéfinit. (vous pouvez copier-coller les lignes d’un salon précédent)
On fait pointer les commandes sur le(s) fichier(s) précédemment(s) crée(s).
Ajout du code de retour automatique de FG8OJ
Bertrand, FG8OJ a développé un script python pour gérer le retour automatique sur un réseau de replie au choix après la « non utilisation » du réseau en local (pas d’ouverture du relais) pendant une temporisation prédéfinie.
Le code est disponible sur le site Git de Bertrand https://github.com/fg8oj/svxlink il se compose d’un fichier dont je vais partager ci dessous le code adapté au « ara » à écrire dans le dossier /etc/spotnik/ grâce à la commande nano modedef.py et bien sure, bien penser à rendre ce fichier exécutable avec la commande chmod +x modedef.py
#!usr/bin/env python
# -*– coding: UTF-8 ––
# Script FG8OJ pour Spotnik
# Relance après inactivité radio vers un groupe par défault
# Cron a ajouter :
# //* * * * * python /etc/spotnik/modedef.py > /dev/null 2>&1
# Configuration :
default= »ara » # appel du fichier restart /etc/spotnik/restart.XXX
timeout=30 # durée en minute avant le rebasculement sur le salon par défault
import datetime
import os
log = open(« /etc/spotnik/network », »rt »)
reseau=log.readline().strip()
if (reseau == default):
exit()
log2 = open(« /tmp/svxlink.log », « rt »)
delay=9999999
for x in log2:
if ( (x.find(« The squelch is OPEN »)>-1)or(x.find(« Activating link »)>-1) ):
dti=x.find(« : « )
dt=x[:dti]
dt= datetime.datetime.strptime(dt, »%a %b %d %H:%M:%S %Y »)
dt=datetime.datetime.now() – dt
if (delay>dt.total_seconds()):
delay=int(dt.total_seconds())
print(delay)
if (delay==9999999):
exit()
if (delay>(timeout*60)):
print(« restart « + str(delay))
os.system(« /etc/spotnik/restart. » + str(default))
log.close()
Modification du Cron
Il existe des taches RRFRaptor, afin de désactiver cette fonction handicapante pour notre utilisation, il faut donc désactiver la tache Cron. Il vous faut alors éditer le fichier avec la commande nano /etc/crontab et supprimer ou commenter avec un # les 3 lignes en rapport avec le RaptorRRF:
Pour la suite on vas configurer l’éditeur pour utiliser nano en tant qu’éditeur de tache Cron de l’utilisateur root avec la commande export EDITOR=nano puis en éditer les Cron locales avec crontab -e et ajouter le lignes ci dessous (elles sont déjà contenue dans le fichier modedef.py)

Pour valider, il faut relancer le système avec la commande reboot
Exécution manuel
Pour lancer manuellement la conférence ARA il faut aller dans /etc/spotnik/ et exécuter le script avec la commande ./restart.ara
Idem, pour lancer la conférence FrEmCom pour le salon de l’urgence il faut exécuter la commande ./restart.frm
Gestion du lancement FrEmCom le jeudi soir pour le QSO de l’urgence
Éditer les Cron locales avec crontab -e et remplacer le précédent script comme celui-ci
## SCRIPT de FG8OJ avec ajout gestion FrEmCom le jeudi soir
* * * * 0 python /etc/spotnik/modedef.py > /dev/null 2>&1
* * * * 1 python /etc/spotnik/modedef.py > /dev/null 2>&1
* * * * 2 python /etc/spotnik/modedef.py > /dev/null 2>&1
* * * * 3 python /etc/spotnik/modedef.py > /dev/null 2>&1
### Pour le jeudi
* 0 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 1 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 2 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 3 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 4 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 5 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 6 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 7 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 8 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 9 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 10 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 11 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 12 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 13 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 14 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 15 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 16 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 17 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 18 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 19 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
# Pour lancer le FrEmCom à 19h55
55 19 * * 4 python /etc/spotnik/modedeffrm.py > /dev/null 2>&1
* 20 * * 4 python /etc/spotnik/modedeffrm.py > /dev/null 2>&1
#Pour le retour sur ARA
46 20 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 21 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 22 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
* 23 * * 4 python /etc/spotnik/modedef.py > /dev/null 2>&1
### Pour les autres jours
* * * * 5 python /etc/spotnik/modedef.py > /dev/null 2>&1
* * * * 6 python /etc/spotnik/modedef.py > /dev/null 2>&1
A bientôt sur le réseau ARA (272) ou FrEmCom (112)
Sébastien F4ASS / KI7QQO
Je ne comprends pas bien l’articulation avec le RRF.
C’est complètement indépendant apparemment?
Y a-t-il une possibilité de basculer entre RRF et ARA par une commande DTMF??
Le 272# me semble faire des A/R simplement entre les salons ARA ?
73′ Gérard,
Je constate au contraire que vous avez parfaitement maîtrisé la différence.
Le ARA est complètement indépendant du RRF et la bascule se fait bien avec la commande 272# sur les relais et 272 sur les simplex.
L’autorisation de bascule sur les salons est laissé à la discrétion du SYSOP.
Cependant j’ai déjà entendu plusieurs OM avec trop de modulation ou de distorsion BF dans les tonalités Dtmf se faire « remballer » par la logique du relais.
Avez vous essayé avec un autre poste radio ?
Pouvez-vous me dire par où vous accédez ?
Merci d’avance
Sébastien
F4ASS / KI7QQO