![]() |
Using hylafax and a modified version of Uli Eckhardt's webview hylafax scripts. I have this setup on three machines which are mostly pentium 233 mmx based. The pages come up fine, but not terribly snappy because of the size of the pages with all of the largish thumbnails. The webfaxstuff.tar.gz I refer to is just a big tar ball of all of the rpms and tars of all of the components that are needed or may be wanted. I don't have somewhere to post this right now, but when I figure something out, I will you all know (if there is any interest). All of this stuff is readily available elsewhere and I have included the significant code changes below as snippets. Some things are total kludges and security holes (like symbolic links to var and home from the webserver), but for me that doesn't matter because we have a small office of people I trust and I accepted the first thing that came to mind and worked and it works great. Vnc is discussed for those who will want to run headless/keryboardless as I do and with a baby-AT PC - its a pretty small package to put anywhere. The faxes are beautiful, super clean and correctly sized and chopped thanks to the modified TIFF2PS that someone (I am embarrased because I cannot remember who) posted in one of the mailing lists. My thanks to all those involved in bringing us hylafax and to Uli who saw how easy it would be to put pages up on a webserver to answer the age old question, "where did my fax go?" mike (this was originally written for someone with no experience at all with Hylafax or Linux but did have Unix experience) 1. setup modem with a real chipset (no winmodems) on com2 or as known in Linux ttyS1. 2. install rh 6.2 (with the following packages) custom install printer x-windows kde gnome networked workstation anonymous ftp emacs web server development kernel development utilities (get hylafax and webview.tar.gz from hylafax.org) 3. install mawk from the rh cd rpm -ivh mawk* 4. untar webfaxstuff 4. copy all rpms and gz to usr/src from webfaxstuff 5. rpm -freshen ghost to upgrade to v6 6. edit /usr/lib/rhs/rhs-printfilters/printerdb and change lj4dith to ljet4d since it was renamed in the new ghostscript 7. /usr/src/rpm -freshen libtiff* 8 cp /webstuff/tiff2ps /usr/bin &&&new tiff2ps you have the source code and can change recompile if needed 9 /usr/share/ghostscript/ln -s 6.01 5.50 10. /usr/src/rpm -ivh hylafax* 11 faxsetup ignore egetty message accept all defaults start process add modem ttyS1 is com2 and ttyS0 is com1 answer the obvious questions about phone numbers and name on the fax machine change receive fax protection mode to 0666 dte-dce control scheme I usually chnage to rtscts for hardware handshake you will check the config later for all of the needed fax commands 12 add /usr/sbin/faxgetty ttyS1 & to rc.local 13 edit /var/spool/fax/etc/config.ttyS1 and chnage Modem dialCmd to say ATDT9,%s to dial 9 if you have a class 1 modem make sure you have a modemSetupAAcmd or it won't ever answer 14 cp /webfaxstuff/faxrcvd /var/spool/bin/ and overwrite 15 cp /webfaxstuf/httpd/* /home/httpd 16 chmod 755 /home/httpd/cgi-bin/show.pl 17 chmod 755 /home/httpd/cgi-bin/fax/* 18 edit /home/httpd/html/index.php and change the name "editorial" to whatever you want 19 create a link /home/httpd/html/ln -s /var 20 edit /home/httpd/cgi-bin/show.pl and chnage $HOST to the correct address 21 check the page at http://your fax address 22 make a dns entry to give the fax machine a name 23 use printtool and create a n entry for lp2 which goes to a remote q and has no filter and supresses headers 24 cp /webstuff/faxsetup to /var/spool/fax/recvq and use if you want to control postscript printing or make it null or edit it out of show.pl and faxrcvd 25 add user faxuser passwd faxuser 26 create a link /home/faxuser/ln -s /var 27 test it by sending a fax 28 install vnc (for a headless faxserver with kde) untar and copy vnc* Xvnc /usr/bin run ./vncserver once so it will created default files kill it by running vncserver -kill :1 modify /root/.vnx/xsetup and change the last line to reads startkde & add startup line to rc.local /bin/su root -c "/usr/bin/vncserver -depth 24 :1" 29 if you have a time server running install rpm -ivh xntp3* and use linuxconf to make the following logs:date &time chnage get date from server to be your time server add the foloowing to the super user scheduler /usr/sbin/ntpdate yourtimeserverip * * * 0,12 5 30. if you need fancy printer control, the best approach I have found is to setup a print job in windows and capture the print job to a file. edit the file and change the setting that you might need. For example if you needed to pull from tray 3, duplex, and output to the alternate bin face up, you can do it. Printer control under Unix is crude at best and under Linux it is stone age. In the faxrcvd snipet below, I include the call to the printersetup file that does just that. for those that are familair with all fo this, the significant additions to Hylafax are in the faxrcvd shown below. added lines will create three files: postscript file, gif thumbnail and PDF file. Hylafax will automatically clean up these files as it deletes off old files (how nice!). faxrcvd snip..... PDFFILE="/var/spool/fax/recvq/"$BASENAME".pdf" GIFFILE="/var/spool/fax/recvq/"$BASENAME".gif" echo $BASENAME ' ' $TMPFILE1 ' ' $PDFFILE ' ' $GIFFILE >/var/spool/fax/recvq/faxrcv.test DEVICE="$2" COMMID="$3" MSG="$4" if [ -f $FILE ]; then ###make PS file $TIFF2PS -pa1 -w8.5 -h10.875 -H14.0 -L0.5 $FILE -O $TMPFILE1 2>/dev/null ###print PS file cat /usr/bin/printsetup $TMPFILE1 |lpr -Plp2 ###make thumbnail $TIFF2PS -pa1 -w8.5 -h10.875 -H14.0 -L0.5 -s $FILE |gs -q -dNOPAUSE -sDEVICE=pnm -dBATCH -sOutputFile=- - 2>/dev/null | /usr/bin/pnmscale -xsize 144 | /usr/bin/pnmdepth 31 |/usr/bin/ppmtogif >$GIFFILE chmod 666 $GIFFILE ###make pdf $PS2PDF $TMPFILE1 $PDFFILE 2>/dev/null snip...... and Nic's show.pl (this change basically shows you the thumbnail with a link to the PDF of each fax received and puts the print/delete/view commands next to each fax so you don't have to scroll so much) snip.... sub makeline { local($file, $mode, $check) = @_; local($line, $sender, $pages, $received, $dataformat); $faxfile = "$FAXROOT/recvq/$file"; # BASENAME="`echo $FILE | perl -ne '($dir,$name)=split(/\//);print $name'`" ($BASENAME,$ext)=split(/\./,$file); $PDFFILE='/var/spool/fax/recvq/'.$BASENAME.'.pdf'; $GIFFILE='/var/spool/fax/recvq/'.$BASENAME.'.gif'; open(FINFO,"$FAXINFO -n $faxfile |"); while(<FINFO>) { if ($_ =~ /\s*(\w*): (.*)/) { switch: { ($1 eq "Sender") && ($sender = $2, last switch); ($1 eq "Pages") && ($pages = $2, last switch); ($1 eq "Received") && ($received = $2, last switch); ($1 eq "DataFormat") && ($dataformat = $2, last switch); } } } close FINFO; print "<TR>\n"; print "<TD>"; print "<INPUT Type=\"submit\" Name=\"mode\" Value=\"View-$file\"><BR>\n"; print "<INPUT Type=\"submit\" Name=\"mode\" Value=\"Print-$file\"><BR>\n"; print "<INPUT Type=\"submit\" Name=\"mode\" Value=\"Delete-$file\">\n"; print "</TD>"; if ($sender=='') {$sender="None given"}; print "<TD>$sender</TD><TD>$pages</TD><TD>$received</TD><TD>$dataformat</TD>\n"; if ($mode == 1) { print "<TD><A HREF=\"ftp://faxuser:faxuser\@$HOST$PDFFILE\"><IMG BORDER=0 SRC=\"$GIFFILE\"></A></TD>"; } print "</TR>\n"; } snip... ____________________ HylaFAX(tm) Users Mailing List _______________________ To unsub: mail -s unsubscribe hylafax-users-request@hylafax.org < /dev/null