Linking RemoteTrx und SvxLink

Bei dieser Konfiguration werden von einem Remotetrx/SvxLink-Basis empfangenen Signale an die angeschlossenen Stationen übertragen und dort ausgegeben. Ebenfalls können die angeschlossenen Stationen am EchoLink-Betrieb teilnehmen bzw. entsprechende EchoLink-Verbindungen auf- und abbauen. Die hier dargestellte Variante nutzt sendeseitig einen MultiTx und empfangsseitig die in SvxLink eingebaute Voter-Funktion.

Auf der SvxLink-Basisstation läuft die Applikation svxlink, auf den RemoteTrx(en) die Applikation remotetrx (bei SvxLink mit dabei). Der Verbindungsaufbau erfolgt dabei grundsätzlich von der Svxink-Basisstation zu den RemoteTrx(en). Achten Sie darauf, dass diese über die IP-Adresse (Achtung bei dhcp) oder per Hostnamen (außerhalb des eigenen Netzes -> dyndns, o.ä) auf dem konfigurierten Port erreichbar sind.
Als Codec kann innerhalb des eigenen Netzes entweder ein RAW-Stream oder der S16-Codec verwendet werden, bei Verbindungen ins Internet über eine DSL-Verbindung sollte man auf den SPEEX und bei geringeren Qualitätsansprüchen auf den GSM-Codec zurückgreifen.
Die Nachteile dieser Konfigurationsvariante sollen aber nicht verschwiegen werden:

  • Die Verbindungen zwischen den Stationen sind statisch, also nicht steuerbar (Trennen,Verbinden auf Kommando)
  • keine spezifischen Logic-Funktionen für die einzelnen RemoteTrx(e) verfügbar (Metar,Parrot,…)
  • Voterfunktionen kosten Zeit, d.h. höhere Latenzen

Eine Weiterentwicklung stellt das LogicLinking dar, welches es das gezielte Verbinden/Trennen einzelner Teilnehmer sowie Timeout-Funktionen ermöglichen.Abbildung 1: Prinzip SvxLink und RemoteTrx(e)

Abbildung 1: Prinzip SvxLink und RemoteTrx(e)

Die nachfolgende Abbildung stellt die einzelnen Konfigurationsabschnitte der SvxLink-Basis und eines RemoteTrx’s deutlich(er) heraus.

Abbildung 2: SvxLink/RemoteTrx-Konfiguration, Prinzip

Abbildung 2: SvxLink/RemoteTrx-Konfiguration, Prinzip

Nachfolgend die Konfigurationsdateien für die einzelnen Stationen analog zur Abbildung 1.
SvxLink (Basisstation), Konfigurationsdatei svxlink.conf

# Konfigurationsdatei svxlink.conf auf der lokalen SvxLink-Basis
[GLOBAL]
MODULE_PATH=/usr/lib/svxlink
LOGICS=RepeaterLogic
CFG_DIR=svxlink.d
TIMESTAMP_FORMAT="%d.%m.%Y %H:%M:%S"
CARD_SAMPLE_RATE=48000

[RepeaterLogic]
TYPE=Repeater
RX=Voter
TX=MultiTx
MODULES=ModuleHelp,ModuleParrot,ModuleEchoLink,ModuleTclVoiceMail
CALLSIGN=DL1ABC
SHORT_IDENT_INTERVAL=60
LONG_IDENT_INTERVAL=60
EVENT_HANDLER=/usr/share/svxlink/events.tcl
DEFAULT_LANG=de_DE
RGR_SOUND_DELAY=0
MACROS=Macros
FX_GAIN_NORMAL=0
FX_GAIN_LOW=-12
OPEN_ON_SQL=50 
IDLE_TIMEOUT=2
NO_REPEAT=1

[MultiTx]
TYPE=Multi
TRANSMITTERS=Remote_Tx1,Remote_Tx2,Local_Tx

[Voter]
TYPE=Voter
RECEIVERS=Remote_Rx1,Remote_Rx2,Local_Rx
VOTING_DELAY=200

# zunaechst werden die RX- und TX-Abschnitte für das an der
# SvxLink-Basis angeschlossene Funkgeraet definiert
[Local_Rx]
TYPE=Local
AUDIO_DEV=alsa:plughw:0
AUDIO_CHANNEL=0
SQL_DET=VOX
SQL_START_DELAY=0
SQL_DELAY=0
SQL_HANGTIME=2000
VOX_FILTER_DEPTH=20
VOX_THRESH=1000
CTCSS_FQ=136.5
CTCSS_THRESH=10
SERIAL_PORT=/dev/ttyS0
SERIAL_PIN=CTS:SET
SIGLEV_SLOPE=1
SIGLEV_OFFSET=0
SIGLEV_OPEN_THRESH=30
SIGLEV_CLOSE_THRESH=10
DEEMPHASIS=0
PEAK_METER=1
DTMF_DEC_TYPE=INTERNAL
DTMF_MUTING=1
DTMF_HANGTIME=100
DTMF_SERIAL=/dev/ttyS0

