Automatische Rundspruchausgabe

Vollautomatisierter, zeigesteuerter Rundspruchdownload und Übertragung via SVXLINK

 

Wer Rundsprüche vollautomatisiert, zeitgesteuert downloaden und als Audiofile über SvxLink ausgeben möchte, kann die folgende Anleitung umsetzen. Hierbei wird ein sogenanntes Alsa-Loopbackdevice genutzt über das SvxLink mit einem Audiostream (z.B. aus sox, aplay oder vlc) versorgt wird. Der Stream wird dann gegenüber dem Audiostream aus dem eigenen Empfänger ge-voted.

Vorbedingungen:
– relativ modernes Ubuntu Server Betriebssystem
– relativ neue SvxLink-Version

– Thin Client PC (z.B. HP_Thin_Client_T5570) mit nachgerüsteter 2,5″ HD oder SSD

1) Erstellen Sie eine Datei /etc/asound.conf als root mit folgendem Inhalt:

pcm_slave.hw_loopback {

pcm „hw:Loopback,1,2“

channels 2

format RAW

rate 48000

}

 

pcm.plug_loopback {

type plug

slave hw_loopback

ttable {

0.0 = 1

0.1 = 1

}

}

2) Laden Sie das Modul snd-aloop automatisch beim Systemstart (als root):

Hierzu die Datei /etc/modules mit einem Editor und Root-Rechten öffnen, den Modulnamen „snd-aloop“ ergänzen und nachfolgend  speichern. (Nachfolgend das Kommando „reboot“ ausführen.)                      Hinweis: Bitte überprüfen und ggf. in der Svxlink.conf korrigieren, ob sich die Adressierung des für Rx1 u. Tx1 verwendeten Audio Device geändert hat!

# /etc/modules: kernel modules to load at boot time.

#

# This file contains the names of kernel modules that should be loaded

# at boot time, one per line. Lines beginning with „#“ are ignored.

snd-aloop

 

 

Mit „aplay -l“ erhält man eine Übersicht über die verfügbaren Alsa-Devices, das sieht bei Ihnen natürlich anders aus:

**** Liste der Hardware-Geräte (PLAYBACK) ****

Karte 0: PCH [HDA Intel PCH], Gerät 0: ALC892 Analog [ALC892 Analog]

Sub-Geräte: 0/1

Sub-Gerät #0: subdevice #0

Karte 0: PCH [HDA Intel PCH], Gerät 1: ALC892 Digital [ALC892 Digital]

Sub-Geräte: 1/1

Sub-Gerät #0: subdevice #0

 

 

Karte 1:

 

Karte 2: Loopback [Loopback], Gerät 0: Loopback PCM [Loopback PCM]

Sub-Geräte: 7/8

Sub-Gerät #0: subdevice #0

Sub-Gerät #1: subdevice #1

Sub-Gerät #2: subdevice #2

Sub-Gerät #3: subdevice #3

Sub-Gerät #4: subdevice #4

Sub-Gerät #5: subdevice #5

Sub-Gerät #6: subdevice #6

Sub-Gerät #7: subdevice #7

Karte 2: Loopback [Loopback], Gerät 1: Loopback PCM [Loopback PCM]

Sub-Geräte: 8/8

Sub-Gerät #0: subdevice #0

Sub-Gerät #1: subdevice #1

Sub-Gerät #2: subdevice #2

Sub-Gerät #3: subdevice #3

Sub-Gerät #4: subdevice #4

Sub-Gerät #5: subdevice #5

Sub-Gerät #6: subdevice #6

Sub-Gerät #7: subdevice #7

Die (virtuelle) Karte 2 ist hierbei das Device, welches als Loopbackdevice zur Verfügung steht und auf das SvxLink zugreift.

3) Ergänzen Sie die /etc/svxlink/svxlink.conf um eine Empfänger-Sektion sowie einen Voter:

[RepeaterLogic]

RX=Voter

# MODULES=ModuleEchoLink

# In der Rundspruchvariante der Svxlink.conf können Module (z.B. Echolink)

# entfernt werden um Störungen zu unterbinden.

# SHORT_IDENT_INTERVAL=60  (Nur für Rundspruchvariante der Svxlink.conf verlängern)

# LONG_IDENT_INTERVAL=120  (Nur für Rundspruchvariante der Svxlink.conf verlängern)

