Initial import from FreeBSD RELENG_4:
[dragonfly.git] / share / examples / isdn / contrib / answer.sh
1 #!/bin/sh
2 #---------------------------------------------------------------------------
3 #
4 #       answer script for i4b isdnd
5 #       ---------------------------
6 #
7 #       last edit-date: [Fri May 25 15:21:05 2001]
8 #
9 # $FreeBSD: src/share/examples/isdn/contrib/answer.sh,v 1.1.2.1 2001/08/10 14:59:47 obrien Exp $
10 #
11 #---------------------------------------------------------------------------
12 VARDIR=/var/isdn
13 LIBDIR=/usr/local/lib/isdn
14 LOGFILE=/tmp/answer.log
15
16 NCALLFILE=$VARDIR/ncall
17 DATE=`date +%d%H`
18
19 progname=${0##*/}
20 set -- $@               # have to split argument string !!!
21
22 # ----------------------------------------------------------------------
23
24 usage ()
25 {
26         echo "usage: $progname -D device -d dest -s src"
27         exit 1
28 }
29
30 ncall ()
31 {
32         nfile=$1
33         [ -f $nfile ] && read n < $nfile || n=0
34         echo $(($n + 1)) > $nfile
35         printf "%.4d" $n
36 }
37
38 # ----------------------------------------------------------------------
39
40 while getopts "D:d:s:" opt
41 do
42         case $opt
43         in
44 D)              DEVICE=$OPTARG  ;;
45 d)              DEST=$OPTARG    ;;
46 s)              SRC=$OPTARG     ;;
47         esac
48 done
49
50 [ -c "$DEVICE" -a -n "$DEST" -a -n "$SRC" ] || usage;
51
52 shift $(($OPTIND - 1))
53
54 # ----------------------------------------------------------------------
55
56 NCALL=`ncall $NCALLFILE`
57
58 echo "$progname: device $DEVICE destination $DEST source $SRC " >>$LOGFILE
59
60 {
61         echo "Date:     "`date`
62         echo "From:     \"$SRC\""
63         echo "To:       \"$DEST\""
64         echo
65 } >> $VARDIR/I.$NCALL.$DATE
66
67 # ----------------------------------------------------------------------
68
69 tellnumber ()
70 {
71     number=$1
72     digits=`echo $number | sed -e 's/\(.\)/\1 /g'`
73
74     files=""
75     for digit in $digits
76     do
77         files="$files $LIBDIR/$digit.al"
78     done
79     cat $files
80 }
81
82 # ----------------------------------------------------------------------
83
84 do_answer ()
85 {
86         [ -f $LIBDIR/beep.al ] && cat $LIBDIR/beep.al
87         [ -f $LIBDIR/msg.al ]  && cat $LIBDIR/msg.al
88         [ -f $LIBDIR/beep.al ] && cat $LIBDIR/beep.al
89 } > $DEVICE
90
91 do_record ()
92 {
93         cat $DEVICE > $VARDIR/R.$NCALL.$DATE
94 }
95
96 do_tell ()
97 {
98         [ -f $LIBDIR/beep.al ] && cat $LIBDIR/beep.al
99         [ -f $LIBDIR/msg.al ]  && cat $LIBDIR/msg.al
100         tellnumber $SRC
101         [ -f $LIBDIR/beep.al ] && cat $LIBDIR/beep.al
102 } > $DEVICE
103
104 # ----------------------------------------------------------------------
105
106 case $progname
107 in
108 answer) do_answer               ;;
109 record) do_answer; do_record    ;;
110 tell)   do_tell                 ;;
111 esac