SrvSVXLink/Options/RRFRaptor/README.md

191 lines
7.9 KiB
Markdown
Raw Permalink Normal View History

2022-08-24 08:18:01 +02:00
# RRFRaptor
Le RRFRaptor analyse le trafic sur le réseau [RRF](https://f5nlg.wordpress.com/2015/12/28/nouveau-reseau-french-repeater-network/) (Réseau des Répéteurs Francophones) et gère automatiquement les QSY de votre Spotnik afin de lui faire rejoindre automatiquement le salon sur lequel il y a de l'activité. Attention, __il n'est pas recommandé de l'installer sur un relais__ en permanence. Par contre, il est parfaitement adapté à un usage personnel.
> Pour ma part, j'active néanmoins le RRFRaptor sur le F1ZPX situé en JN18du, entre 22h05 et 06h05, période généralement assez calme sur le RRF.
# Principe de fonctionnement
Une fois le RRFRaptor lancé, tant qu'il y a de l'activité sur le salon sur lequel vous êtes, rien ne se passe. Le RRFRaptor reste en sommeil.
Si l'activité retombe, au bout d'une certaine temporisation paramétrable, le RRFRaptor va s'activer et commencer à analyser le trafic sur l'ensemble du réseau RRF à la recherche de QSO sur les autres salons.
Si le trafic reprend entre temps sur le salon sur lequel vous étiez, évidemment, la temporisation redémarre à zéro et le RRFRaptor retombe en sommeil.
Par contre, si le trafic ne reprend pas et que le RRFRaptor détecte de l'activité sur un autre salon, alors il va automatiquement faire basculer votre Spotnik sur celui ci.
# Installation
## Installation du RRFRaptor
Commencez par ouvrir une connexion SSH sur votre Spotnik.
### Etape 1 - Récupération du code
Depuis votre connexion SSH, lancez les commandes suivantes :
`cd /opt`
Puis,
`git clone https://github.com/armel/RRFRaptor.git`
### Etape 2 - Installation des dépendances
Si nécessaire, il faut également procéder à l'installation de quelques paquets complémentaires. Rassurez-vous, ce sera rapide. Toujours depuis votre connexion SSH, lancez les commandes suivantes :
`sudo apt-get install python-pip`
`sudo pip install requests`
### Etape 3 - Ajout des codes DTMF
Il est possible d'activer et de désactiver le RRFRaptor par un simple code DTMF.
Si vous n'êtes pas familier avec les fichiers de paramétrages de __SvxLink__, il vous suffit de copier le fichier `Logic.tcl` que j'ai déjà modifié pour vous. Donc, depuis votre connexion SSH, lancer les commandes suivantes :
`mv /usr/share/svxlink/events.d/local/Logic.tcl /usr/share/svxlink/events.d/local/Logic.tcl.bak`
`cp /opt/RRFRaptor/Logic.tcl /usr/share/svxlink/events.d/local/Logic.tcl`
La première va faire une sauvegarde de votre fichier `Logic.tcl` (renommé en `Logic.tcl.bak` au cas ou). Et la seconde va copier le fichier `Logic.tcl` modifié afin de prendre en charge le RRFRaptor.
Le RRFRaptor pourra désormais être activé ou désactivé en envoyant le code DTMF __200__.
### Etape 4 - Redémarrage de SvxLink
Enfin, pour finir, redémarrez __SvxLink__ à l'aide de la commande suivante :
`/etc/spotnik/restart`
Et voilà, c'est tout ;) Vous êtes pret à utiliser le RRFRaptor !
## Lancement du RRFRaptor
Le plus simple est de lancer le RRFRaptor en CLI (ligne de commande). Toujours depuis une connexion SSH,
- pour activer le RRFRaptor : `/opt/RRFRaptor/RRFRaptor.sh start`
- pour désactiver le RRFRaptor : `/opt/RRFRaptor/RRFRaptor.sh stop`
Sinon, vous pouvez également activer ou désactiver le RRFRaptor à l'aide du code DTMF __200__.
Dans tous les cas, une annonce vocale vous informera de l'activation ou de la désactivation du RRFRaptor.
Une fois activé, en l'absence d'activité durant 1 minute (par défaut), le RRFRaptor va commencer à analyser le trafic sur l'ensemble du réseau RRF à la recherche de QSO sur les autres salons et gérer lui même les QSY.
## Mode scan rapide
Le RRFRaptor dispose également d'une fonctionnalité de _scan rapide_. Cela permet de savoir si un QSO est en cours sur un salon, via une annonce vocale. __Il n'est pas nécessaire que le RRFRaptor soit activé pour que cette fonctionnalité soit utilisable__. On peut donc lancer un _scan rapide_ à tous moments.
En CLI (ligne de commande), depuis une connexion SSH, lancez la commande suivante :
`/opt/RRFRaptor/RRFRaptor.sh scan`
Sinon, vous pouvez également utiliser le code DTMF __201__.
> S'il n'est pas forcément recommandé d'activer en permanence le RRFRaptor sur un relais, cette fonctionnalité de __scan rapide__ peut s'avérer très intéressante partout. Un seul code DTMF peut renseigner les OM sur les QSO en cours sur les autres salons. À eux, si le RRFRaptor n'est pas activé, de gérer les QSY.
# Paramétrages fins
## Changer les paramétrages par défaut
Vous pouvez évidemment éditer le fichier `/opt/RRFRaptor/RRFRaptor.sh` afin de changer la durée de la temporisation par défaut (option `--sleep`).
>L'option `--debug` présente juste un intérêt en phase de développement. Inutile de l'activer.
## Ne pas prendre en compte certains salons
Vous pouvez éditer le fichier `/opt/RRFRaptor/settings.py` et modifier la variable `valid_room` (ligne 20) avec la liste des salons que vous voulez surveiller.
## Lancer le RRFRaptor au démarrage du Spotnik
Il est évidemment possible de lancer le RRFRaptor au démarrage du Spotnik. Il suffit d'éditer le fichier `/etc/rc.local` et d'y ajouter les lignes suivantes, juste __avant__ le `exit 0` qui termine le script :
```
## demarrage Raptor
/opt/RRFRaptor/RRFRaptor.sh start
```
## Mettre à jour la version du RRFRaptor
Depuis votre connexion SSH, lancez les commandes suivantes :
`cd /opt/RRFRaptor`
`git pull`
`mv /usr/share/svxlink/events.d/local/Logic.tcl /usr/share/svxlink/events.d/local/Logic.tcl.bak`
`cp /opt/RRFRaptor/Logic.tcl /usr/share/svxlink/events.d/local/Logic.tcl`
`/etc/spotnik/restart`
Et voilà, votre version est à jour.
## Modifier les codes DTMF par défaut
Si vous le souhaitez, vous pouvez modifier les codes DTMF par défaut et les adapter suivant vos besoins. Pour se faire, éditer le fichier `/usr/share/svxlink/events.d/local/Logic.tcl` à l'aide de votre éditeur préféré. Recherchez les blocs concernant les codes DTMF (vers les lignes 600...). Ajoutez et / ou modifiez les 4 nouveaux blocs ci dessous en les adaptant à votre convenance :
```
# 200 Raptor start and stop
if {$cmd == "200"} {
puts "Executing external command"
exec nohup /opt/RRFRaptor/RRFRaptor.sh &
return 1
}
# 201 Raptor quick scan
if {$cmd == "201"} {
puts "Executing external command"
exec /opt/RRFRaptor/RRFRaptor.sh scan
return 1
}
# 202 Raptor sound
if {$cmd == "202"} {
if { [file exists /tmp/RRFRaptor_status.tcl] } {
source "/tmp/RRFRaptor_status.tcl"
if {$RRFRaptor == "ON"} {
playSilence 1500
playFile /opt/RRFRaptor/sounds/active.wav
} else {
playSilence 1500
playFile /opt/RRFRaptor/sounds/desactive.wav
}
}
return 1
}
# 203 Raptor quick scan sound
if {$cmd == "203"} {
if { [file exists /tmp/RRFRaptor_scan.tcl] } {
source "/tmp/RRFRaptor_scan.tcl"
if {$RRFRaptor == "None"} {
playSilence 1500
playFile /opt/RRFRaptor/sounds/qso_ko.wav
} else {
playSilence 1500
playFile /opt/RRFRaptor/sounds/qso_ok.wav
if {$RRFRaptor == "RRF"} {
playFile /etc/spotnik/Srrf.wav
} elseif {$RRFRaptor == "FON"} {
playFile /etc/spotnik/Sfon.wav
} elseif {$RRFRaptor == "TECHNIQUE"} {
playFile /etc/spotnik/Stec.wav
} elseif {$RRFRaptor == "INTERNATIONAL"} {
playFile /etc/spotnik/Sint.wav
} elseif {$RRFRaptor == "LOCAL"} {
playFile /etc/spotnik/Sloc.wav
} elseif {$RRFRaptor == "BAVARDAGE"} {
playFile /etc/spotnik/Sbav.wav
}
}
}
return 1
}
```
>Attention, si vous modifiez également les codes __202__ et __203__ qui servent aux annonces vocales, vous devrez les modifiez également dans le script `/opt/RRFRaptor/RRFRaptor.sh`. Ce changement n'est pas recommandé.
# That's all
Bon trafic à tous, 88 & 73 de Armel F4HWN !