ds-unlinkd

Change to English Version

Leider kann ich die Entwicklung der Tools "ds-unlinkd" und "ds-unlinkdx" nicht weiter führen.
Nachdem ich meine eigenen Gateways von Icom-G2-Software auf ircDDBGateway umgestellt habe, benötige ich kein DPlus und kein Steuerskript mehr.
Die letzte Version der Skripte funktioniert nicht mehr mit DPlus Version 2.2h von Dezember 2011.
Als Alternative steht das Tool MonLink von Ken, WB4FAY zur Verfügung.


Dieses Perl-Script trennt eine Verbindung des DStar-Gateways zu einem anderen Gateway oder Reflektor auf der Basis unterschiedlicher Kriterien.

Kriterien fuer eine Trennung koennen sein:

Das Script kann ausserdem einen vordefinierten Default-Link aufbauen.
Der Aufbau wird nach einer konfigurierbaren Zeit nach letzter Aktivitaet aufgebaut.
Der Timer wird nicht durch eine einzelne Station getriggert, die Baken aussendet.
Area-Adressierung kann ignoriert werden wenn es lokal notwendig ist.

Das Script basiert auf den Ausgaben von DPlus in dessen Logfile.
Es wurde mit dem Logformat der DPlus Versionen 2.2c - 2.2f getestet.

Das Script laeuft als Daemon-Prozess.
Das Rufzeichen und die ID des Repeater-Moduls muessen in der Konfigurationsdatei eingetragen werden.
Bei Einsatz von mehreren Repeater-Modulen koennen mehrere Instanzen des Scripts mit unterschiedlichen Konfigurationsdateien gestartet werden.

Ein Beispielaufruf mit Rufzeichen und Modul-ID:

        ./ds-unlinkd /etc/ds-unlinkd-b.conf &

Dieser Befehl startet ds-unlinkd mit der Konfigurationsdatei /etc/unlinkd-b.conf.
 

        ./ds-unlinkd -d  /etc/ds-unlinkd-b.conf

Dieser Befehl macht dasselbe gibt dabei aber Debug-Informationen auf den Bildschirm und in ein Debug-Logfile im Verzeichnis /var/log aus.
 

Ein Beispielaufruf mit dem Standard-Konfigurationsfile /etc/ds-unlinkd.conf:

        ./ds-unlinkd &

Wenn der erste Parameter ein -d ist, wird der Debugmode eingeschaltet, das Script gibt dann einige Informationen zu den verschiedenen Timern aus.
Der Kommandozeilenparameter -h oder -? an erster Stelle zeigt eine kurze Hilfe an und beendet dann das Script.

Fuer diejenigen, die mit Linux nicht sehr vertraut sind:
Das "&" am Ende einer Kommandozeile veranlasst die Shell das Script in einer eigenen neuen Shell im Hintergrund auszufuehren.
Dies ist notwendig, wenn das Script in einer Shell gestartet wird, die anschliessend beendet werden soll, also z.B. in einer SSH-Session. Ohne dieses Zeichen wuerde der Prozess mit dem Abschluss der aufrufenden Shell auch beendet.

In der Konfigurationsdatei muessen einige wenige Dinge konfiguriert werden:

Hier ein Beispiel:



#-----------------------------------------------------------------------------
# Configuration Part:
#-----------------------------------------------------------------------------
#
# the BASE-Callsign of the repeater:
$RptrCall = "XX0XXX";
#
# the ID of the module that you want to unlink:
$Module = "B";
#
# idle timeout for local traffic (in minutes) until a link is unlinked
# (0 = never)
$LocalTimeout = 15;
#
# Waittime after local traffic until the defaultlink will be set up again (in minutes)
# (0 = never)
$SetupWaittime = 10;
#
# beacon interval in minutes (standard beacon and defaultlink-announcement)
# (a value of 0 switches the beacons off)
$BeaconTimer = 0;
#
# beacon text sent if not linked (max 20 characters!)
# |12345678901234567890|
$BeaconText = "this is a sampletext";
#
# Number of maximum direct adressed frames from local stations before unlink
# (0 = don't care)
$MaxDirAdrLoc = 2;
#
# Maximum number of remote frames until unlink
# (0 = don't care)
$MaxDirAdrRem = 10;
#
# allow area repeating when linked (1 = yes / 0 = no)
# "no" will treat area adressing like direct adressing
$AreaRep = 1;
#
#-----------------------------------------------------------------------------
# please change the following settings only if really necessary!
#-----------------------------------------------------------------------------
#
# path and name of the dplus-logfile
##$dplogfile = "/var/log/dplus.log";
#
# path and name of our logfile (switch off logging by using /dev/null)
##$logfile = "/var/log/ds-unlinkd-$Module.log";
#
#-----------------------------------------------------------------------------
# End of configuration part!
#-----------------------------------------------------------------------------

In folgendem File kann ein "Default-Link" festegelegt werden:

    /dstar/tmp/defaultlink-?

wobei das "?" fuer die ID des Moduls steht, von dem ausgehend der Link aufgebaut werden soll.

Der Inhalt des Files muss ein Rufzeichen oder Reflektorname sein, aufgefuellt mit Leerzeichen auf 7 Stellen, gefolgt von der Modul-ID an der 8. Stelle und einem Linefeed.

Beipiele:

In meinem Fall habe ich ein File /dstar/tmp/defaultlink-b mit dem Inhalt "REF006 D"

Dies verbindet mein Modul B mit REF006 Modul D.
 

