98 lines
1.5 KiB
Bash
Executable File
98 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
#---------------------------------------------------------------------------
|
|
#
|
|
# tell called and calling numbers answer script for i4b isdnd
|
|
# -----------------------------------------------------------
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
# last edit-date: [Thu May 20 11:45:15 1999]
|
|
#
|
|
#---------------------------------------------------------------------------
|
|
VARDIR=/var/isdn
|
|
|
|
#FreeBSD < 3.1, NetBSD, OpenBSD, BSD/OS
|
|
#LIBDIR=/usr/local/lib/isdn
|
|
#FreeBSD 3.1 and up
|
|
LIBDIR=/usr/share/isdn
|
|
|
|
LOGFILE=/tmp/answer.log
|
|
NCALLFILE=$VARDIR/ncall
|
|
DATE=`date +%d%H`
|
|
DF=0
|
|
dF=0
|
|
sF=0
|
|
|
|
set -- `getopt D:d:s: $*`
|
|
|
|
if test $? != 0
|
|
then
|
|
echo 'Usage: answer -D device -d destination -s source'
|
|
exit 1
|
|
fi
|
|
|
|
for i
|
|
do
|
|
case "$i"
|
|
in
|
|
-D)
|
|
DEVICE=$2
|
|
DF=1
|
|
shift
|
|
shift
|
|
;;
|
|
-d)
|
|
DEST=$2
|
|
dF=1
|
|
shift
|
|
shift
|
|
;;
|
|
-s)
|
|
SRC=$2
|
|
sF=1
|
|
shift
|
|
shift
|
|
;;
|
|
--)
|
|
shift
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
echo "" >>$LOGFILE
|
|
|
|
if [ $DF -eq 0 -o $dF -eq 0 -o $sF -eq 0 ]
|
|
then
|
|
echo 'Usage: answer -D device -d destination -s source'
|
|
exit 1
|
|
fi
|
|
|
|
echo "answer: device $DEVICE destination $DEST source $SRC " >>$LOGFILE
|
|
|
|
if [ -f $LIBDIR/beep.al ]
|
|
then
|
|
dd of=$DEVICE if=$LIBDIR/beep.al bs=2k >/dev/null 2>&1
|
|
fi
|
|
|
|
# tell the caller the number he is calling from
|
|
|
|
POS=1
|
|
LENGTH=`expr $SRC : '.*'`
|
|
|
|
while :
|
|
do
|
|
DIGIT=`echo $SRC | cut -c $POS`
|
|
/bin/dd of=$DEVICE if=$LIBDIR/$DIGIT.al bs=2k >/dev/null 2>&1
|
|
POS=`expr $POS + 1`
|
|
if [ $POS -gt $LENGTH ]
|
|
then
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ -f $LIBDIR/beep.al ]
|
|
then
|
|
dd of=$DEVICE if=$LIBDIR/beep.al bs=2k >/dev/null 2>&1
|
|
fi
|