mirror of https://gitee.com/openkylin/ppp.git
112 lines
2.3 KiB
Plaintext
Executable File
112 lines
2.3 KiB
Plaintext
Executable File
#!/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
|