home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PowerPlay 1998 July
/
PowerPlay0798.bin
/
Online
/
Tonline
/
decoder.z
/
FUNSOCK.MKR
< prev
next >
Wrap
Text File
|
1997-02-17
|
12KB
|
477 lines
# -----------------------------------------------------------------------------
# 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
###############################################################################