summaryrefslogtreecommitdiffstats
path: root/share/examples/isdn/contrib/answer.sh
blob: 34073d359923bf0fd4d6dd57bf9ea6dc53f86a21 (plain)
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$
#
#---------------------------------------------------------------------------
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
OpenPOWER on IntegriCloud