home *** CD-ROM | disk | FTP | other *** search
- # -----------------------------------------------------------------------------
- # T-Online-Decoder 1.2c
- # -----------------------------------------------------------------------------
- # Aufruf T-Online-FUNSock-Gateway und Rⁿckkehr nach CEPT
- # -----------------------------------------------------------------------------
- # (C) 1997 FUN Kommunikationssysteme GmbH
- # Stand: 17.2.1997 Klaus Nahr, FUN
- # -----------------------------------------------------------------------------
-
-
- # Defaultwert -----------------------------------------------------------------
- set DEBUG = "off"
- # Fⁿr Tests die folgenden beiden Zeilen aktivieren
- # Debugausgaben an, CEPT zeigen
- # set DEBUG = "on"
- # set PROTWIN = "on"
- # onwin
-
-
- # CEPT-Fenster schliessen -----------------------------------------------------
- if DEBUG == "on" goto NoOffwin
- offwin
- NoOffwin:
-
-
- # Nummer der Gateway-Seite, Defaultparameter ----------------------------------
- set RegPage = ""
- set GatePage = ""
- set ReturnPage = ""
- set Application = ""
- set Argument1 = ""
- set Argument2 = ""
- set Argument3 = ""
- set Argument4 = ""
- set Argument5 = ""
- set Argument6 = ""
- set RegFilename = "FUNSOCK.INI"
- set RegSection = "Gateway"
- set RegOk = "Ok"
- set RegFailed = "Failed"
- set RegDefault = "*NOTFOUND*"
- set GeldFilename = "PREMIUM.INI"
- set GeldSection = "Konfiguration"
- set GeldEntry = "Betrag"
- set GeldDefault = "*NOTFOUND*"
- set AutoBestaetigung = "Nein"
- set Action = ""
-
- # Texte in der Messageboxen ---------------------------------------------------
- set MessageTitel = "T-Online Internet-Gateway"
- set MessageTextRegistrierung = "Zur Nutzung des Internet-Gateways mⁿssen\nSie sich zunΣchst registrieren.\n\n"
- set MessageTextZugang = "Verbindungsaufbau zum Gateway-Rechner.\n\n"
- set MessageTextNetzentgelte = "Fⁿr die Verbindung zum Gateway werden Ihnen die\nanfallenden Netzentgelte (Datex-P-Gebⁿhren) berechnet.\n\n"
-
- ifless argc than "2" goto Start
- set RegPage = argv_1
- ifless argc than "3" goto Start
- set GatePage = argv_2
- ifless argc than "4" goto Start
- set ReturnPage = argv_3
- ifless argc than "5" goto Start
- set Application = argv_4
- ifless argc than "6" goto Start
- set Argument1 = argv_5
- ifless argc than "7" goto Start
- set Argument2 = argv_6
- ifless argc than "8" goto Start
- set Argument3 = argv_7
- ifless argc than "9" goto Start
- set Argument4 = argv_8
- ifless argc than "10" goto Start
- set Argument5 = argv_9
- ifless argc than "11" goto Start
- set Argument6 = argv_10
-
- Start:
-
- # Automatische Bestaetigung als Parameter (Application == -azb) ---------------
- delblanks Application
- ifnot Application == "-azb" goto ReadGeldValue
- set AutoBestaetigung = "Ja"
- set Application = ""
-
- # Betrag fuer autom. Bestaetigung lesen ---------------------------------------
- ReadGeldValue:
- iniread GeldValue = GeldFilename, GeldSection, GeldEntry, GeldDefault
-
- # Betrag-Eintrag nicht gefunden => alter Decoder
- if GeldValue == GeldDefault goto GeldDone
- delblanks GeldValue
-
- # von vorne auf mind. 3 Stellen mit Nullern auffuellen
- strlen GeldLen of GeldValue
- GeldLoop:
- ifeqgreater GeldLen than "3" goto GeldOk
- strinsert GeldValue, "0", "0"
- inc GeldLen
- goto GeldLoop
- GeldOk:
- subtract GeldLen, "2"
- strinsert GeldValue, ",", GeldLen
-
- GeldDone:
- strcat Application, " ", Argument1, " ", Argument2, " ", Argument3, " ", Argument4, " ", Argument5, " ", Argument6
- delblanks Application
-
-
- # Internet-Gateway anwΣhlen ---------------------------------------------------
- StartConnect:
- # Sind wir T-Online?
- getstate StatusBeiStart
- if StatusBeiStart == "CONNECTED" goto IsOnline
- connect
-
- # Anwahl ok?
- getstate Status
- if Status == "DISCONNECTED" goto Ende
-
-
- IsOnline:
- # evtl. ER verlassen
- whatdct DCT
- # kein DCT
- if DCT == "0" goto Wait
- # In einem ER?
- if DCT == "2" goto LeaveER
- # im VT100-Modus
- if DCT == "4" goto Anwendung
- goto GoVT100
-
- # Warte auf DCT
- Wait:
- waitdct
- goto GoVT100
-
- # Verlasse Externen Rechner
- LeaveER:
- send "\c\*0\#"
- waitdct
- get line24 = "1", "24", "40", "24"
-
- # Im VT100-Mode?
- whatdct DCT
- if DCT == "4" goto Anwendung
-
- # In VT100-Mode wechseln
- GoVT100:
- # Start im CEPT-Mode
- gosub SwitchToVT100
-
-
- # Jetzt kanns losgehen --------------------------------------------------------
- Anwendung:
- # RegPage-Eintrag aus INI-Datei lesen
- iniread IniRegPage = RegFilename, RegSection, RegPage, RegDefault
-
- # Registrierung bereits erfolgt ?
- if IniRegPage == RegOk goto EnterGateway
-
- # Registrieren
- gosub Register
- if Action=="OK" goto EnterGateway
- if Action=="Connected" goto EnterGateway
- goto Done
-
- EnterGateway:
- gosub Gateway
- # Fehler? Nicht in VT100-Modus bei Aufruf der Gatewayseite?
- # dann Moduswechsel nachholen
- ifnot Action == "DCTErr" goto Done
- gosub GoVT100
- gosub Gateway
- ifnot Action == "DCTErr" goto Done
- messagebox ret: MessageTitel, "Wechsel in den VT100-Mode nicht ausfⁿhrbar", "OK"
-
-
- Done:
- # Wieder in CEPT wechseln
- gosub SwitchToCEPT
-
-
- # Rⁿcksprungseite aufrufen ----------------------------------------------------
- CallReturnPage:
- # Falls ReturnPage == -, dann ignorieren
- if ReturnPage == "-" goto NoReturnPage
- send "\c*", ReturnPage, "#"
- NoReturnPage:
-
- # Ende ------------------------------------------------------------------------
- Ende:
-
- # folgende Message sorgt fuer Schliessen der Box
- statusmsg "\\"
-
- # Internet-Dialog beenden
- statusmsg "~Internet"
-
- end
-
-
- ###############################################################################
- # Verbindung zum Internet-Gateway aufbauen, Ergebnis in Action zurⁿckliefern
- ###############################################################################
-
- Gateway:
- # Bereits im ER?
- if Action=="Connected" goto ContinueSession
- set Action = "Ok"
- # GatePage aufrufen
- statusmsg "Internet-▄bergabeseite anwΣhlen ..."
- send "\c*", GatePage, "#"
- waitdct
- # Sind wir im VT100-Mode
- whatdct GateDCT
- # debug "DCT = ", GateDCT, "\n"
- ifnot GateDCT == "1" goto GateDCTOk
- set Action = "DCTErr"
- return
-
- GateDCTOk:
-
- set FNSYS = ""
-
- # Sind wir auf der richtigen Seite?
- getsh SHMeldung
- if SHMeldung == "SH506" goto VerbAufbauNetzentgelt
- if SHMeldung == "SH047" goto VerbAufbau
- if SHMeldung == "SH305" goto VerbAufbau
- if SHMeldung == "SH550" goto VerbAufbau
- if SHMeldung == "SH581" goto VerbAufbau
- goto ERZugangErr
-
- # ER-Verbindung mit Netzentgeltⁿbernahme
- VerbAufbauNetzentgelt:
- gosub GetZeile24
- set Message = MessageTextNetzentgelte, Zeile24
- messagebox ret: MessageTitel, Message, "YESNO"
- if ret == "YES" goto VerbAufbauNetzentgeltOK
- set Action = "EXIT"
- return
- VerbAufbauNetzentgeltOK:
- send "19"
- waitdct
-
- # ER-Verbindung
- VerbAufbau:
- # Automatische Bestaetigung?
- if AutoBestaetigung == "Ja" goto Connect
- # Premium-Betrag ? dann autom. bestaetigen
- get line24 = "1", "24", "40", "24"
- strpos p = GeldValue in line24
- ifnot p == "" goto Connect
- gosub GetZeile24
- set Message = MessageTextZugang, Zeile24
- messagebox ret: MessageTitel, Message, "YESNO"
- if ret=="YES" goto Connect
- set Action = "EXIT"
- return
-
- Connect:
- statusmsg "Verbindung zum Internet-Gateway-Rechner aufbauen ..."
- send "19"
- waitdct
-
- getsh SH
- if SH == "AX601" goto ERZugangErr
- get FNSYS = "36", "23", "40", "23"
- if FNSYS=="FN900" goto ContinueSession
-
- ERZugangErr:
- set info="Zugang zum Gateway fehlgeschlagen\n"
- get line24 = "1", "24", "40", "24"
- strcat info, line24
- strcat info, " "
- strcat info, FNSYS
- messagebox ret: MessageTitel, info, "OK"
- set Action="EXIT"
- return
-
- ContinueSession:
- # jetzt sind wir im FUNSock ER
- # die folgende Message sorgt fuer Schliessen der Status-Box
- statusmsg "\\"
- if Application=="" goto NoApplication
- system Application
- NoApplication:
-
- # Jetzt warten, bis ER die Sitzung beendet
- waitdct
-
- get RetCode = "23", "24", "40", "24"
- set Sys = "Internetsitzung beendet "
- strcat Sys, RetCode
- statusmsg Sys
-
- return
-
-
-
- ###############################################################################
- # Registrierungsseite aufrufen
- ###############################################################################
- Register:
-
- # wenn Reg-Seite "*" gar nicht erst aufrufen (FJ) => nicht in INI-Datei
- if RegPage == "*" goto RegisterDone
- statusmsg "Registrierungsseite anwΣhlen ..."
- send "\c*", RegPage, "#"
- waitdct
-
- # wenn FN990 gleich weiter (FJ) => nicht in INI-Datei
- get SHMsg = "36", "23", "40", "23"
- if SHMsg == "FN990" goto RegisterDone
-
- # Sind wir auf der richtigen Seite?
- getsh SHMeldung
- if SHMeldung == "SH506" goto DoRegNetzentgelt
- if SHMeldung == "SH047" goto DoReg
- if SHMeldung == "SH305" goto DoReg
- if SHMeldung == "SH550" goto DoReg
- if SHMeldung == "SH581" goto DoReg
- goto RegFailedNoAccess
-
- DoRegNetzentgelt:
- gosub GetZeile24
- set Message = MessageTextNetzentgelte, Zeile24
- messagebox ret: MessageTitel, Message, "YESNO"
- if ret == "YES" goto DoRegNetzentgeltOK
- set Action = "EXIT"
- return
- DoRegNetzentgeltOK:
- send "19"
- waitdct
-
- DoReg:
- # Premium-Betrag ? dann autom. bestaetigen
- get line24 = "1", "24", "40", "24"
- strpos p = GeldValue in line24
- ifnot p == "" goto DoReallyReg
- gosub GetZeile24
- set Message = MessageTextRegistrierung, Zeile24
- messagebox ret: MessageTitel, Message, "YESNO"
- if ret=="YES" goto DoReallyReg
- goto RegFailed
-
- DoReallyReg:
- send "19"
- waitdct
- get FNSYS = "36", "23", "40", "23"
- if FNSYS=="FN990" goto RegOK
- # falls der Rechner mit FN900 antwortet, sind wir schon jetzt im Gateway!
- if FNSYS=="FN900" goto RegConnect
- set info="Anmeldung am Gateway fehlgeschlagen\n"
- get line24 = "1", "24", "40", "24"
- strcat info, line24
- strcat info, " "
- strcat info, FNSYS
- messagebox ret: MessageTitel, info, "OK"
- goto RegFailed
-
- RegFailedNoAccess:
- set info="Zugang zum Gateway fehlgeschlagen\n"
- get line24 = "1", "24", "40", "24"
- strcat info, line24
- messagebox ret: MessageTitel, info, "OK"
- goto RegFailed
- return
-
-
- RegOK:
- iniwrite RegFilename, RegSection, RegPage, RegOk
- RegisterDone:
- set Action = "OK"
- return
-
- RegConnect:
- iniwrite RegFilename, RegSection, RegPage, RegOk
- set Action = "Connected"
- return
-
- RegFailed:
- set Action = "EXIT"
- iniwrite RegFilename, RegSection, RegPage, RegFailed
- return
-
-
- ###############################################################################
- # VT100-Wechsel
- ###############################################################################
- SwitchToVT100:
-
- statusmsg "Wechsel in den VT100-Mode ..."
- send "\c\*707\#"
- waitdct
-
- # Jetzt auf Seite 707?
- get Seitennummer = "37", "24", "40", "24"
- if Seitennummer=="707a" goto STVProfilwechsel
- send "\c\*707\#"
- waitdct
-
- STVProfilwechsel:
- # Profilwechsel anfordern
- send "j"
- waitdct
-
- sleep "2"
- send ".\r"
- waitdct
-
- # ab jetzt VT100 MODE
- statusmsg "VT100-Mode aktiv"
-
- # Kein Wechsel
- send "n"
- waitdct
-
- return
-
-
-
- ###############################################################################
- # CEPT-Wechsel
- ###############################################################################
- SwitchToCEPT:
-
- statusmsg "Wechsel in den CEPT-Mode ..."
-
- # Seite 707 aufrufen fⁿr Rⁿcksprung nach CEPT
- send "\c*707#"
- waitdct
-
- # Jetzt auf Seite 707?
- get Seitennummer = "37", "24", "40", "24"
- if Seitennummer=="707a" goto STCProfilwechsel
- send "\c*707#"
- waitdct
-
- STCProfilwechsel:
- # Profilwechsel anfordern
- send "j"
- waitdct
-
- send "EG "
- waitdct
- statusmsg "CEPT-Mode aktiv"
-
- # Kein Profilwechsel
- send "n"
- waitdct
-
- return
-
-
-
- ###############################################################################
- # GetZeile24
- ###############################################################################
- GetZeile24:
-
- get Zeile24 = "1", "24", "40", "24"
- # J.. abschneiden
- strpos pz = "J" in Zeile24
- if pz == "" goto GetZeile24Weiter1
- strdelete Zeile24, pz, "40"
- GetZeile24Weiter1:
- # P! abschneiden
- strpos pz = "P!" in Zeile24
- if pz == "" goto GetZeile24Weiter2
- strdelete Zeile24, pz, "40"
- GetZeile24Weiter2:
-
- return
-
- ###############################################################################
-
-