Faxing From a Web Page
Part of my job at the publishing company where I work is finding new ways to finish time-consuming jobs more quickly. After implementing an on-line order entry system and a Mac file server, I set up an e-mail/dial-up router for a remote office. The staff did a lot of faxing which consumed a huge amount of time that could have been better spent doing other tasks. The small 486 we used didn't have enough horsepower to handle fax conversion, so I didn't try to use it for that job. After the power supply fan quit and the machine died, I decided to get a more powerful machine and set up a fax server.
We ordered a 133 MHz Pentium 5 for the new server. It has an Ethernet card and two modems to eliminate fighting for the telephone line. One modem is used for the PPP dial-up, and one is a Class 2.0 fax-modem. Most fax-modems implement only Class 1 fax transmissions, which require the computer to do most of the processing, but Class 2.0 frees up those resources.
I had used the HylaFAX software a few years before and knew it could easily handle the volume of faxes that we send. More importantly, it was within my budget. By using Linux and other free software, I had the money for hardware and another phone line—money that would have otherwise been spent on expensive software.
HylaFAX uses Ghostscript to convert faxes from PostScript to the tagged image file format (tiff), as faxes are sent over the line in a form of tiff. One of the most important things to do is make sure that the Ghostscript software is set up correctly and has the tiffg3 driver enabled. Without this driver, you will spend a long time wondering why you can't finish the HylaFAX setup.
Originally, I just wanted to be able to fax a certain set of documents. Part of the way through the setup process, I found a Macintosh extension called MacFlex that allows a Mac to print to the fax server as if it were a printer. After you choose print, MacFlex asks for the phone number and spools the document to the server. It is well-written software that has produced more “oohs” and “ahhs” in the office than the server, and it is available from http://www.eats.com/.
In order for the users to send documents to the fax server from their own Macintoshes, Netatalk was installed. Netatalk lets you share Linux drivers with Macintosh machines. These drivers show up in the Chooser like any other server.
After installing and testing Ghostscript and finding the location of the executables and fonts, it's time to get HylaFAX. Download information and documentation is at http://www.vix.com/hylafax/. Most of the configuration consists of setting paths to reflect the directory structure of your system. After the software is installed, another round of configuration is done to set up the modems. First, the program faxaddmodem probes the modems to determine the manufacturer, speed, class and other information. Then, in a send-only environment, the program faxmodem is run to tell the daemon that a new modem exists. I could never get the faxmodem program to work correctly, so I ran the program faxgetty on the correct serial port. faxgetty is a specialized version of getty that reports status information on the modem to the fax daemon.
The program included with HylaFAX to queue outgoing faxes uses a command-line interface. Since the users of the system were accustomed to Macintoshes, I didn't think they should have to learn Unix just for the purpose of sending their faxes. Therefore, I wrote a Web front-end to HylaFAX that allows them to select one or more documents from a list and choose to send it to a distribution list or to an individual.
After getting HylaFAX completely installed and running, I thought the worst was over. However, HylaFAX comes with a default cover page that includes the Silicon Graphics logo, and we already had a nice cover page I wished to continue using. I know a small amount of PostScript, but 1 megabyte of machine-generated PostScript is nearly impossible for me to decode. After trying unsuccessfully for half a day to change the default to match our cover page, I looked through the information on the HylaFAX web site mentioned above and found more helpful instructions on constructing the cover page. I removed a graphic from the default cover page that cut the size of the PostScript file from 1MB to about 100K. This version was much easier to modify, and I had it going in about an hour. The cover page on the web site is a template that the program faxcover fills in. In order to put in the place holders that faxcover needs, you must open the PostScript version of the cover page in a text editor and insert the correct fields. Checking the cover page for appearance is difficult, since the blanks show up empty in a PostScript viewer unless you first run faxcover and put in some test data. Doing this just makes a version of your cover page for you to look at—it does not send any faxes.
Overall, the project was a success. After a few minor problems, the system is chugging away handling IP masquerading, UUCP over TCP and out-bound faxing. The total hardware cost was under $2000US. I spent nearly 60 hours writing the front-end software(1) and making sure all the other pieces worked together correctly. The time required to send a fax dropped from 10 to 15 minutes to about 30 seconds.
Practical Task Scheduling Deployment
One of the best things about the UNIX environment (aside from being stable and efficient) is the vast array of software tools available to help you do your job. Traditionally, a UNIX tool does only one thing, but does that one thing very well. For example, grep is very easy to use and can search vast amounts of data quickly. The find tool can find a particular file or files based on all kinds of criteria. It's pretty easy to string these tools together to build even more powerful tools, such as a tool that finds all of the .log files in the /home directory and searches each one for a particular entry. This erector-set mentality allows UNIX system administrators to seem to always have the right tool for the job.
Cron traditionally has been considered another such a tool for job scheduling, but is it enough? This webinar considers that very question. The first part builds on a previous Geek Guide, Beyond Cron, and briefly describes how to know when it might be time to consider upgrading your job scheduling infrastructure. The second part presents an actual planning and implementation framework.
Join Linux Journal's Mike Diehl and Pat Cameron of Help Systems.
Free to Linux Journal readers.View Now!
|The Firebird Project's Firebird Relational Database||Jul 29, 2016|
|Stunnel Security for Oracle||Jul 28, 2016|
|SUSE LLC's SUSE Manager||Jul 21, 2016|
|My +1 Sword of Productivity||Jul 20, 2016|
|Non-Linux FOSS: Caffeine!||Jul 19, 2016|
|Murat Yener and Onur Dundar's Expert Android Studio (Wrox)||Jul 18, 2016|
- Stunnel Security for Oracle
- The Firebird Project's Firebird Relational Database
- SUSE LLC's SUSE Manager
- Murat Yener and Onur Dundar's Expert Android Studio (Wrox)
- Managing Linux Using Puppet
- My +1 Sword of Productivity
- Non-Linux FOSS: Caffeine!
- Google's SwiftShader Released
- SuperTuxKart 0.9.2 Released
- Doing for User Space What We Did for Kernel Space
With all the industry talk about the benefits of Linux on Power and all the performance advantages offered by its open architecture, you may be considering a move in that direction. If you are thinking about analytics, big data and cloud computing, you would be right to evaluate Power. The idea of using commodity x86 hardware and replacing it every three years is an outdated cost model. It doesn’t consider the total cost of ownership, and it doesn’t consider the advantage of real processing power, high-availability and multithreading like a demon.
This ebook takes a look at some of the practical applications of the Linux on Power platform and ways you might bring all the performance power of this open architecture to bear for your organization. There are no smoke and mirrors here—just hard, cold, empirical evidence provided by independent sources. I also consider some innovative ways Linux on Power will be used in the future.Get the Guide