services:svxreflector
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
services:svxreflector [2023/03/16 07:28] – f4hof | services:svxreflector [2024/09/07 15:47] (current) – [Configuration d'Icecast] f4hof | ||
---|---|---|---|
Line 301: | Line 301: | ||
==== Mosquitto ==== | ==== Mosquitto ==== | ||
- | < | + | Remplacer '' |
- | apt install mosquitto | + | |
+ | <code bash> | ||
+ | apt install mosquitto | ||
+ | mosquitto_ctrl dynsec init / | ||
+ | chown mosquitto: | ||
</ | </ | ||
- | <pre> | + | <code - / |
allow_anonymous false | allow_anonymous false | ||
per_listener_settings false | per_listener_settings false | ||
plugin / | plugin / | ||
- | plugin_opt_config_file / | + | plugin_opt_config_file / |
+ | |||
+ | 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/ | ||
+ | mosquitto_ctrl dynsec addRoleACL repeater publishClientSend repeaters/ | ||
+ | |||
+ | mosquitto_ctrl dynsec createRole masterController | ||
+ | mosquitto_ctrl dynsec addRoleACL masterController publishClientSend repeaters/+ allow 0 | ||
+ | mosquitto_ctrl dynsec addRoleACL masterController subscribePattern repeaters/ | ||
+ | |||
+ | 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 | ||
+ | |||
+ | </ | ||
+ | |||
+ | Where acltype is one of publishClientSend, | ||
+ | |||
+ | https:// | ||
+ | |||
+ | ===== Diffusion d'un salon sur Icecast ===== | ||
+ | |||
+ | Cette section décrit la procédure qui permet d' | ||
+ | |||
+ | ==== Architecture Générale ==== | ||
+ | |||
+ | < | ||
+ | | | ||
+ | | SVXReflector |===[socket]===| SVXLink |===[Loopback audio]===| DarkICE |===[socket]===| Icecast | | ||
+ | |______________| | ||
+ | </ | ||
+ | |||
+ | ==== Installation des prérequis ==== | ||
+ | |||
+ | Lancer les commandes suivantes en tant que root: | ||
+ | |||
+ | <code bash>apt install darkice icecast2</ | ||
+ | |||
+ | ==== Configuration d' | ||
+ | |||
+ | Le fichier de configuration suivant permet de servir les flux de diffusion avec une socket non sécurisée, | ||
+ | |||
+ | Les valeurs des champs suivants DOIT être modifiée: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | <code xml> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | < | ||
+ | |||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | |||
+ | <!-- You may have multiple < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | <header name=" | ||
+ | </ | ||
+ | < | ||
+ | |||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <alias source="/" | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Si vous n' | ||
+ | |||
+ | La génération des certificats est laissée à votre discrétion, | ||
+ | - La chaîne de certification dans l' | ||
+ | - Le certificat utilisé par le serveur. | ||
+ | - La clé privée, non protégée par un mot de passe. | ||
+ | |||
+ | Les permissions de votre fichier bundle.pem doivent être positionnées à '' | ||
+ | |||
+ | |||
+ | ==== Ajout des interfaces de bouclage ==== | ||
+ | |||
+ | Lancer les commandes suivantes pour créer une interface de bouclage. | ||
+ | <code bash> | ||
+ | echo " | ||
+ | echo " | ||
+ | modprobe snd-aloop | ||
+ | </ | ||
+ | |||
+ | Lancer les commandes suivantes pour créer quatre interfaces de bouclage. | ||
+ | <code bash> | ||
+ | echo " | ||
+ | echo " | ||
+ | modprobe snd-aloop | ||
+ | </ | ||
+ | |||
+ | Le code précédent permet de: | ||
+ | - Définir des options à passer implicitement au chargement du module '' | ||
+ | - Ajouter '' | ||
+ | - Charger le module manuellement pour cette fois-ci sans avoir à rebooter. | ||
+ | |||
+ | Si vous voulez modifier le nombre d' | ||
+ | |||
+ | Pour appliquer les changements sans rebooter votre serveur, il faut arrêter tous les programmes qui utilise les interfaces de bouclage, puis lancer la commande suivante en tant que root, pour que les nouveaux paramètres soient pris en compte: | ||
+ | |||
+ | <code bash> | ||
+ | ==== Configuration des clients SVXLink ==== | ||
+ | |||
+ | Un client SVXLink doit être configuré pour chaque réflecteur. | ||
+ | |||
+ | Reprendre le patron de configuration suivant, et changer le contenu de ces champs: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | <code ini> | ||
+ | ############################################################################### | ||
+ | # # | ||
+ | # Configuration file for the SvxLink client | ||
+ | # # | ||
+ | ############################################################################### | ||
+ | |||
+ | [GLOBAL] | ||
+ | LOGICS=SimplexLogic, | ||
+ | CFG_DIR=svxlink.d | ||
+ | TIMESTAMP_FORMAT=" | ||
+ | CARD_SAMPLE_RATE=48000 | ||
+ | LINKS=ALLlink | ||
+ | |||
+ | [SimplexLogic] | ||
+ | TYPE=Simplex | ||
+ | RX=NONE | ||
+ | TX=TxStream | ||
+ | CALLSIGN=ICECAST | ||
+ | EVENT_HANDLER=/ | ||
+ | DEFAULT_LANG=en_US | ||
+ | |||
+ | [ReflectorLogic] | ||
+ | TYPE=Reflector | ||
+ | HOST=127.0.0.1 | ||
+ | PORT=5310 | ||
+ | CALLSIGN=" | ||
+ | AUTH_KEY=" | ||
+ | AUDIO_CODEC=OPUS | ||
+ | EVENT_HANDLER=/ | ||
+ | |||
+ | [ALLlink] | ||
+ | CONNECT_LOGICS=SimplexLogic: | ||
+ | DEFAULT_ACTIVE=1 | ||
+ | TIMEOUT=0 | ||
+ | |||
+ | [TxStream] | ||
+ | TYPE=Local | ||
+ | AUDIO_DEV=alsa: | ||
+ | AUDIO_CHANNEL=0 | ||
+ | PTT_TYPE=NONE | ||
+ | TIMEOUT=7200 | ||
+ | TX_DELAY=0 | ||
+ | PREEMPHASIS=0 | ||
+ | </ | ||
+ | |||
+ | Sauver le résultat modifié dans ''/ | ||
+ | |||
+ | |||
+ | |||
+ | ==== Configuration de Darkice ==== | ||
+ | |||
+ | Editer votre fichier ''/ | ||
+ | |||
+ | < | ||
+ | 127.0.0.1 localhost icecast.example.com | ||
+ | </ | ||
+ | |||
+ | Dans le dossier ''/ | ||
+ | |||
+ | <code ini my-reflector.cfg> | ||
+ | [general] | ||
+ | duration | ||
+ | bufferSecs | ||
+ | reconnect | ||
+ | realtime | ||
+ | rtpio = 3 | ||
+ | |||
+ | |||
+ | [input] | ||
+ | device | ||
+ | sampleRate | ||
+ | bitsPerSample | ||
+ | channel | ||
+ | |||
+ | |||
+ | [icecast2-0] | ||
+ | bitrateMode | ||
+ | format | ||
+ | bitrate | ||
+ | # | ||
+ | channel | ||
+ | lowpass | ||
+ | highpass | ||
+ | server | ||
+ | port = 5299 # port of the IceCast2 server, usually 8000 | ||
+ | password | ||
+ | mountPoint | ||
+ | name = Reflecteur-ARA # name of the stream | ||
+ | description | ||
+ | url = http:// | ||
+ | genre = Ham Radio , Radioamateur | ||
+ | public | ||
+ | |||
+ | </ | ||
+ | |||
+ | Fichier d' | ||
+ | |||
+ | <code ini darkice@.service> | ||
+ | [Unit] | ||
+ | Description=Darkice server for room %I | ||
+ | Documentation=man: | ||
+ | After=network.target time.target sound.target icecast2.service | ||
+ | |||
+ | [Service] | ||
+ | Type=simple | ||
+ | User=svxlink | ||
+ | Group=svxlink | ||
+ | EnvironmentFile=-/ | ||
+ | Environment=CFGFILE=/ | ||
+ | # | ||
+ | ExecStart=/ | ||
+ | ExecStop=/ | ||
+ | Restart=on-failure | ||
+ | TimeoutStartSec=60 | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | |||
+ | </ | ||
+ | |||
+ | Lancer la commande suivante en tant que root pour rafraîchir la config de systemd | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | Ensuite, activer votre instance nommée de darkice pour qu' | ||
+ | <code bash> | ||
+ | systemctl start darkice@my-reflector | ||
+ | </ | ||
+ | |||
+ | Répéter cette opération pour l' |
services/svxreflector.1678951696.txt.gz · Last modified: 2023/03/16 07:28 by f4hof