| #!/usr/local/bin/expect -f |
| # |
| # This script was written by Jim Isaacson <jcisaac@crl.com>. It is |
| # designed to work as a script to use the SecureCARD(tm) device. This |
| # little device is mated with a central controller. The number displayed |
| # on this card changes every so often and you need to enter the number |
| # along with your user account name in order to gain access. Since chat |
| # is based upon fixed strings this procedure will not work with chat. |
| # |
| # It is included by permission. An excellent reference for the expect |
| # program used by this script is in the book: |
| # |
| # "Exploring Expect" |
| # by Don Libes |
| # Published by O'Rielly and Associates |
| # |
| |
| send_user "hello, starting ppp\n" |
| |
| system "stty 19200 -echoe -echo raw < /dev/ttyS3 > /dev/ttyS3" |
| |
| # |
| # These are the parameters for the program. |
| # |
| set user Pxxxxxx |
| set password xxxxxxx |
| set modem /dev/ttyS3 |
| set dialup <put phone number here> |
| set timeout 60 |
| |
| spawn -noecho -open [open $modem "r+"] |
| |
| send "AT&F\r" |
| expect "OK" |
| |
| send "ATe0v1x4&c1q0&d2&c1s2=128s0=0DT $dialup\r" |
| set timeout 15 |
| set counter 0 |
| |
| set still_connecting 1 |
| |
| expect { |
| -re ".*CONNECT.*\n" { |
| set timeout 5 |
| set still_connecting 0 |
| continue -expect |
| } |
| -re ".*CONNECT.*\r" { |
| set timeout 5 |
| set still_connecting 0 |
| continue -expect |
| } |
| -re ".*NO.*CARRIER" { |
| send_user "Failed to Connect, exiting...\n" |
| exit |
| } |
| -re ".*NO.*DIAL.*TONE" { |
| send_user "Failed to Connect, exiting...\n" |
| exit |
| } |
| -re ".*VOICE" { |
| send_user "Failed to Connect, exiting...\n" |
| exit |
| } |
| -re ".*sscode:.*\n" { |
| continue -expect |
| } |
| -re ".*sscode:" { |
| set timeout -1 |
| expect_user -re "(.*)\n" |
| send "$expect_out(1,string)\r" |
| set timeout 30 |
| continue -expect |
| } |
| -re ".*Next.*:" { |
| set timeout -1 |
| expect_user -re "(.*)\n" |
| send "$expect_out(1,string)\r" |
| set timeout 30 |
| continue -expect |
| } |
| -re "Your.*" { |
| send "\r" |
| continue -expect |
| } |
| -re ".*in:" { |
| send "$user\r" |
| continue -expect |
| } |
| -re ".*word:" { |
| send "$password\r" |
| } |
| |
| timeout { |
| if { $still_connecting > 0 } { |
| continue -expect |
| } |
| set timeout 15 |
| send "\r" |
| incr counter |
| if { $counter > 8 } { |
| send_user "Cannot Connect\n" |
| exit |
| } else { |
| continue -expect |
| } |
| } |
| } |
| |
| overlay -0 $spawn_id -1 $spawn_id pppd /dev/ttyS3 19200 192.111.187.215: \ |
| crtscts modem defaultroute debug |