1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
#!/usr/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
|