]> git.ozlabs.org Git - ppp.git/blob - scripts/redialer
Fix authentication on second time around with multilink and persist
[ppp.git] / scripts / redialer
1 #!/bin/sh
2 ###################################################################
3 #
4 # These parameters control the attack dialing sequence.
5 #
6 # Maximum number of attempts to reach the telephone number(s)
7 MAX_ATTEMPTS=10
8
9 # Delay between each of the attempts. This is a parameter to sleep
10 # so use "15s" for 15 seconds, "1m" for 1 minute, etc.
11 SLEEP_DELAY=15s
12
13 ###################################################################
14 #
15 # This is a list of telephone numbers. Add new numbers if you wish
16 # and see the function 'callall' below for the dial process.
17 PHONE1=555-1212
18 PHONE2=411
19
20 ###################################################################
21 #
22 # If you use the ppp-on script, then these are passed to this routine
23 # automatically. There is no need to define them here. If not, then
24 # you will need to set the values.
25 #
26 ACCOUNT=my_account_name
27 PASSWORD=my_password
28
29 ###################################################################
30 #
31 # Function to initialize the modem and ensure that it is in command
32 # state. This may not be needed, but it doesn't hurt.
33 #
34 function initialize
35 {
36     chat -v TIMEOUT 3 '' AT 'OK-+++\c-OK'
37     return
38 }
39
40 ###################################################################
41 #
42 # Script to dial a telephone
43 #
44 function callnumber
45 {
46 chat -v                                                 \
47         ABORT           '\nBUSY\r'                      \
48         ABORT           '\nNO ANSWER\r'                 \
49         ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
50         ''              ATDT$1                          \
51         CONNECT         ''                              \
52         ogin:--ogin:    $ACCOUNT                        \
53         assword:        $PASSWORD
54 #
55 # If the connection was successful then end the whole script with a
56 # success.
57 #
58     if [ "$?" = "0" ]; then
59        exit 0
60     fi
61
62     return
63 }
64
65 ###################################################################
66 #
67 # Script to dial any telephone number
68 #
69 function callall
70 {
71 #   echo "dialing attempt number: $1" >/dev/console
72     callnumber $PHONE1
73 #    callnumber $PHONE2
74 }
75
76 ###################################################################
77 #
78 # Initialize the modem to ensure that it is in the command state
79 #
80 initialize
81 if [ ! "$?" = "0" ]; then
82    exit 1
83 fi
84
85 #
86 # Dial telephone numbers until one answers
87 #
88 attempt=0
89 while : ; do
90     attempt=`expr $attempt + 1`
91     callall $attempt
92     if [ "$attempt" = "$MAX_ATTEMPTS" ]; then
93         exit 1
94     fi  
95     sleep "$SLEEP_DELAY"
96 done