137 lines
2.6 KiB
Plaintext
137 lines
2.6 KiB
Plaintext
|
;
|
||
|
; This is a script file that demonstrates how
|
||
|
; to establish a PPP connection with a host
|
||
|
; that uses a menu system.
|
||
|
;
|
||
|
; A script file must have a 'main' procedure.
|
||
|
; All script execution starts with this 'main'
|
||
|
; procedure.
|
||
|
;
|
||
|
|
||
|
|
||
|
; Main entry point to script
|
||
|
;
|
||
|
proc main
|
||
|
|
||
|
; Change these variables to customize for your
|
||
|
; specific Internet service provider
|
||
|
|
||
|
integer nTries = 3
|
||
|
|
||
|
; This is the login prompt and timeout values
|
||
|
|
||
|
string szLogin = "username:"
|
||
|
integer nLoginTimeout = 3
|
||
|
|
||
|
; This is the password prompt and timeout values
|
||
|
|
||
|
string szPW = "password:"
|
||
|
integer nPWTimeout = 3
|
||
|
|
||
|
; This is the prompt once your password is verified
|
||
|
|
||
|
string szPrompt = "annex:"
|
||
|
|
||
|
; This is the command to send to establish the
|
||
|
; connection. This script assumes you only need
|
||
|
; to issue one command to continue. Feel free
|
||
|
; to add more commands if your provider requires
|
||
|
; it.
|
||
|
|
||
|
;
|
||
|
; This provider has a menu list like this:
|
||
|
;
|
||
|
; 1 : Our special GUI
|
||
|
; 2 : Establish slip connection
|
||
|
; 3 : Establish PPP connection
|
||
|
; 4 : Establish shell access
|
||
|
; 5 : Download our software
|
||
|
; 6 : Exit
|
||
|
;
|
||
|
; annex:
|
||
|
;
|
||
|
|
||
|
string szConnect = "3^M"
|
||
|
|
||
|
; Set this to FALSE if you don't want to get an IP
|
||
|
; address
|
||
|
|
||
|
boolean bUseSlip = FALSE
|
||
|
|
||
|
|
||
|
; -----------------------------------------------------
|
||
|
|
||
|
|
||
|
; Delay for 2 seconds first to make sure the
|
||
|
; host doesn't get confused when we send the
|
||
|
; two carriage-returns.
|
||
|
|
||
|
delay 2
|
||
|
transmit "^M^M"
|
||
|
|
||
|
; Attempt to login at most 'nTries' times
|
||
|
|
||
|
while 0 < nTries do
|
||
|
|
||
|
; Wait for the login prompt before entering
|
||
|
; the user ID, timeout after x seconds
|
||
|
|
||
|
waitfor szLogin then DoLogin
|
||
|
until nLoginTimeout
|
||
|
|
||
|
TryAgain:
|
||
|
transmit "^M" ; ping
|
||
|
nTries = nTries - 1
|
||
|
|
||
|
endwhile
|
||
|
|
||
|
goto BailOut
|
||
|
|
||
|
DoLogin:
|
||
|
; Enter user ID
|
||
|
|
||
|
transmit $USERID, raw
|
||
|
transmit "^M"
|
||
|
|
||
|
; Wait for the password prompt
|
||
|
|
||
|
waitfor szPW until nPWTimeout
|
||
|
if FALSE == $SUCCESS then
|
||
|
goto TryAgain
|
||
|
endif
|
||
|
|
||
|
; Send the password
|
||
|
|
||
|
transmit $PASSWORD, raw
|
||
|
transmit "^M"
|
||
|
|
||
|
; Wait for the prompt
|
||
|
|
||
|
waitfor szPrompt
|
||
|
|
||
|
transmit szConnect
|
||
|
|
||
|
if bUseSlip then
|
||
|
; An alternative to the following line is
|
||
|
;
|
||
|
; waitfor "Your address is "
|
||
|
; set ipaddr getip
|
||
|
;
|
||
|
; if we don't know the order of the IP addresses.
|
||
|
|
||
|
set ipaddr getip 2
|
||
|
endif
|
||
|
goto Done
|
||
|
|
||
|
BailOut:
|
||
|
; Something isn't responding. Halt the script
|
||
|
; and let the user handle it manually.
|
||
|
|
||
|
set screen keyboard on
|
||
|
halt
|
||
|
|
||
|
Done:
|
||
|
|
||
|
endproc
|
||
|
|