XGATE
=====

Idee: Peter, HB9PAE
Autor: Jimy, DL1GJI

XGATE ist ein externes Programm (XTS) fuer 3NET und STNET,
das automatische Connects und Informationstransfers vornimmt.

* Man kann z.B. vollautomatisch DX-Clustermeldungen in einen
  Converskanal einspielen.
* Man kann Converskanaele miteinander koppeln
* Man kann vollautomatische Connects aufbauen, Daten senden und
  wieder abbauen.

Die jeweiligen auszufuehrenden Aktionen werden in einer Skript-
datei hinterlegt, die beim Start von xgate als Parameter 
angegeben werden muss.

Folgendes Skript Connectet die TNC3BOX von DL2GWA und speichert
die aktuelle Digi-Statistik als Mail an ihn ab:

a:onstart      i    db0sig
a:onstart      c a: dl2gwa-8
a:onconnect    q a: s dl2gwa Statistik
a:ondisconnect b
a:onconnect    c b:db0sig

b:onconnect    q b: s
b:onconnect    q b: q
b:ondisconnect q a: ***END
b:ondisconnect q a: quit
b:oninfo       t a:


Folgendes Skript verbindet das DX-Cluster HB9W-8 mit dem Convers-
Kanal 9000 und gibt alle empfagenen DX-Meldungen im Convers aus.

#########################
# Verbindung zu hb9ak-11
#########################
a:onstart       i hb9ae-2
a:onstart       c a: hb9ak-11
a:onconnect     q a: conv 9000
a:onconnect     q a: /top HB9W DX cluster convers update service: THIS IS A TEST
a:ondisconnect  w 60
a:ondisconnect  c a: hb9ak-11
#########################
# Verbindung zu HB9W-8
#########################
b:onstart       i dl1gji
b:onstart       c b: hb9w-8
b:ondisconnect  q a: Sri, connection to HB9W-8 broken
b:ondisconnect  w 60
b:ondisconnect  c b: hb9w-8
b:onconnect     q a: Connected to HB9W-8
b:oninfo        t a:

Kanaele
=======
(X)Gate stellt insgesamt vier Kanaele

a:
b:
c:
d:

fuer beliebige Verbindungen zur Verfuegung.

Ereignisse
==========
onstart:	Wird beim Starten des Programms ausgeloest
onconnect:      Wenn eine Verbindung zustande gekommen ist
oninfo:	        Wenn Infos angekommen sind
ondisconnect:   Wenn die Verbindung aufgeloest wurde

Kommandos
=========
Bei jedem Ereignis kann einer der folgenden Befehle ausgeloest werden:

i <Call>          setzt das Rufzeichen auf dem Kanal
b                 Beendet XGATE
c <kanal>  <Call> Beginnt einen Verbindungsaufbau auf dem angegebenen Kanal
                  zu <Call>. Es koennen auch vias oder Portnummern angegeben
                  werden.
w <Sek>           Wartet die angegebene Zahl von Sekunden
q <Kanal> <Text>  Schreibt den Text in den angegebenen Kanal. Verschickt
                  wird der Text nur dann wenn der Kanal auch connectet ist.
t <Kanal>         Funktioniert nur in Verbindung mit dem Ereignis "oninfo"
                  und uebergibt die empfangenen Informationen an den 
                  angegebenen Kanal.

Prinzipieller Aufbau der Skriptdatei
====================================
Die Skriptdatei ist folgendermassen aufgebaut:

<Kanal> <Ereignis> <Kommando>

Bedeutung: Wenn auf <KANAL> <EREIGNIS> passiert, mache <KOMMANDO>
Pro Ereignis und Kanal koennen ggf. mehrere Zeilen hinterlegt
werden. Sie werden in der Reihenfolge ihres Auftretens abgearbeitet.

Was (noch) nicht geht
=====================
XGATE kann keine Inhalte von empfangenen Daten auswerten und auf
sie reagieren. XGATE kann nur auf die oben beschriebenen Ereignisse
reagieren.

XGATE Starten
=============
gestartet wird xgate als Hinergrundprozess mit der Syntax:

start xgate [Scriptfile]

sofern keine Skriptdatei angegenen wird, wird standardmaessig "xgate.net"
verwendet.
XGATE kann ereignisgesteuert beendet werden - kann aber auch mit "stop"
vom Sysop beendet werden.
