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:50] – [Ajout des interfaces de bouclage] 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 475: Line 475:
  
 <code bash>modprobe -r snd-aloop; modprobe snd-aloop</code> <code bash>modprobe -r snd-aloop; modprobe snd-aloop</code>
-==== Configuration du client SVXLink ====+==== 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.1723906258.txt.gz · Last modified: 2024/08/17 14:50 by f4hof