[Local_Tx]
TYPE=Local
AUDIO_DEV=alsa:plughw:0
AUDIO_CHANNEL=0
PTT_PORT=/dev/ttyS0
PTT_PIN=DTRRTS
TIMEOUT=600
TX_DELAY=500
PREEMPHASIS=0
DTMF_TONE_LENGTH=100
DTMF_TONE_SPACING=50
DTMF_TONE_AMP=-18

# jetzt folgen die Verweise auf die per Netzwerk anzubindenden
# Stationen (RemoteTrx's)
[Remote_Tx1]
TYPE=Net
HOST=192.168.0.1
TCP_PORT=5300
AUTH_KEY="supergeheim"
CODEC=S16

[Remote_Rx1]
TYPE=Net
HOST=192.168.0.1
TCP_PORT=5300
AUTH_KEY="supergeheim"
CODEC=S16

[Remote_Tx2]
TYPE=Net
HOST=192.168.0.2
TCP_PORT=5301
AUTH_KEY="supergeheim"
CODEC=SPEEX

[Remote_Rx2]
TYPE=Net
HOST=192.168.0.2
TCP_PORT=5301
AUTH_KEY="supergeheim"
CODEC=SPEEX

Nachfolgend die Konfigurationen für die RemoteTrx’e.

RemoteTrx1 (auf 192.168.0.1), Konfigurationsdatei remotetrx.conf:

# Konfigurationsdatei remotetrx.conf auf dem ersten RemoteTrx
[GLOBAL]
TRXS=NetUplinkTrx
TIMESTAMP_FORMAT="%c"
CARD_SAMPLE_RATE=48000

[NetUplinkTrx]
TYPE=Net
RX=Rx1
TX=Tx1
LISTEN_PORT=5300
FALLBACK_REPEATER=0
AUTH_KEY="supergeheim"

[Rx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:0
AUDIO_CHANNEL=0
SQL_DET=VOX
SQL_START_DELAY=200
SQL_DELAY=100
SQL_HANGTIME=2000
VOX_FILTER_DEPTH=20
VOX_THRESH=1000
CTCSS_FQ=136.5
CTCSS_THRESH=10
SERIAL_PORT=/dev/ttyS0
SERIAL_PIN=CTS:SET
SIGLEV_SLOPE=1
SIGLEV_OFFSET=0
SIGLEV_OPEN_THRESH=30
SIGLEV_CLOSE_THRESH=10
DEEMPHASIS=0
PEAK_METER=0
DTMF_DEC_TYPE=INTERNAL
DTMF_MUTING=1
DTMF_HANGTIME=100
DTMF_SERIAL=/dev/ttyS0

[Tx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:0
AUDIO_CHANNEL=0
PTT_PORT=NONE
PTT_PIN=DTRRTS
TIMEOUT=300
TX_DELAY=500
PREEMPHASIS=0
DTMF_TONE_LENGTH=100
DTMF_TONE_SPACING=50
DTMF_TONE_AMP=-18

RemoteTrx2 (auf 192.168.0.2), Konfigurationsdatei remotetrx.conf:

# Konfigurationsdatei remotetrx.conf auf dem zweiten RemoteTrx
[GLOBAL]
TRXS=NetUplinkTrx
TIMESTAMP_FORMAT="%c"
CARD_SAMPLE_RATE=48000

[NetUplinkTrx]
TYPE=Net
RX=Rx1
TX=Tx1
LISTEN_PORT=5301
FALLBACK_REPEATER=0
AUTH_KEY="supergeheim"

[Rx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:0
AUDIO_CHANNEL=0
SQL_DET=VOX
SQL_START_DELAY=200
SQL_DELAY=100
SQL_HANGTIME=2000
VOX_FILTER_DEPTH=20
VOX_THRESH=1000
CTCSS_FQ=136.5
CTCSS_THRESH=10
SERIAL_PORT=/dev/ttyS0
SERIAL_PIN=CTS:SET
SIGLEV_SLOPE=1
SIGLEV_OFFSET=0
SIGLEV_OPEN_THRESH=30
SIGLEV_CLOSE_THRESH=10
DEEMPHASIS=0
PEAK_METER=0
DTMF_DEC_TYPE=INTERNAL
DTMF_MUTING=1
DTMF_HANGTIME=100
DTMF_SERIAL=/dev/ttyS0

[Tx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:0
AUDIO_CHANNEL=0
PTT_PORT=/dev/ttyS0
PTT_PIN=DTRRTS
TIMEOUT=300
TX_DELAY=500
PREEMPHASIS=0
DTMF_TONE_LENGTH=100
DTMF_TONE_SPACING=50
DTMF_TONE_AMP=-18