home *** CD-ROM | disk | FTP | other *** search
/ Powerdrive 1997 February / POWERDRIVE0297.ISO / demos / tonline / disk3 / decoder.3 / DECODER / INTERNET / FUNSOCK.MKR
Text File  |  1996-07-13  |  10KB  |  412 lines

  1. # -----------------------------------------------------------------------------
  2. # T-Online-Decoder 1.2a
  3. # -----------------------------------------------------------------------------
  4. # Aufruf T-Online-FUNSock-Gateway und Rⁿckkehr nach CEPT
  5. # -----------------------------------------------------------------------------
  6. # (C) 1996  FUN Kommunikationssysteme GmbH
  7. # Stand: 12.7.1996 Klaus Nahr, FUN
  8. # -----------------------------------------------------------------------------
  9.  
  10.  
  11. # Defaultwert -----------------------------------------------------------------
  12. set DEBUG = "off"
  13. # Fⁿr Tests die folgenden beiden Zeilen aktivieren
  14. # Debugsausgaben an, CEPT zeigen
  15. # set DEBUG = "on"
  16. # onwin
  17.  
  18.  
  19. # CEPT-Fenster schliessen -----------------------------------------------------
  20. if DEBUG == "on" goto NoOffwin
  21. offwin
  22. NoOffwin:
  23.  
  24.  
  25. # Nummer der Gateway-Seite, Defaultparameter ----------------------------------
  26. set RegPage      = ""
  27. set GatePage     = ""
  28. set ReturnPage   = ""
  29. set Application  = ""
  30. set Argument1    = ""
  31. set Argument2    = ""
  32. set Argument3    = ""
  33. set Argument4    = ""
  34. set Argument5    = ""
  35. set Argument6    = ""
  36. set RegFilename  = "FUNSOCK.INI"
  37. set RegSection   = "Gateway"
  38. set RegOk        = "Ok"
  39. set RegFailed    = "Failed"
  40. set RegDefault   = "*NOTFOUND*"
  41. set GeldFilename = "PREMIUM.INI"
  42. set GeldSection  = "Konfiguration"
  43. set GeldEntry    = "Betrag"
  44. set GeldDefault  = "*NOTFOUND*"
  45. set AutoBestaetigung = "Nein"
  46.  
  47. ifless argc than "2" goto Start
  48. set RegPage     = argv_1
  49. ifless argc than "3" goto Start
  50. set GatePage      = argv_2
  51. ifless argc than "4" goto Start
  52. set ReturnPage  = argv_3
  53. ifless argc than "5" goto Start
  54. set Application = argv_4
  55. ifless argc than "6" goto Start
  56. set Argument1 = argv_5
  57. ifless argc than "7" goto Start
  58. set Argument2 = argv_6
  59. ifless argc than "8" goto Start
  60. set Argument3 = argv_7
  61. ifless argc than "9" goto Start
  62. set Argument4 = argv_8
  63. ifless argc than "10" goto Start
  64. set Argument5 = argv_9
  65. ifless argc than "11" goto Start
  66. set Argument6 = argv_10
  67.  
  68. Start:
  69.  
  70. # Automatische Bestaetigung als Parameter (Application == -azb) ---------------
  71. delblanks Application
  72. ifnot Application == "-azb" goto ReadGeldValue
  73. set AutoBestaetigung = "Ja"
  74. set Application = ""
  75.  
  76. # Betrag fuer autom. Bestaetigung lesen ---------------------------------------
  77. ReadGeldValue:
  78. iniread GeldValue = GeldFilename, GeldSection, GeldEntry, GeldDefault
  79.  
  80. # Betrag-Eintrag nicht gefunden => alter Decoder
  81. if GeldValue == GeldDefault goto GeldDone
  82. delblanks GeldValue
  83.  
  84. # von vorne auf mind. 3 Stellen mit Nullern auffuellen
  85. strlen GeldLen of GeldValue
  86. GeldLoop:
  87. ifeqgreater GeldLen than "3" goto GeldOk
  88. strinsert GeldValue, "0", "0"
  89. inc GeldLen
  90. goto GeldLoop
  91. GeldOk:
  92. subtract GeldLen, "2"
  93. strinsert GeldValue, ",", GeldLen
  94.  
  95. GeldDone:
  96. strcat Application, " ",  Argument1, " ", Argument2, " ", Argument3, " ", Argument4, " ", Argument5, " ", Argument6
  97. delblanks Application
  98.  
  99.  
  100. # Internet-Gateway anwΣhlen ---------------------------------------------------
  101. StartConnect:
  102. # Sind wir T-Online?
  103. getstate StatusBeiStart
  104. if StatusBeiStart == "CONNECTED" goto IsOnline
  105. connect
  106.  
  107. # Anwahl ok?
  108. getstate Status
  109. if Status == "DISCONNECTED" goto Ende
  110.  
  111.  
  112. IsOnline:
  113. # evtl. ER verlassen
  114. whatdct DCT
  115. # kein DCT
  116. if DCT == "0" goto Wait
  117. # In einem ER?
  118. if DCT == "2" goto LeaveER
  119. # im VT100-Modus
  120. if DCT == "4" goto Anwendung
  121. goto GoVT100
  122.  
  123. # Warte auf DCT
  124. Wait:
  125. waitdct
  126. goto GoVT100
  127.  
  128. # Verlasse Externen Rechner
  129. LeaveER:
  130. send "\c\*0\#"
  131. waitdct
  132. get line24 = "1", "24", "40", "24"
  133.  
  134. # Im VT100-Mode?
  135. whatdct DCT
  136. if DCT == "4" goto Anwendung
  137.  
  138. # In VT100-Mode wechseln
  139. GoVT100:
  140. # Start im CEPT-Mode
  141. gosub SwitchToVT100
  142.  
  143.  
  144. # Jetzt kanns losgehen --------------------------------------------------------
  145. Anwendung:
  146. # RegPage-Eintrag aus INI-Datei lesen
  147. iniread IniRegPage = RegFilename, RegSection, RegPage, RegDefault
  148.  
  149. # Registrierung bereits erfolgt ?
  150. if IniRegPage == RegOk goto EnterGateway
  151.  
  152. # Registrieren
  153. gosub Register
  154. if Action=="OK" goto EnterGateway
  155. goto Done
  156.  
  157. EnterGateway:
  158. gosub Gateway
  159. # Fehler? Nicht in VT100-Modus bei Aufruf der Gatewayseite?
  160. # dann Moduswechsel nachholen
  161. ifnot Action == "DCTErr" goto Done
  162. gosub GoVT100
  163. gosub Gateway
  164. ifnot Action == "DCTErr" goto Done
  165. messagebox ret: "Gateway-Hinweis", "Wechsel in den VT100-Mode nicht ausfⁿhrbar", "OK"
  166.  
  167.  
  168. Done:
  169. # Wieder in CEPT wechseln
  170. gosub SwitchToCEPT
  171.  
  172.  
  173. # Rⁿcksprungseite aufrufen ----------------------------------------------------
  174. CallReturnPage:
  175. send "\c*", ReturnPage, "#"
  176.  
  177.  
  178. # Ende ------------------------------------------------------------------------
  179. Ende:
  180.  
  181. # folgende Message sorgt fuer Schliessen der Box
  182. statusmsg "\\"
  183.  
  184. # Internet-Dialog beenden
  185. statusmsg "~Internet"
  186.  
  187. end
  188.  
  189.  
  190. ###############################################################################
  191. # Enter Gateway, leave Result in Action
  192. ###############################################################################
  193.  
  194. Gateway:
  195. set Action = "Ok"
  196. # GatePage aufrufen
  197. statusmsg "WΣhle Internet-▄bergabeseite an ..."
  198. send "\c*", GatePage, "#"
  199. waitdct
  200. # Sind wir im VT100-Mode
  201. whatdct GateDCT
  202. # debug "DCT = ", GateDCT, "\n"
  203. ifnot GateDCT == "1" goto GateDCTOk
  204. set Action = "DCTErr"
  205. return
  206.  
  207. GateDCTOk:
  208.  
  209. set FNSYS = ""
  210.  
  211. # Sind wir auf der richtigen Seite?
  212. # M÷gliche Fehler:
  213. # "Unberechtigter Zugriff"
  214. # "Seite nicht vorhanden"
  215. get line24 = "1", "24", "8", "24"
  216. if line24 == "Unberech" goto ERZugangErr
  217. if line24 == "Seite ni" goto ERZugangErr
  218.  
  219. get Kosten = "1", "24", "40", "24"
  220. strpos p = "J" in Kosten
  221. if p == "" goto Connect
  222. strdelete Kosten, p, "40"
  223. # Automatische Bestaetigung?
  224. if AutoBestaetigung == "Ja" goto Connect
  225. # Premium-Betrag ? dann autom. bestaetigen
  226. strpos p = GeldValue in Kosten
  227. ifnot p == "" goto Connect
  228. messagebox ret: "Gateway-Vergⁿtungsinformation", Kosten, "YESNO"
  229. if ret=="YES" goto Connect
  230. set Action = "EXIT"
  231. return
  232.  
  233. Connect:
  234. statusmsg "Verbindung zum Internet-Gateway-Rechner aufbauen ..."
  235. send "19"
  236. waitdct
  237.  
  238. get SH = "36", "24", "40", "24"
  239. if SH == "AX601" goto ERZugangErr
  240. get FNSYS = "36", "23", "40", "23"
  241. if FNSYS=="FN900" goto ContinueSession
  242.  
  243. ERZugangErr:
  244. set info="Zugang zum Gateway fehlgeschlagen\n"
  245. get line24 = "1", "24", "40", "24"
  246. strcat info, line24
  247. strcat info, " "
  248. strcat info, FNSYS
  249. messagebox ret: "Gateway-Hinweis", info, "OK"
  250. set Action="EXIT"
  251. return
  252.  
  253. ContinueSession:
  254. # jetzt sind wir im FUNSock ER
  255. # die folgende Message sorgt fuer Schliessen der Status-Box
  256. statusmsg "\\"
  257. if Application=="" goto NoApplication
  258. system Application
  259. NoApplication:
  260.  
  261. # Jetzt warten, bis ER die Sitzung beendet
  262. waitdct
  263.  
  264. get RetCode = "23", "24", "40", "24"
  265. set Sys = "Internetsitzung beendet "
  266. strcat Sys, RetCode
  267. statusmsg Sys
  268.  
  269. return
  270.  
  271.  
  272.  
  273. ###############################################################################
  274. # Call Registration Page
  275. ###############################################################################
  276. Register:
  277.  
  278. # wenn Reg-Seite "*" gar nicht erst aufrufen (FJ) => nicht in INI-Datei
  279. if RegPage == "*" goto RegisterDone
  280. statusmsg "WΣhle Registrierungsseite an ..."
  281. send "\c*", RegPage, "#"
  282. waitdct
  283.  
  284. # wenn FN990 gleich weiter (FJ) => nicht in INI-Datei
  285. get SHMsg = "36", "23", "40", "23"
  286. if SHMsg == "FN990" goto RegisterDone
  287.  
  288. # Sind wir auf der richtigen Seite?
  289. # M÷gliche Fehler:
  290. # "Unberechtigter Zugriff"
  291. # "Seite nicht vorhanden"
  292. get line24 = "1", "24", "8", "24"
  293. if line24 == "Unberech" goto RegFailedNoAccess
  294. if line24 == "Seite ni" goto RegFailedNoAccess
  295.  
  296. DoReg:
  297. get line24 = "1", "24", "40", "24"
  298. strpos p = "J" in line24
  299. if p == "" goto RegFailedNoAccess
  300. strdelete line24, p, "40"
  301. # Premium-Betrag ? dann autom. bestaetigen
  302. strpos p = GeldValue in line24
  303. ifnot p == "" goto DoReallyReg
  304. set info="Zur Nutzung des Gateways mⁿssen Sie sich zunΣchst registrieren.\n"
  305. strcat info, line24
  306. messagebox ret: "Gateway-Registrierung", info, "YESNO"
  307. if ret=="YES" goto DoReallyReg
  308. goto RegFailed
  309.  
  310. DoReallyReg:
  311. send "19"
  312. waitdct
  313. get FNSYS = "36", "23", "40", "23"
  314. if FNSYS=="FN990" goto RegOK
  315. set info="Anmeldung am Gateway fehlgeschlagen\n"
  316. get line24 = "1", "24", "40", "24"
  317. strcat info, line24
  318. strcat info, " "
  319. strcat info, FNSYS
  320. messagebox ret: "Gateway-Hinweis", info, "OK"
  321. goto RegFailed
  322.  
  323. RegFailedNoAccess:
  324. set info="Zugang zum Gateway fehlgeschlagen\n"
  325. get line24 = "1", "24", "40", "24"
  326. strcat info, line24
  327. messagebox ret: "Gateway-Hinweis", info, "OK"
  328. goto RegFailed
  329. return
  330.  
  331.  
  332. RegOK:
  333. iniwrite RegFilename, RegSection, RegPage, RegOk
  334. RegisterDone:
  335. set Action = "OK"
  336. return
  337.  
  338. RegFailed:
  339. set Action = "EXIT"
  340. iniwrite RegFilename, RegSection, RegPage, RegFailed
  341. return
  342.  
  343.  
  344. ###############################################################################
  345. # VT100-Wechsel
  346. ###############################################################################
  347. SwitchToVT100:
  348.  
  349. statusmsg "Wechsle in den VT100-Mode ..."
  350. send "\c\*707\#"
  351. waitdct
  352.  
  353. # Jetzt auf Seite 707?
  354. get Seitennummer = "37", "24", "40", "24"
  355. if Seitennummer=="707a" goto STVProfilwechsel
  356. send "\c\*707\#"
  357. waitdct
  358.  
  359. STVProfilwechsel:
  360. # Profilwechsel anfordern
  361. send "j"
  362. waitdct
  363.  
  364. sleep "2"
  365. send ".\r"
  366. waitdct
  367.  
  368. # ab jetzt VT100 MODE
  369. statusmsg "VT100-Mode aktiv"
  370.  
  371. # Kein Wechsel
  372. send "n"
  373. waitdct
  374.  
  375. return
  376.  
  377.  
  378.  
  379. ###############################################################################
  380. # CEPT-Wechsel
  381. ###############################################################################
  382. SwitchToCEPT:
  383.  
  384. # Seite 707 aufrufen fⁿr Rⁿcksprung nach CEPT
  385. send "\c*707#"
  386. waitdct
  387.  
  388. # Jetzt auf Seite 707?
  389. get Seitennummer = "37", "24", "40", "24"
  390. if Seitennummer=="707a" goto STCProfilwechsel
  391. send "\c*707#"
  392. waitdct
  393.  
  394. STCProfilwechsel:
  395. # Profilwechsel anfordern
  396. send "j"
  397. waitdct
  398.  
  399. send "EG "
  400. waitdct
  401. statusmsg "CEPT-Mode aktiv"
  402.  
  403. # Ruecksprungseite anwaehlen
  404. send "n"
  405. waitdct
  406.  
  407. return
  408.  
  409.  
  410. ###############################################################################
  411.  
  412.