home *** CD-ROM | disk | FTP | other *** search
- #!/usr/local/bin/kermit +
-
- ; Illustration of scripted dialup login using C-Kermit or K95.
- ;
- ; F. da Cruz, Columbia University Kermit Project, Sep 2003.
- ;
- ; This is a very simple example showing how to make a serial-port
- ; connection and log in to a Unix host -- nothing fancy like dialing or
- ; service directories, passing of parameters, etc. See the book for
- ; discussion and more ambitious examples.
- ;
- ; (1) Define operating parameters (change as needed).
- ;
- def port /dev/ttyS0 ; Specify serial port device
- def modem generic-high-speed ; Specify modem type
- def speed 57600 ; Interface speed
- def number 1-212-555-1234 ; Number to dial
- def parity none ; (or "even") Parity to use
- def myuserid abc ; My user ID on the host
-
- def getpass { ; Prompt for password
- undef mypass ; rather than recording it
- while not def mypass { ; in this script.
- askq mypass \m(tshost) Password:
- }
- }
-
- ; Remove the following two commands if there is no terminal server.
- ; Adjust as necessary if there is.
-
- def tsprompt > ; (*) Terminal server prompt if any
- def tshost myhost ; (*) Host name for terminal server
-
- ; (2) Set dialing options:
-
- set dial method tone ; (or pulse)
- set dial retries 20 ; How many times to redial if busy
- set dial display on ; (or "off") Watch dialing progress
- set input echo on ; (or "off") Watch dialogs
-
- ; (3) Make the call:
-
- set modem type \m(modem) ; Set modem type first
- set port \m(port) ; Then assign the port
- if fail exit 1 Can't open \m(port) ; Check for failure
- set speed 57600 ; Set port i/o parameters: speed
- set flow rts/cts ; i/o parameters: flow control
- set parity \m(parity) ; i/o parameters: parity
- dial \m(number) ; Dial the number
- if fail exit 1 Call failed. ; Check for failure
-
- ; (4) Dialog with terminal server, if any.
- ; This section is executed only if a terminal-server prompt is defined.
- ; Customize if necessary for your terminal server's dialog.
- ;
- if def tsprompt { ; If terminal server prompt defined...
- for \%i 1 10 1 { ; Try 10 times to get prompt
- input 5 \m(tsprompt) ; Wait 5 seconds for it
- if success break ; Got it - proceed
- output \13 ; No prompt - send a carriage return
- }
- output \m(tshost)\13 ; Output host name
- }
-
- ; (5) Log in:
-
- log session ; (if desired) create session.log
- getpass ; Get password from keyboard now.
-
- for \%i 1 10 1 { ; Try 10 times to get login prompt
- input 20 login: ; Wait 20 seconds for prompt
- if success break ; Got it - proceed
- output \13 ; No prompt - send a carriage return
- }
- if > \%i 10 exit 1 No login prompt. ; Never got one.
-
- output \m(myuserid)\13 ; Send user ID and carriage return.
-
- input 10 Password: ; Wait 10 sec for Password: prompt.
- if fail exit No Password prompt. ; Check for failure.
- output \m(mypass)\13 ; Send password and carriage return.
- undef mypass ; Erase password from memory.
-
- ; At this point you can use the "connect" command to go online for an
- ; interactive session, or you can continue the script. When your session
- ; is complete, log out from the host. If the host was accessed through a
- ; terminal server, you might have to exit or logout from the terminal
- ; server too. Then tell Kermit to "hangup" to hang up the modem in case
- ; it is not already disconnected.
-