A few days ago I posted a question on
how to setup hylafax to automatically print or email a fax depending upon
its destination extension. Well I have not had any replies but think I
have worked out a solution which works well for us, although the scripting
could no doubt do with some cleaning up!
The setup we have is a hylafax server
with an eicon BRI card plugged into our Mitel telephone system with the
DAD (DDI) and CLI information passed through to hylafax from the Eicon
card.
I have included the scripts below but
they are the standard files extended to cope with the possibility to forward
vi both SMTP and CUPS.
Firstly I added an extra column to fax/etc/users
called method. This takes either SMTP or CUPS. as its value.
Secondly I added an extra variable to
FaxDispatch called METHOD. This picks out the value of the extra
column in fax/etc/users.
I then modified fax/bin/faxrcvd to test
for $METHOD and carry out the appropriate actions (print or email).
The files are below, I hope this helps
someone and if you have any ideas on how to do this better please let me
know, and yes I know I dont have any error checking in there to verify
that the method is valid!
Sam
FaxDispatch:
---------------------------------------------------------------------------------------------------------------------------------------------
#
# Dispatch fax to email depending on
own MSN or extention (ISDN lines)
# sourced from faxrcvd
#
FILETYPE=pdf
MIMENCODE=mimencode
ENCODING=base64
if [ "$DADNUMBER" != ""
]; then
PHONEMATCH=$DADNUMBER
USERENTRY=`grep -v "^#"
etc/users | grep "$PHONEMATCH"`
if [ "$USERENTRY"
!= "" ]; then
METHOD=`echo
$USERENTRY | awk '{print $3}'`
USERNAME=`echo
$USERENTRY | awk '{print $1}'`
SENDTO="$USERNAME"
fi
fi
faxrcvd:
---------------------------------------------------------------------------------------------------------------------------------------------
#! /bin/sh
# $Id:
faxrcvd.sh.in,v 1.9 2003/02/09 02:39:33 darren Exp $
#
# HylaFAX Facsimile Software
#
# Copyright (c) 1990-1996 Sam Leffler
# Copyright (c) 1991-1996 Silicon Graphics,
Inc.
# HylaFAX is a trademark of Silicon
Graphics
#
# Permission to use, copy, modify,
distribute, and sell this software and
# its documentation for any purpose
is hereby granted without fee, provided
# that (i) the above copyright notices
and this permission notice appear in
# all copies of the software and related
documentation, and (ii) the names of
# Sam Leffler and Silicon Graphics
may not be used in any advertising or
# publicity relating to the software
without the specific, prior written
# permission of Sam Leffler and Silicon
Graphics.
#
# THE SOFTWARE IS PROVIDED "AS-IS"
AND WITHOUT WARRANTY OF ANY KIND,
# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING
WITHOUT LIMITATION, ANY
# WARRANTY OF MERCHANTABILITY OR FITNESS
FOR A PARTICULAR PURPOSE.
#
# IN NO EVENT SHALL SAM LEFFLER OR
SILICON GRAPHICS BE LIABLE FOR
# ANY SPECIAL, INCIDENTAL, INDIRECT
OR CONSEQUENTIAL DAMAGES OF ANY KIND,
# OR ANY DAMAGES WHATSOEVER RESULTING
FROM LOSS OF USE, DATA OR PROFITS,
# WHETHER OR NOT ADVISED OF THE POSSIBILITY
OF DAMAGE, AND ON ANY THEORY OF
# LIABILITY, ARISING OUT OF OR IN CONNECTION
WITH THE USE OR PERFORMANCE
# OF THIS SOFTWARE.
#
#
# faxrcvd file devID commID error-msg
#
if [ $# -lt 4 ]; then
echo "Usage: $0
file devID commID error-msg [CIDNumber] [CIDName] [destination]"
exit 1
fi
test -f etc/setup.cache || {
SPOOL=`pwd`
cat<<EOF
FATAL ERROR: $SPOOL/etc/setup.cache
is missing!
The file $SPOOL/etc/setup.cache is
not present. This
probably means the machine has not
been setup using the faxsetup(8C)
command. Read the documentation
on setting up HylaFAX before you
startup a server system.
EOF
exit 1
}
. etc/setup.cache
INFO=$SBIN/faxinfo
FAX2PS=$TIFFBIN/fax2ps
ENCODING=base64
TIFF2PS=tiff2ps
PS2PDF=ps2pdf
TOADDR=admin@xxxxxxxxxxxxx
TIFFINFO=tiffinfo
NOTIFY_FAXMASTER=always
TIFFTOPNM=/usr/bin/tifftopnm
GOCR=/usr/local/bin/gocr
METHOD="SMTP"
#
# wraper for base64 encoding
#
# first try uuencode if it is not installed
fallback to
# metamails mimencode if it is also
not installed give an
# error message
#
function base64 {
if [ -x /usr/bin/uuencode
]; then
/usr/bin/uuencode
-m $1 $1 | /usr/bin/sed '1d;$d'
elif [ -x /usr/bin/mimencode
]; then
/usr/bin/mimencode
$1
else
echo "Error:
No encoder for base64 found."
echo "Please
install sharutils or metamail."
fi
}
#
# Permit various types of attachment
types: ps, tif, pdf
# Note that non-ASCII filetypes require
sharutils or metamail.
# pdf requires tiff2ps and ps2pdf
#
FILETYPE=pdf
#
# There is no good portable way to
find out the fully qualified
# domain name (FQDN) of the host or
the TCP port for the hylafax
# service so we fudge here. Folks
may want to tailor this to
# their needs; e.g. add a domain or
use localhost so the loopback
# interface is used.
#
HOSTNAME=`hostname`
# XXX no good way to find FQDN
PORT=4559
# XXX no good way to lookup service