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