User Tools

Site Tools


services:svxreflector

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
services:svxreflector [2020/04/18 07:52] – [Fichier audio de nom de salon] f4hofservices:svxreflector [2023/03/16 16:24] (current) f4hof
Line 9: Line 9:
 Pour ce faire, en tant que root, se mettre dans le dossier ''/usr/local/src/'', télécharger les dépendances nécessaires à la construction de svxlink, les sources du paquet et les outils nécessaires à la construction du paquet: Pour ce faire, en tant que root, se mettre dans le dossier ''/usr/local/src/'', télécharger les dépendances nécessaires à la construction de svxlink, les sources du paquet et les outils nécessaires à la construction du paquet:
  
-<code>sudo su - +<code>apt-get update
-apt-get update+
 apt-get install quilt debhelper build-essential apt-get install quilt debhelper build-essential
 apt-get build-dep svxreflector apt-get build-dep svxreflector
Line 57: Line 56:
 </code> </code>
  
-Une fois cette étape réalisée, on passe à l'application des patches et à la compilation des paquets:+Une fois cette étape réalisée, on passe à l'application des patch et à la compilation des paquets:
 <code>cd svxlink-17.12.1 <code>cd svxlink-17.12.1
 quilt import ../f4hof-add-svxreflector-default-pwd-group.patch quilt import ../f4hof-add-svxreflector-default-pwd-group.patch
Line 65: Line 64:
 dpkg-buildpackage -us -uc -b</code> dpkg-buildpackage -us -uc -b</code>
  
-Votre paquet prêt à être installé est dans le dossier ''/usr/local/src''.+Votre paquetprêt à être installéest dans le dossier ''/usr/local/src''.
  
 ===== Installation du paquet ===== ===== Installation du paquet =====
Line 201: Line 200:
  
 ===== Paramétrage relais ===== ===== Paramétrage relais =====
 +
 +Pour commencer, vous devez choisir un nom abrégé pour votre réflecteur, à trois lettres.
  
 ==== Fichier audio de nom de salon ==== ==== Fichier audio de nom de salon ====
 +Ce fichier permet d'annoncer le nom de votre réflecteur lorsqu'un relai va basculer dessus.
  
 Le format de fichier validé pour les annonces de nom de conférence est le suivant: WAVE PCM 16 bits signé, échantillonnage à 16kHz, mono. Le format de fichier validé pour les annonces de nom de conférence est le suivant: WAVE PCM 16 bits signé, échantillonnage à 16kHz, mono.
Line 210: Line 212:
 <code>ffmpeg -i <fichier_source> -c 1 -ar 16000 -acodec pcm_s16le Sxmp.wav</code> <code>ffmpeg -i <fichier_source> -c 1 -ar 16000 -acodec pcm_s16le Sxmp.wav</code>
  