# OPEN_ON_1750=250         (Nur für Rundspruchvariante der Svxlink.conf deaktivieren)

OPEN_ON_SQL=400            (Nur für Rundspruchvariante der Svxlink.conf aktivieren)

OPEN_SQL_FLANK=OPEN        (Nur für Rundspruchvariante der Svxlink.conf aktivieren)

 

# im Voter-Bereich muß der bisher verwendete Rx (meistens „Rx1“)

# erscheinen sowie der neue Rx, der durch das Alsa-Loopbackdevice

# generiert wird, hier RxLoop!

[Voter]

TYPE=Voter

RECEIVERS=RxLoop,Rx1

# In der Rundspruchvariante der Svxlink.conf kann der Rx1 entfernt werden

# um Störungen zu unterbinden.

VOTING_DELAY=200

BUFFER_LENGTH=0

 

# der „Rundspruch-RX“ als Alsa-Loopbackdevice

[RxLoop]

TYPE=Local

AUDIO_DEV=alsa:plughw:0

AUDIO_CHANNEL=1

SQL_DET=VOX

SQL_START_DELAY=0

SQL_DELAY=0

# hier (SQL_HANGTIME=xxx) auf eine hohe Nachlaufzeit achten, damit

# der RX nicht in den Sprechpausen „abfällt“ und einen Roger-Beep

# erzeugt, 5000ms sollten reichen!

SQL_HANGTIME=5000

VOX_FILTER_DEPTH=20

VOX_THRESH=1000

DEEMPHASIS=0

# und hier der bisher verwendete „normale“ HF-Tx/Rx“ beide Parameter jeweils

# prüfen u. ggf. anpassen.

[Rx1]

AUDIO_DEV=alsa:plughw:2

AUDIO_CHANNEL=0

[Tx1]

AUDIO_DEV=alsa:plughw:2

AUDIO_CHANNEL=0

 …

 

4) Sox inkl. Codec für mp3 Wiedergabe installieren:

sudo apt-get install sox

sudo apt-get install libsox-fmt-mp3

5) Erster Test, Rundspruchausgabe über Konsole manuell starten:

aplay –device=plughw:2,1 rundspruch.wav       oder

AUDIODEV=hw:0,1 play ansagemontag.mp3

6) Terminplan für Systemkommandos und Start der Bash-Dateien für Rundspruchdownload und Rundspruchausgabe festlegen.

Mittels Editor und Root-Rechten die Datei crontab öffnen, editieren und speichern.

Konsolenkommando: crontab -e

Beispiel für den termingesteuerten Aufruf von Bash-Dateien für den Rundspruchdownload, dessen Aussendung sowie andere Aufgaben mittels „crontab“:

 

GNU nano 2.5.3                     Datei: /tmp/crontab.ejPz0y/crontab

 

# Edit this file to introduce tasks to be run by cron.

# m h  dom mon dow   command

@reboot /home/db0xyz/vpn.sh

10 02 * * 7 /home/db0xyz/rundspruchnrn.sh

45 11 * * 7 /home/db0xyz/rundspruchkars.sh

00 11 * * 7 /home/db0xyz/playnrn.sh

00 20 * * 7 /home/db0xyz/playkars.sh

00 20 * * 1 /home/db0xyz/playnrnmo.sh

15 03 * * * systemctl reboot -i

15 15 * * * systemctl reboot -i

# Ende

 

7) Beispiele Bash-Datei für den automatischen Rundspruchdownload gemäß Terminvorgabe aus der Datei „Crontab“

 

Hinweis: Alle selbst erstellten Bash Scripte müssen nach Fertigstellung auf dem Ubuntu-System mit dem

nachfolgenden Konsolenkommando ausführbar gemacht werden.

 

sudo chmod +x Dateiname.sh

Dateiname: rundspruchvfdb.sh

#!/bin/bash

#

# /home/db0xyz/rundspruchvfdb.sh

#

###################################################################

# Herunterladen des Originalfiles (Beispiel)

# wget https://www.vfdb.org/rundspruch.mp3

###################################################################

#

#

#VARS

#

WGET=/usr/bin/wget

SVXDIR=/usr/share/svxlink/sounds/de_DE/Rundspruch

#

#LOGIC

#

#alte Files wegschieben

cd $SVXDIR

