blob: 0002365e4edb6d63f6d942d430b8a9ae945dbdc5 [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001#!/usr/local/bin/expect -f
2#
3# This script was written by Jim Isaacson <jcisaac@crl.com>. It is
4# designed to work as a script to use the SecureCARD(tm) device. This
5# little device is mated with a central controller. The number displayed
6# on this card changes every so often and you need to enter the number
7# along with your user account name in order to gain access. Since chat
8# is based upon fixed strings this procedure will not work with chat.
9#
10# It is included by permission. An excellent reference for the expect
11# program used by this script is in the book:
12#
13# "Exploring Expect"
14# by Don Libes
15# Published by O'Rielly and Associates
16#
17
18send_user "hello, starting ppp\n"
19
20system "stty 19200 -echoe -echo raw < /dev/ttyS3 > /dev/ttyS3"
21
22#
23# These are the parameters for the program.
24#
25set user Pxxxxxx
26set password xxxxxxx
27set modem /dev/ttyS3
28set dialup <put phone number here>
29set timeout 60
30
31spawn -noecho -open [open $modem "r+"]
32
33send "AT&F\r"
34expect "OK"
35
36send "ATe0v1x4&c1q0&d2&c1s2=128s0=0DT $dialup\r"
37set timeout 15
38set counter 0
39
40set still_connecting 1
41
42expect {
43 -re ".*CONNECT.*\n" {
44 set timeout 5
45 set still_connecting 0
46 continue -expect
47 }
48 -re ".*CONNECT.*\r" {
49 set timeout 5
50 set still_connecting 0
51 continue -expect
52 }
53 -re ".*NO.*CARRIER" {
54 send_user "Failed to Connect, exiting...\n"
55 exit
56 }
57 -re ".*NO.*DIAL.*TONE" {
58 send_user "Failed to Connect, exiting...\n"
59 exit
60 }
61 -re ".*VOICE" {
62 send_user "Failed to Connect, exiting...\n"
63 exit
64 }
65 -re ".*sscode:.*\n" {
66 continue -expect
67 }
68 -re ".*sscode:" {
69 set timeout -1
70 expect_user -re "(.*)\n"
71 send "$expect_out(1,string)\r"
72 set timeout 30
73 continue -expect
74 }
75 -re ".*Next.*:" {
76 set timeout -1
77 expect_user -re "(.*)\n"
78 send "$expect_out(1,string)\r"
79 set timeout 30
80 continue -expect
81 }
82 -re "Your.*" {
83 send "\r"
84 continue -expect
85 }
86 -re ".*in:" {
87 send "$user\r"
88 continue -expect
89 }
90 -re ".*word:" {
91 send "$password\r"
92 }
93
94 timeout {
95 if { $still_connecting > 0 } {
96 continue -expect
97 }
98 set timeout 15
99 send "\r"
100 incr counter
101 if { $counter > 8 } {
102 send_user "Cannot Connect\n"
103 exit
104 } else {
105 continue -expect
106 }
107 }
108}
109
110overlay -0 $spawn_id -1 $spawn_id pppd /dev/ttyS3 19200 192.111.187.215: \
111 crtscts modem defaultroute debug