Ein weiteres Kontroll-File ist

    /dstar/tmp/ds-unlink-?-off

Beispiel:

    /dstar/tmp/ds-unlink-b-off

Wenn dieses File existiert, wird das Script was das Modul "B" ueberwacht den Timeout ignorieren und nicht trennen.


Zum Ablauf:

Defaultlinks koennen leicht gesetzt und geloescht werden, z.B. per Cron:
Das Script kann 2 verschiedene Sprachbaken aussenden. Der Zeitabstand wird mit "BeaconTime" festgelegt, dabei ist dies eine Zeit ohne Betrieb (lokal und remote) auf dem Repeater.
Der Name der auszusendenden Sprachbake richtet sich nach dem Linkstatus des Repeater-Moduls.
Bei meinem Gateway wird eine kurze Bake mit dem Rufzeichen "DB0MYK" ausgegeben wenn der Repeater nicht verlinkt ist und eine laengere mit "DB0MYK verbunden mit Reflektor 6 delta" wenn der Defaultlink zu "REF006 D" besteht.
Diese Bake wird wie ueblich im DVTool-format unter folgenden Namen erwartet mit der Module-ID an Stelle von "?" (in Kleinschrift).

Das Script wertet das Logfile von DPlus aus und benutzt nur Interfaces, die dafuer von der DPlus- Entwicklergruppe spezifziert wurden.
 
Das Script triggert die Timer nur bei Aussendungen, die wechselnde MyCalls haben.
Dies ist ein einfacher Versuch Bakensendungen zu ignorieren, was nicht funktionieren wird, wenn mehrere Dauerbakensender auf dem Kanal aktiv sind.
Vielleicht hilft in dem Fall persoenliche Ansprache und der Appel an die Vernunft.


Weitere Aenderungen an der Konfigurationsdatei koennen notwendig sein wenn die DPlus-Installation nicht standardmaessig ist.

Die Logfiles bekommen automatisch verschiedene Filenamen, die Modul-ID wird an den Basisnamen angehaengt.
Bitte nichts aendern, wenn man nicht sicher ist was das bewirkt!.
Man sollte nie dasselbe Logfile fuer mehrere Module benutzen und damit Instanzen des Scripts, das wird zu Fehlern fuehren!

Wer nur begrenzten Plattenspeicher zur Verfuegung hat kann das Loggen von dsunlinkd abschalten indem er konfiguriert:
$logfile="/dev/null";

Das Script muss NACH DPlus gestartet werden. Das kann man automatisieren indem man ein eigenes Startscript anlegt oder das Startscript von DPlus modifiziert.
Ein Beispiel werde ich in einer naechsten Version nachreichen.
Das Script erzeugt ein Modul-abhaengiges PID-file /var/run/ds-unlinkd-<ID>.pid was verwendet werden kann um es gezielt zu stoppen.


Das sollte alles Wichtige sein!

Bei Fragen oder Anmerkungen, Verbesserungsvorschlaegen etc. bitte einfach melden!

Danke all denen, die ihre Ideen eingebracht haben - bis nach Australien!
 

Hier der Download-Link:

    http://download.prgm.org/dl5di-soft/dstar-tools/dstar-unlinkd/ds-unlinkd-latest.tgz

Diese Daemon-Version ersetzt das alte unlink-Script.

Wer von der Version aus updatet sollte das Loeschen des Aufrufs des alten Scripts in der Crontab nicht vergessen!

December 2009



dplus + dextra


November 2011:
Ich habe mich vor einigen Monaten entschlossen, bei DB0MYK die Icom-G2-software durch ircDDBGateway von G4KLX zu ersetzen.
Diese Software bietet deutlich mehr Moeglichkeiten als die vor 3 Jahren eingefrorene Icom-Software und funktioniert absolut problemlos mit Icom-Hardware.
Noch dazu ist es ein OpenSource-Projekt, an dem jeder mitarbeiten kann, und wo es staendig etwas neues gibt.
Das bedeutet aber leider auch, dass ich dsunlinkd in der bisherigen Form nicht mehr testen und weiter entwickeln kann.
Zum Abschluss habe ich meine letzte Version hier bereitgestellt:

    http://download.prgm.org/dl5di-soft/dstar-tools/dstar-unlinkd/ds-unlinkdx-latest.tgz

Diese spezielle "X"-Version unterstuetzt DPlus und DeXtra_ng im Parallelbetrieb.
Ich hatte bei dieser Weiterentwicklung die Software komplett neu strukturiert. Das war dringend erforderlich, nachdem sich die alte Version in den letzten 3 Jahren zu einem unendlichen Bandwurm entwickelt hatte, der schwer zu pflegen und weiter zu entwickeln war.

Nachdem Jonathan/G4KLX einen Patch von mir in das Release von ircDDBGateway uebernommen hat, der eine einfache Script-Schnittstelle bereitstellt, werde ich in Zukunft an einer dsunlinkd-Version für ircDDBGateway arbeiten.
Infos und Software zu ircDDBGateway von G4KLX gibt es hier: http://groups.yahoo.com/group/ircDDBGateway/messages !
Der Umstieg ist sehr einfach, egal ob auf LinuX- oder Windows-Plattformen, und es gibt immer einen Weg zurueck (den meines Wissens noch niemand gebraucht hat).

73 de Hans-Juergen, DL5DI
 

Email: dl5di - at - prgm.org
Web:   http://dl5di.prgm.org