cp $SVXDIR/vfdb.* $SVXDIR/archiv/

#

#

SRCURL=“https://www.vfdb.org/rundspruch.mp3″

PREFIX=“vfdb“

$WGET $SRCURL                                                  -O $SVXDIR/$PREFIX.mp3

#

# — DONE —

…………………………………………………………………………………………………………………………………………………….

Dateiname: rundspruchnrn.sh

# !/bin/bash

#

# /home/db0xyz/rundspruchnrn.sh

#

####################################################################################

# Herunterladen des Originalfiles (Beispiel)

# Nordrhein-/Ruhrgebiets Rundspruch

# https://www.darc.de/der-club/distrikte/l/rundspruch/

# Zur Freigabe des ftp-Downloads bitte Werner, DL4YBZ kontaktieren!

####################################################################################

#

#

#VARS

#

WGET=/usr/bin/wget

SVXDIR=/usr/share/svxlink/sounds/de_DE/Rundspruch

#

#LOGIC

#

#alte Files wegschieben

cd $SVXDIR

cp $SVXDIR/nrn.* $SVXDIR/archiv/

#

#

SRCURL=“ftp://k35xxxs8:DF0ENxxxxxxxxx@dl0drg.darc.de/NRNKomplettfassung.mp3″

PREFIX=“nrn“

$WGET $SRCURL                                                  -O $SVXDIR/$PREFIX.mp3

#

# — DONE —

 

8) Pfade für Rundspruch- und Auslagerungsvariante svxlink.conf anlegen und befüllen

Unter dem Pfad /etc/svxlink/ einen Ordner mit Namen auslagerungrsp anlegen und die aktuelle svxlink.conf Datei dort ablegen.

Unter dem Pfad /etc/svxlink/ einen Ordner mit Namen rspconfig anlegen und zunächst die

aktuelle svxlink.conf Datei dort ablegen. Nachfolgend diese Config-Datei wie zuvor beschrieben für die temporäre Rundspruchausendung anpassen. Die dabei verwendeten Parameter sind nur für den Zeitraum der Rundspruchausendung aktiv und werden nach Beendigung der Rundspruchaussendung wieder durch die für den Relaisbetrieb festgelegten  Einstellungen ersetzt.

9) Beispiel Bash-Datei für die Rundspruchaussendung Nordrhein- / Ruhrgebiets Rundspruches

Hinweis: Durch den Tausch von Varianten der Datei „svxlink.com“ vor- bzw. nach dem Rundspruch ist es z.B. möglich, währed der Rundspruchübertragung das Echolink-Modul (oder ggf. andere Module) und den Rx1 zu deaktivieren. Hierdurch können externe Störungen während der Rundspruchübertragung unterbunden werden!

Dateiname: playnrn.sh

#!/bin/bash

#

# /home/db0xyz/playnrn.sh

SVETC=/etc/svxlink

#

# SVXCONFIG sichern in Auslagerungspfad

mv $SVETC/svxlink.conf $SVETC/auslagerungrsp/

cp $SVETC/rspconfig/svxlink.conf $SVETC/

#

# Neue SVXCONFIG nur für die Dauer des Rundspruchs aktivieren

pkill -x svxlink

svxlink –daemon

sleep 3

#

# Rundspruchausgabe starten“

aplay –device=plughw:0,1 /usr/share/svxlink/sounds/de_DE/Core/local/1750Hz.wav

AUDIODEV=hw:0,1 play /usr/share/svxlink/sounds/de_DE/Rundspruch/nrn.mp3

AUDIODEV=hw:0,1 play /usr/share/svxlink/sounds/de_DE/Core/local/relaisinformationen052019.mp3

#

# Zuvor gesicherte SVXCONFIG für den Relaisbetrieb wieder zurückkopieren und aktivieren

cp $SVETC/auslagerungrsp/svxlink.conf $SVETC/

pkill -x svxlink

svxlink –daemon

#

# — DONE —

 

 

10) Ergänzende Audiodateien (Beispiele)

 

 

11) Ergänzende Links (z.B. TTS generierung)

http://www.fromtexttospeech.com/

https://online-audio-converter.com/de/

https://www.stefaanlippens.net/audio_conversion_cheat_sheet/

http://onlinetonegenerator.com/

VY73 DG 3 EAJ   //  24.06.2019