Es gibt leider eine ganze Reihe von Leuten, deren Horizont arg beschränkt ist, die dem QSO-Thema nicht folgen können, den OMs durch die Trennung der EchoLink-Verbindung permanent das QSO zerstören oder für Rundsprüche zusammengeschaltete Relaisstationen trennen. Um zu verhindern, dass eine EchoLink-Verbindung ständig durch diese Störer getrennt wird, kann man einen der folgenden Wege gehen.
1) Disconnect wird durch „geheimes Kommando“ verhindert
* Erzeugen Sie eine Datei z.B. no-disconnect.tcl mit dem folgenden Inhalt:
# das Überschreiben der Prozedur mit folgendem Inhalt verhindert das # einfache Trennen einer EchoLink-Verbindung durch "#" # Ersetzen Sie die Werte für # "XX" mit dem Kommando für die Aktivierung der Disconnect-Sperre # "YY" mit dem Kommando für die Deaktivierung der Disconnect-Sperre # für den Zeitraum der Aktivierung nimmt svxlink kein "leeres" DTMF-Kommando # entgegen (z.B. Rundspruch) namespace eval Logic { # variable for Logic.tcl (muss im namespace Logic definiert werden, Nachtrag, 5.3.13, M. H.) variable ignore_dtmf 0; proc dtmf_cmd_received {cmd} { puts "DTMF command received: $cmd"; variable ignore_dtmf; if {$cmd == "XX"} { set ignore_dtmf 1; return 1; } if {$ignore_dtmf} { if {$cmd == "YY"} { set ignore_dtmf 0; return 1; } elseif {$cmd == ""} { return 1; } } return 0; } } # end of namespace Logic
2) Disconnect ist erst nach xx Sekunden möglich und nur wenn von der EchoLink-Station kein Audiostream mehr zu empfangen ist, benötigt eine Erweiterung im Modul EchoLink/ModuleEchoLink::inIsReceiving():
* Erzeugen Sie eine Datei z.B. no-disconnect.tcl mit dem folgenden Inhalt:
namespace eval Logic { proc dtmf_cmd_received {cmd} { global last_el_stream; global is_el_rx; variable now; variable ignore_dtmf; variable diff; set cs $EchoLink::num_connected_stations; set now [clock seconds]; # Trennung erst nach 35 Sekunden oder durch geheimes Kommando "78#" set diff [expr {$last_el_stream + 35 - $now}]; if {$cs > 0} { if {(($diff < 0) && !$is_el_rx) || $cmd == "78"} { puts "disconnect OK"; return 0; } return 1; } else { return 0; } } } # end of namespace Logic namespace eval EchoLink { proc is_receiving {isrec} { global last_el_stream; global is_el_rx; set is_el_rx $isrec; if {$isrec == 0} { set last_el_stream [clock seconds]; } puts "is_receiving $isrec $is_el_rx $last_el_stream"; } } # end of namespace EchoLink
2) Speichern Sie diese Datei(en) in ein entsprechendes locale-Verzeichnis (siehe Locale-Konzept) und starten Sie SvxLink neu