HylaFAX The world's most advanced open source fax server

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

[hylafax-users] HylaFaxing from Samba



Folks,

Some days ago Paul Franz forwarded the documentation for faxing from samba.
Here is the hylafax adaptation of it, fully operational on a standard
hylafax setup. Maybe it will help some of you.
All remarks and q's are welcome. Beware though, I'll be on vacation in
another two days.

Ignace Suy

------------ start of script, see comments for installation and use
--------------------

#!/bin/sh
# 
#     Faxing with HylaFax through a faxprinter
# 
# This script is heavily depending (just about copied) from the work of:
#     -------------------------------------------------
#     Faxfilter für MS-Windows und lpd und mgetty-paket
#     Author     : Wundrig Roland <roland@cygnus.muc.de>    
#     -------------------------------------------------
# Installation.
# On top of the "normal" Hylafax installation you do the following:
# 1. Put the following lines in the /etc/printcap file and delete (if
#    applicable) any other faxprinters:
# 
#    faxlp:\
#      :lp=/dev/null:\
#      :sd=/usr/spool/lpd:\
#      :if=/var/spool/fax/bin/sambafax:\
#      :sh:sf:mx#0: 
# 
# 2. Store this file as /var/spool/fax/bin/sambafax or in the bin
#    directory of your hyla tree (but then adjust the path in printcap)
# 
# 3. I assume that your samba configuration shows all printers
# 
# 4. restart lpd and samba
# 
# 5. On your samba client, install a new printer with a postscript
#    driver (like an apple laserwriter) to print to \\YOURSERVER\faxlp
# 
# 6. Create a fax using your favorite wordchewer and take up a line like:
#        Fax-Nr : 012-345-6789
#    and print to your new faxprinter
# 
#
# The intellectual (c) remains with Wundrig Roland
# This rev created by ignace.suy@reeel.nl, september 2000
# Developed and tested using Hylafax 4.1beta2 On SuSE 6.4.
#

# constants
SENDMAIL="/usr/sbin/sendmail"

# make up a temporary file
FAXFILE=/tmp/sambafax.$$

# retrieve the username and hostname from the paramaters
while :
do
    case "$1" in
        -n) Username="$2"
            shift ; shift
            ;;
        -h) Hostname="$2"
            shift ; shift
            ;;
       -*)  shift
            ;;
        *) break
    esac
done

# if the samba user is anonumous then send mails to the postmaster
if [ "$Username" = "nobody" ];
   then
    MailTo="postmaster"
   else
    MailTo=${Username}
fi

# now dump the to-be faxewd data (PS fdormat) to the temp file
cat >${FAXFILE}

# retrieve the faxnumber from the printfile
FAXNUM=`awk '{ IGNORECASE=1 } /FAX-Nr ?: ?[0-9-]*/ \
         {  gsub(/-/,""); \
            anfang=match($0,/ ?: ?/); \
            anfang=anfang+match(substr($0,anfang),/[0-9]/)-1; \
            ende=match(substr($0,anfang),/[^0-9]/)-1; \
            printf ("%s",substr($0,anfang,ende)) \
         }' ${FAXFILE}`

# if faxnumber is found fax the tempfile
# we donot check the validity of the faxnumber, let sendfax do this...
if [ "${FAXNUM}" = "" ] ; then
    (echo "To: ${MailTo}"
     echo "From: The HylaFAX Samba dancer <fax>"
     echo "Subject: your facsimile request failed"
     echo ""

     echo "The faxnumber is not recognized in your fax of" 
     echo `date`
     echo ""
     echo "The faxnumber is recognised via this text:"
     echo "   Fax-Nr : ddd-ddddddd"
     echo "No spaces or characters are allowed between the digits, just a -"
     echo ""
     echo "Please correct and retry"
    ) | 2>&1 $SENDMAIL -ffax -oi ${MailTo}
else
    sendfax -n -f ${MailTo} -d ${FAXNUM} ${FAXFILE}
fi

# remove the temp file
rm -f ${FAXFILE}

# end of show




____________________ HylaFAX(tm) Users Mailing List _______________________
 To unsub: mail -s unsubscribe hylafax-users-request@hylafax.org < /dev/null




Project hosted by iFAX Solutions