#! /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. # # # Altered on 9 March 2004 by Mitch Sharp # Added functionality to deliver messages to directories # Variables in the FaxDispatch used are (with examples): # SENDTO=FaxMaster # by default email to FaxMaster # FILETYPE=pdf; # in PDF format # FILECCTOBASE="/smbmnt/windowspdc/faxes" # base directory to copy file to # FILERETRBASE="file://windowspdc/faxes" # base network directory for access from email # FILECCTO="general" # directory off of FILECCBASE directory to drop file # CCPERMISSIONS="666" # permissions to set file # CCUSER="nobody" # user to set ownership # CCGROUP="nobody" # group to set ownership # # Variables added to the faxrcvd script are: # URL # DTSTR # # # faxrcvd file devID commID error-msg # if [ $# -lt 4 ]; then echo "Usage: $0 file devID commID error-msg CIDNumber CIDName " exit 1 fi test -f etc/setup.cache || { SPOOL=`pwd` cat</dev/null # fax2ps looks bad $PS2PDF -g$GW\x$GL -r$RW\x$RL $RECVQ/$FILENAME.ps $RECVQ/$FILENAME.pdf 2>/dev/null fi # make sure destination directory exists # if not, create it if [ ! -d $FILECCTOBASE/$FILECCTO ]; then mkdir $FILECCTOBASE/$FILECCTO fi # copy the file to destination directory # support for pdf, tif, and ps and updating the owner and permissions of the file if [ ! "$FILECCTO" = "" ]; then case "$FILETYPE" in pdf) echo "Copying PDF..." cp $RECVQ/$FILENAME.pdf "$FILECCTOBASE/$FILECCTO/$DTSTR.pdf" chmod $CCPERMISSIONS "$FILECCTOBASE/$FILECCTO/$DTSTR.pdf" chown $CCUSER:$CCGROUP "$FILECCTOBASE/$FILECCTO/$DTSTR.pdf" URL=`echo "$FILERETRBASE/$FILECCTO/$DTSTR.pdf" | sed s/\ /\%20/g` ;; # tif) # commented out because I always keep a copy of the tif which contains extra info # echo "Copying TIF..." # cp $FILE "$FILECCTOBASE/$FILECCTO/$DTSTR.tif" # chmod $CCPERMISSIONS "$FILECCTOBASE/$FILECCTO/$DTSTR.tif" # chown $CCUSER:$CCGROUP "$FILECCTOBASE/$FILECCTO/$DTSTR.tif" # URL=`echo "$FILERETRBASE/$FILECCTO/$DTSTR.tif" | sed s/\ /\%20/g` # ;; ps) echo "Copying PS..." $FAX2PS $FILE > "$FILECCTOBASE/$FILECCTO/$DTSTR.ps" 2>/dev/null chmod $CCPERMISSIONS "$FILECCTOBASE/$FILECCTO/$DTSTR.ps" chown $CCUSER:$CCGROUP "$FILECCTOBASE/$FILECCTO/$DTSTR.ps" URL=`echo "$FILERETRBASE/$FILECCTO/$DTSTR.ps" | sed s/\ /\%20/g` ;; esac # always copy the tif version as well cp $FILE "$FILECCTOBASE/$FILECCTO/$DTSTR.tif" chmod $CCPERMISSIONS "$FILECCTOBASE/$FILECCTO/$DTSTR.tif" chown $CCUSER:$CCGROUP "$FILECCTOBASE/$FILECCTO/$DTSTR.tif" fi if [ "$TOADDR" != "$SENDTO" -a "$NOTIFY_FAXMASTER" != "no" ]; then (echo "To: $TOADDR" echo "From: The HylaFAX Receive Agent " echo "Subject: Facsimile received from $SENDER"; if [ ! "$FILECCTO" = "" ]; then echo "" echo "Fax copied to ($URL) in $FILETYPE format" fi echo "" echo "$FILE (ftp://$HOSTNAME:$PORT/$FILE):"; $INFO -n $FILE echo "ReceivedOn: $DEVICE" if [ "$MSG" ]; then echo "" echo "The full document was not received because:" echo "" echo " $MSG" echo "" echo " ---- Transcript of session follows ----" echo "" if [ -f log/c$COMMID ]; then $SED -e '/-- data/d' \ -e '/start.*timer/d' -e '/stop.*timer/d' \ log/c$COMMID elif [ -n "$COMMID" ]; then echo " No transcript available (CommID c$COMMID)." else echo " No transcript available." fi else echo " CommID: c$COMMID (ftp://$HOSTNAME:$PORT/log/c$COMMID)" fi if [ -n "$SENDTO" ]; then echo "" echo "The facsimile was automatically dispatched to: $SENDTO." fi if [ ! "$FILECCTO" = "" ]; then echo "" echo "Fax copied to ($URL) in $FILETYPE format." fi ) | 2>&1 $SENDMAIL -ffax -oi $TOADDR fi if [ -n "$SENDTO" ]; then (MIMEBOUNDARY="NextPart$$" echo "Mime-Version: 1.0" echo "Content-Type: Multipart/Mixed; Boundary=\"$MIMEBOUNDARY\"" echo "Content-Transfer-Encoding: 7bit" echo "To: $SENDTO" echo "From: The HylaFAX Receive Agent " echo "Subject: Facsimile received from $SENDER"; echo "" echo "--$MIMEBOUNDARY" echo "Content-Type: text/plain; charset=us-ascii" echo "Content-Transfer-Encoding: 7bit" if [ ! "$FILECCTO" = "" ]; then echo "" echo "Fax copied to ($URL) in $FILETYPE format" fi echo "" echo "$FILE (ftp://$HOSTNAME:$PORT/$FILE):"; $INFO -n $FILE echo "ReceivedOn: $DEVICE" if [ "$MSG" ]; then echo "" echo "The full document was not received because:" echo "" echo " $MSG" echo "" echo " ---- Transcript of session follows ----" echo "" if [ -f log/c$COMMID ]; then $SED -e '/-- data/d' \ -e '/start.*timer/d' -e '/stop.*timer/d' \ log/c$COMMID elif [ -n "$COMMID" ]; then echo " No transcript available (CommID c$COMMID)." else echo " No transcript available." fi else echo " CommID: c$COMMID (ftp://$HOSTNAME:$PORT/log/c$COMMID)" fi echo "" echo "--$MIMEBOUNDARY" if [ "$FILETYPE" = "tif" ]; then echo "Content-Type: image/tiff; name=\"$FILENAME.tif\"" echo "Content-Description: FAX document" echo "Content-Transfer-Encoding: $ENCODING" echo "Content-Disposition: attachment; filename=\"$FILENAME.tif\"" echo "" $MIMENCODE $FILE 2>/dev/null elif [ "$FILETYPE" = "pdf" ]; then echo "Content-Type: application/pdf; name=\"c$COMMID.pdf\"" echo "Content-Description: FAX document" echo "Content-Transfer-Encoding: $ENCODING" echo "Content-Disposition: attachment; filename=\"c$COMMID.pdf\"" echo "" # moved pdf creation code up in script $MIMENCODE $RECVQ/$FILENAME.pdf 2>/dev/null # moved pdf delete code down in script else # default as Postscript echo "Content-Type: application/postscript; name=\"$FILENAME.ps\"" echo "Content-Description: FAX document" echo "Content-Transfer-Encoding: 7bit" echo "Content-Disposition: attachment; filename=\"$FILENAME.ps\"" echo "" $FAX2PS $FILE 2>/dev/null fi echo "" echo "--$MIMEBOUNDARY--" ) | 2>&1 $SENDMAIL -ffax -oi $SENDTO fi # remove local tmp pdf file if [ "$FILETYPE" = "pdf" ]; then $RM -f $RECVQ/$FILENAME.ps $RECVQ/$FILENAME.pdf 2>/dev/null fi else # # Generate notification mail for a failed attempt. # (echo "To: $TOADDR" echo "From: The HylaFAX Receive Agent " echo "Subject: facsimile not received" echo "" echo "An attempt to receive facsimile on $DEVICE failed because:" echo "" echo " $MSG" echo "" echo " ---- Transcript of session follows ----" echo "" if [ -f log/c$COMMID ]; then $SED -e '/-- data/d' \ -e '/start.*timer/d' -e '/stop.*timer/d' \ log/c$COMMID elif [ -n "$COMMID" ]; then echo " No transcript available (CommID c$COMMID)." else echo " No transcript available." fi ) | 2>&1 $SENDMAIL -ffax -oi $TOADDR fi