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 [2024/08/17 14:37] – [Installation et configuration d'Icecast] f4hofservices:svxreflector [2024/09/07 15:47] (current) – [Configuration d'Icecast] f4hof
Line 383: Line 383:
         <header-timeout>15</header-timeout>         <header-timeout>15</header-timeout>
         <source-timeout>10</source-timeout>         <source-timeout>10</source-timeout>
-        <burst-on-connect>1</burst-on-connect>+        <burst-on-connect>0</burst-on-connect>
         <burst-size>65535</burst-size>         <burst-size>65535</burst-size>
     </limits>     </limits>
Line 451: Line 451:
 ==== Ajout des interfaces de bouclage ==== ==== Ajout des interfaces de bouclage ====
  
-==== Configuration du client SVXLink ====+Lancer les commandes suivantes pour créer une interface de bouclage. 
 +<code bash> 
 +echo "options snd-aloop enable=1 index=10" > /etc/modprobe.d/aloop.conf 
 +echo "snd-aloop" >> /etc/modules 
 +modprobe snd-aloop 
 +</code> 
 + 
 +Lancer les commandes suivantes pour créer quatre interfaces de bouclage. 
 +<code bash> 
 +echo "options snd-aloop enable=1,1,1,1 index=10,11,12,13" > /etc/modprobe.d/aloop.conf 
 +echo "snd-aloop" >> /etc/modules 
 +modprobe snd-aloop 
 +</code> 
 + 
 +Le code précédent permet de: 
 +- Définir des options à passer implicitement au chargement du module ''snd-aloop''
 +- Ajouter ''snd-aloop'' dans la liste des modules à charger automatiquement à chaque boot. 
 +- Charger le module manuellement pour cette fois-ci sans avoir à rebooter. 
 + 
 +Si vous voulez modifier le nombre d'interfaces, il faudra modifier ''/etc/modprobe.d/aloop.conf'' pour ajouter/supprimer des interfaces. Les ''index'' de chaque interface sont séparés par une virgule, et pensez bien à mettre à jour le nombre de 1 correspondant dans le champ ''enable'' pour que vos interfaces soient actives par défaut. 
 + 
 +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>modprobe -r snd-aloop; modprobe snd-aloop</code> 
 +==== 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: 
 +  * ''CALLSIGN'' -> Nom d'utilisateur à afficher pour le client Icecast. Attention: plusieurs occurences dans le fichier. 
 +  * ''AUTH_KEY'' -> Mot de passe de votre réflecteur, ou celui associé à votre client SVXLink, selon votre configuration. 
 +  * ''HOST'' -> Adresse IP ou FQDN du réflecteur à diffuser. Laisser par défaut si la diffusion se fait sur la même machine. 
 +  * ''PORT'' -> Port d'écoute du réflecteur à diffuser. 
 +  * ''AUDIO_DEV'' -> Remplacer la valeur ''10'' par le numéro de l'interface loopback sur laquelle injecter le flux de ce réflecteur. 
 + 
 +<code ini> 
 +############################################################################### 
 +#                                                                             # 
 +#                Configuration file for the SvxLink client                    # 
 +#                                                                             # 
 +############################################################################### 
 + 
 +[GLOBAL] 
 +LOGICS=SimplexLogic,ReflectorLogic 
 +CFG_DIR=svxlink.d 
 +TIMESTAMP_FORMAT="%c" 
 +CARD_SAMPLE_RATE=48000 
 +LINKS=ALLlink 
 + 
 +[SimplexLogic] 
 +TYPE=Simplex 
 +RX=NONE 
 +TX=TxStream 
 +CALLSIGN=ICECAST 
 +EVENT_HANDLER=/usr/share/svxlink/events.tcl 
 +DEFAULT_LANG=en_US 
 + 
 +[ReflectorLogic] 
 +TYPE=Reflector 
 +HOST=127.0.0.1 
 +PORT=5310 
 +CALLSIGN="ICECAST" 
 +AUTH_KEY="MotDePasseSvxReflector" 
 +AUDIO_CODEC=OPUS 
 +EVENT_HANDLER=/usr/share/svxlink/events.tcl 
 + 
 +[ALLlink] 
 +CONNECT_LOGICS=SimplexLogic:94:SK3AB,ReflectorLogic 
 +DEFAULT_ACTIVE=1 
 +TIMEOUT=0 
 + 
 +[TxStream] 
 +TYPE=Local 
 +AUDIO_DEV=alsa:hw:10,
 +AUDIO_CHANNEL=0 
 +PTT_TYPE=NONE 
 +TIMEOUT=7200 
 +TX_DELAY=
 +PREEMPHASIS=
 +</code> 
 + 
 +Sauver le résultat modifié dans ''/etc/svxlink/svxlink-nomreflecteur.conf''
 + 
  
 ==== Configuration de Darkice ==== ==== Configuration de Darkice ====
  
 +Editer votre fichier ''/etc/hosts'' pour faire boucler le FQDN de votre serveur icecast sur votre machine (pour éviter les boucles sur le réseau local, notamment si vous êtes derrière un NAT en IPv4).
  
 +<code>
 +127.0.0.1 localhost icecast.example.com
 +</code>
  
 +Dans le dossier ''/etc/darkice'', créer un fichier de configuration par réflecteur.
  
 +<code ini my-reflector.cfg>
 +[general]
 +duration        = 0        # duration of encoding, in seconds. 0 means forever
 +bufferSecs      = 1         # size of internal slip buffer, in seconds
 +reconnect       = yes       # reconnect to the server(s) if disconnected
 +realtime        = no
 +rtpio           = 3
 +
 +
 +[input]
 +device          = hw:10,1
 +sampleRate      = 48000     # sample rate in Hz. try 11025, 22050 or 44100
 +bitsPerSample   = 16        # bits per sample. try 16
 +channel         = 2         # channels. 1 = mono, 2 = stereo
 +
 +
 +[icecast2-0]
 +bitrateMode     = cbr
 +format          = opus
 +bitrate         = 64
 +#quality         = 0.8
 +channel         = 1
 +lowpass         = -1       #Débrayage des filtres
 +highpass        = -1       #Débrayage des filtres
 +server          = 127.0.0.1  # host name of the server
 +port            = 5299       # port of the IceCast2 server, usually 8000
 +password        = mdp_injection_changezmoi    # source password to the IceCast2 server
 +mountPoint      = my-reflector  # mount point of this stream on the server
 +name            = Reflecteur-ARA # name of the stream
 +description     = Vous ecoutez le reflecteur Auvergne-Rhone-Alpes # description of the stream
 +url             = http://icecast.example.com/my-reflector  # URL related to the stream
 +genre           = Ham Radio  ,  Radioamateur    # genre of the stream
 +public          = yes       # advertise this stream on Icecast's status page?
 +
 +</code>
 +
 +Fichier d'unité à déposer sur ''/etc/systemd/system/darkice@.service'':
 +
 +<code ini darkice@.service>
 +[Unit]
 +Description=Darkice server for room %I
 +Documentation=man:darkice(1)
 +After=network.target time.target sound.target icecast2.service
 +
 +[Service]
 +Type=simple
 +User=svxlink
 +Group=svxlink
 +EnvironmentFile=-/etc/default/darkice-%i
 +Environment=CFGFILE=/etc/darkice/%i.cfg
 +#RuntimeDirectory=/etc/darkice
 +ExecStart=/usr/bin/darkice -c $CFGFILE
 +ExecStop=/bin/kill -s TERM $MAINPID
 +Restart=on-failure
 +TimeoutStartSec=60
 +
 +[Install]
 +WantedBy=multi-user.target
 +
 +</code>
 +
 +Lancer la commande suivante en tant que root pour rafraîchir la config de systemd
 +
 +<code bash>systemctl daemon-reload</code>
 +
 +Ensuite, activer votre instance nommée de darkice pour qu'elle se lance à chaque boot, et lancez-la manuellement:
 +<code bash>systemctl enable darkice@my-reflector
 +systemctl start darkice@my-reflector
 +</code>
  
 +Répéter cette opération pour l'ensemble des salons à diffuser.
  
services/svxreflector.1723905423.txt.gz · Last modified: 2024/08/17 14:37 by f4hof