File: redialer

package info (click to toggle)
ppp 2.4.7-2+4.1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 7,100 kB
  • sloc: ansic: 56,241; sh: 1,050; perl: 334; makefile: 114; exp: 82
file content (69 lines) | stat: -rwxr-xr-x 2,366 bytes parent folder | download | duplicates (5)
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
#!/bin/sh
#
# A chatscript that will attempt to dial multiple numbers in sequence, until
# you get connected.
#
# To use: edit /etc/peers/provider, and change the connect line to read:
# connect "/usr/local/bin/redialer"
#
# See below for configuration.

# This is a list of chatscripts to use to get connected, and (optional)
# telephone numbers to call for each of those chatscripts.
#
# Note that in the chatscripts, you may use #NUMBER#, this will be replaced
# with the number it is calling. You might want to use this to only have one
# chatscript that is used for all numbers, or you might need multiple
# chatscripts.

PHONE1=123456789
CHAT1=/etc/chatscripts/provider

PHONE2=912345678
CHAT2=/etc/chatscripts/provider

PHONE3=891234567
CHAT3=/etc/chatscripts/provider

PHONE4=789123456
CHAT4=/etc/chatscripts/provider

PHONE5=001234567
CHAT5=/etc/chatscripts/provider

# How long to sleep between retries:
#
# Note that this is a parameter to sleep so use "15s" for 15 seconds,
# "1m" for 1 minute, etc
SLEEP_DELAY=1s

# The code below does the dialing.

attempt=0
while : ; do
        attempt=`expr $attempt + 1`
        NUMBER=`eval echo '$PHONE'$attempt`
        CHAT=`eval echo '$CHAT'$attempt`
        if [ ! "$CHAT" ]; then
                attempt=0
        else
                logger "Dialing attempt number: $attempt"
                sed s/#NUMBER#/$NUMBER/ $CHAT >/etc/chatscripts/tmpchat
                /usr/sbin/chat -v -f /etc/chatscripts/tmpchat
                rm -f /etc/chatscripts/tmpchat
                case $? in
                        0) logger Connection established ; exit 0;;
                        1) logger chat: exit 1, see manpage for details. ; exit 1;;
                        2) logger chat: exit 2, see manpage for details. ; exit 2;;
                        3) logger chat: exit 3, see manpage for details. ;;
                        4) logger Line busy. ;;
                        5) logger No Carrier. ;;
                        6) logger A call is coming. Exiting! ; exit 1;;
                        7) logger No dialtone. ;;
                        8) logger An error occured. Exiting! ; exit 1;;
                        *) logger chat: exit $?, see manpage for details. ;;
                esac
                logger "Waiting $SLEEP_DELAY seconds before next try."
                sleep $SLEEP_DELAY
        fi
done