Internetstreaming vor Linux Kernel Version 2.6.37

Um den Funkverkehr einer breiten Masse zugänglich zu machen bietet sich die Einrichtung eines Streamingservers an.
Im Folgenden wird die Einrichtung beschrieben. Diese ist momentan aber noch nicht optimal, an einer Verbesserung wird gearbeitet. Das Problem ist, dass Ices2 offensichtlich nicht von einem Playback-Device streamen kann. Aus diesem Grund ist momentan bei dieser Version noch eine zusätzliche Soundkarte erforderlich. Es ist aber mein Ziel, darauf zukünftig verzichten zu können.

Voraussetzungen:
* Icecast2 als Streamingserver
* Ices2 als Streaming client
* eine einfache USB-Soundkarte, bei der der Lautsprecherausgang und Mikrofoneingang miteinander verbunden werden.

Ich nutze hierfür eine billige USB-Soundkarte für 4,95 € bei einem bekannten virtuellen Auktionshaus.
Zunächst müssen Icecast2 und Ices2 installiert und nach Wunsch konfiguriert werden, im Internet gibt es hierfür mehr als genügend Konfigurationsbesispiele.
Der ices2 wird auf dem selben PC installiert, auf dem auch SvxLink läuft. Hier gibt es folgendes zu beachten:

Ices2 kann nicht auf das selbe Device zugreifen, welches von SvxLink als Sounddevice genutzt wird, es kommt hierbei zu einer „resource busy“ Meldung.
Aus diesem Grund splittet man den Audiopfad mit Hilde der /etc/asound.conf auf:

pcm.convert {
type plug
slave { pcm "hw:1,0" }
}

pcm.dmix1 {
type copy
slave { pcm convert }
}

pcm.dmix2 {
type copy
slave { pcm dmix1 }
}

Ices2 grabbt nun von z.B. dmix2 und SvxLink liefert die Daten an dmix1. Nachfolgend Ausschnitte für beide Applikationen:

/etc/ices2.xml:
...
< stream >
< metadata >
< name >DB0WSF< /name>
< genre >Hamradio Network< /genre >
< description >Livestream of DB0WSF-R / Pettstaet / JO51wg< /description >
< url >http://svxlink.de< /url >
< /metadata >
< input >
< module >alsa< /module >
< param name="rate">16000< /param>
< param name="channels">1< /param>
< param name="device">plug:dmix2< /param>
< param name="buffer-time">500< /param>
< param name="metadata">1< /param>
< param name="metadatafilename">/tmp/info.txt< /param>
< /input>
...

SvxLink wird als Multi-Tx konfiguriert (/etc/svxlink/svxlink.conf):

[RepeaterLogic]
TYPE=Repeater
RX=QuantarRx
TX=MultiTx
MODULES=ModuleEchoLink,ModuleMetarInfo,ModulePropagationMonitor,ModuleSelCallEnc,ModuleTrafficInfo
....

[MultiTx]
TYPE=Multi
TRANSMITTERS=RepeaterTx,StreamingTx

[RepeaterTx]
TYPE=Local
AUDIO_DEV=alsa:hw0
AUDIO_CHANNEL=0
PTT_PORT=/dev/ttyS0
PTT_PIN=DTRRTS
TX_DELAY=0
PREEMPHASIS=0
DTMF_TONE_LENGTH=100
DTMF_TONE_SPACING=50
DTMF_TONE_AMP=-18

[StreamingTx]
TYPE=Local
AUDIO_DEV=alsa:dmix1
AUDIO_CHANNEL=0
PTT_PORT=NONE
PTT_PIN=DTRRTS
TX_DELAY=0
PREEMPHASIS=0
DTMF_TONE_LENGTH=100
DTMF_TONE_SPACING=50
DTMF_TONE_AMP=-18

Jetzt alle Applikationen starten und die Funktion prüfen.
Viel Erfolg wünscht Adi, DL1HRC