-Le nom du fichier doit respecter la forme S<nom_abbrege_module>.wav (par ex: ''Sxmp.wav'' ). +Le nom du fichier doit respecter la forme S<nom_abrege_reflecteur>.wav (par ex: ''Sxmp.wav'' ). 
-==== Paramétrage de votre relais ====+==== Fichier restart ==== 
 + 
 +Vous devez également mettre à disposition un fichier restart. 
 + 
 +Le nom du fichier est de la forme restart.<nom_abrege_reflecteur>
 + 
 +<code> 
 +#!/bin/bash 
 + 
 +# DTMF 123  xyz # 
 + 
 +# Stop svxlink 
 +pkill -TERM svxlink 
 +sleep 3 
 + 
 +#/etc/spotnik/audio.sh 
 +#sleep 1 
 + 
 +# Save network 
 +echo "xyz" > /etc/spotnik/network 
 + 
 +# Replace announcement 
 +rm /usr/share/svxlink/sounds/fr_FR/PropagationMonitor/name.wav 
 +ln -s /etc/spotnik/Sxyz.wav /usr/share/svxlink/sounds/fr_FR/PropagationMonitor/name.wav 
 + 
 +# Update config 
 +rm -f /etc/spotnik/svxlink.xyz 
 +cat /etc/spotnik/svxlink.cfg >/etc/spotnik/svxlink.xyz 
 +echo "HOST=svxlink.example.org" >> /etc/spotnik/svxlink.xyz 
 +echo "AUTH_KEY=VotreMotDePasseDeGroupe" >> /etc/spotnik/svxlink.xyz 
 +echo "PORT=5300" >> /etc/spotnik/svxlink.xyz 
 + 
 +# Clear logs 
 +> /tmp/svxlink.log 
 + 
 +# Launch svxlink 
 +svxlink --daemon --logfile=/tmp/svxlink.log --pidfile=/var/run/svxlink.pid --runasuser=root --config=/etc/spotnik/svxlink.xyz 
 + 
 +# Enable propagation monitor module 
 +#sleep 1 
 +#echo "10#" > /tmp/svxlink_dtmf_ctrl_pty 
 +</code> 
 + 
 +Remplacez dans ce fichier: 
 +  * Toutes les occurrences de xyz par le nom abrégé de votre réflecteur. Vous pouvez le faire à l'aide de la commande suivante (donnée pour exemple avec l’abréviation abc): 
 +<code>sed -i 's/xyz/abc/g' restart.abc</code> 
 +  * Le nom d'hôte par celui de votre serveur, ou une adresse IP, au choix. Privilégiez l'usage d'un nom d'hôte, car vous pourrez changer plus tard votre adresse IP sans impacter la configuration des relais déjà paramétrés. 
 +  * Le mot de passe d'accès au groupe 
 +  * Le numéro de port, si applicable. 
 +==== Procédure de paramétrage relais ==== 
 + 
 +Fournissez le fichier audio et le fichier restart. 
 + 
 +Ci-dessous, un modèle de procédure que je communique d'habitude. 
 +(pour l'exemple, notre réflecteur s'appelle XYZ, et on y accèdera en tapant 123#) 
 + 
 +<code> 
 +Bonjour, 
 + 
 +Voici la procédure pour ajouter l'accès au réflecteur XYZ sur un relais spotnik 2.0: 
 + 
 +Copier les 2 fichiers ci-joint dans le dossier /etc/spotnik de ton relais. 
 +Rendre le fichier /etc/spotnik/restart.xyz exécutable ( chmod a+x /etc/spotnik/restart.xyz ) 
 +Ensuite, éditer le fichier /usr/share/svxlink/events.d/local/Logic.tcl. 
 +Chercher la ligne "# 96 SvxReflector RRF", et coller le bloc suivant avant celle-ci: 
 + 
 + 
 +# 123 SvxReflector XYZ 
 + 
 +  if {$cmd == "123"} { 
 +    puts "Executing external command" 
 +    playMsg "Core" "online" 
 +    exec nohup /etc/spotnik/restart.xyz & 
 +    return 1 
 +  } 
 + 
 +Une fois l'édition terminée, la commande ne sera pas prise en compte immédiatement. 
 +Il faut soit basculer sur un module existant ( 95# par exemple ), soit passer le relais à la main sur le réflecteur XYZ au moins une fois ( taper la commande /etc/spotnik/restart.xyz sur le terminal ). 
 + 
 +Je reste à dispo en cas de questions. 
 + 
 +Cordialement, 
 +</code> 
 + 
 +===== Plan de commande relais ===== 
 + 
 +==== Mosquitto ==== 
 + 
 +Remplacer ''admin-user'' par le nom d'utilisateur de votre administrateur pour le plugin de sécurité dynamique. 
 + 
 +<code bash> 
 +apt install mosquitto 
 +mosquitto_ctrl dynsec init /var/lib/mosquitto/dynamic-security.json admin-user 
 +chown mosquitto:mosquitto /var/lib/mosquitto/dynamic-security.json 
 +</code> 
 + 
 +<code - /etc/mosquitto/conf.d/general.conf>listener 1883 
 +allow_anonymous false 
 +per_listener_settings false 
 + 
 +plugin /usr/lib/x86_64-linux-gnu/mosquitto_dynamic_security.so 
 +plugin_opt_config_file /var/lib/mosquitto/dynamic-security.json</code> 
 + 
 +FIXME TODO 
 +<code bash> 
 +systemctl restart mosquitto.service 
 +ufw allow from any to any port 1883 
 + 
 +mosquitto_ctrl dynsec createRole repeater 
 +mosquitto_ctrl dynsec addRoleACL repeater subscribePattern repeaters/%u allow 0 
 +mosquitto_ctrl dynsec addRoleACL repeater publishClientSend repeaters/%u/ack allow 0 
 + 
 +mosquitto_ctrl dynsec createRole masterController 
 +mosquitto_ctrl dynsec addRoleACL masterController publishClientSend repeaters/+ allow 0 
 +mosquitto_ctrl dynsec addRoleACL masterController subscribePattern repeaters/+/ack allow 0 
 + 
 +mosquitto_ctrl dynsec createGroup gr_admin 
 +mosquitto_ctrl dynsec createGroup gr_master_controllers 
 +mosquitto_ctrl dynsec createGroup gr_repeaters 
 +mosquitto_ctrl dynsec addGroupRole gr_admin admin 
 +mosquitto_ctrl dynsec addGroupRole gr_repeaters repeater 
 +mosquitto_ctrl dynsec addGroupRole gr_master_controllers masterController 
 + 
 +</code>
  
 +Where acltype is one of publishClientSend, publishClientReceive, subscribeLiteral, subscribePattern, unsubscribeLiteral, and unsubscribePattern.
  
 +https://mosquitto.org/documentation/dynamic-security/#creating-and-modifying-roles
services/svxreflector.1587196372.txt.gz · Last modified: 2020/04/18 07:52 by f4hof