blob: d1d58e76a315ea5be374394a93600de8c5760a2d (
plain) (
blame)
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
#!/bin/sh
#---------------------------------------------------------------------------
#
# answer script for i4b isdnd
# ---------------------------
#
# last edit-date: [Fri May 25 15:21:05 2001]
#
# $FreeBSD: src/share/examples/isdn/contrib/answer.sh,v 1.1.36.1 2009/04/15 03:14:26 kensmith Exp $
#
#---------------------------------------------------------------------------
VARDIR=/var/isdn
LIBDIR=/usr/local/lib/isdn
LOGFILE=/tmp/answer.log
NCALLFILE=$VARDIR/ncall
DATE=`date +%d%H`
progname=${0##*/}
set -- $@ # have to split argument string !!!
# ----------------------------------------------------------------------
usage ()
{
echo "usage: $progname -D device -d dest -s src"
exit 1
}
ncall ()
{
nfile=$1
[ -f $nfile ] && read n < $nfile || n=0
echo $(($n + 1)) > $nfile
printf "%.4d" $n
}
# ----------------------------------------------------------------------
while getopts "D:d:s:" opt
do
case $opt
in
D) DEVICE=$OPTARG ;;
d) DEST=$OPTARG ;;
s) SRC=$OPTARG ;;
esac
done
[ -c "$DEVICE" -a -n "$DEST" -a -n "$SRC" ] || usage;
shift $(($OPTIND - 1))
# ----------------------------------------------------------------------
NCALL=`ncall $NCALLFILE`
echo "$progname: device $DEVICE destination $DEST source $SRC " >>$LOGFILE
{
echo "Date: "`date`
echo "From: \"$SRC\""
echo "To: \"$DEST\""
echo
} >> $VARDIR/I.$NCALL.$DATE
# ----------------------------------------------------------------------
tellnumber ()
{
number=$1
digits=`echo $number | sed -e 's/\(.\)/\1 /g'`
files=""
for digit in $digits
do
files="$files $LIBDIR/$digit.al"
done
cat $files
}
# ----------------------------------------------------------------------
do_answer ()
{
[ -f $LIBDIR/beep.al ] && cat $LIBDIR/beep.al
[ -f $LIBDIR/msg.al ] && cat $LIBDIR/msg.al
[ -f $LIBDIR/beep.al ] && cat $LIBDIR/beep.al
} > $DEVICE
do_record ()
{
cat $DEVICE > $VARDIR/R.$NCALL.$DATE
}
do_tell ()
{
[ -f $LIBDIR/beep.al ] && cat $LIBDIR/beep.al
[ -f $LIBDIR/msg.al ] && cat $LIBDIR/msg.al
tellnumber $SRC
[ -f $LIBDIR/beep.al ] && cat $LIBDIR/beep.al
} > $DEVICE
# ----------------------------------------------------------------------
case $progname
in
answer) do_answer ;;
record) do_answer; do_record ;;
tell) do_tell ;;
esac
|