3. Planning a FaxFacts Fax-on-Demand System
Planning a Fax-on-Demand System
A fax-on-demand system does not just happen, and your degree of success will be determined by the care with which you approach the task of planning the way the system will operate. This must be done well before you get down to the details of configuration and installation.
This chapter summarises the most important things you have to consider and decide upon. Each planning stage is then discussed in more detail in the following sections.
Why am I implementing fax-on-demand?
Your objectives for your fax-on-demand system are crucial, and colour all subsequent aspects of planning. Typical answers to this question are: to provide a special service to customers, to save staff time in responding to enquiries, to make information available at unsocial hours of the day, or just to make money by selling information. Of course you may have more than one objective, or objectives that will change as the system develops.
What information am I going to provide?
The heart of a fax-on-demand system is the information that you make available to your callers. The volume and type of information will influence how long it takes to set up your system. If you are a distributor who has to scan thousands of data sheets from the manufacturers you represent, you have to schedule time to carry out this task. In other cases, data will already be in a suitable form for faxing and FaxFacts merely has to be set up to find it. If the data is on a Unix or Apple system you will have to arrange for it to be made available to FaxFacts over your network.
A FaxFacts option, FFWEB, also allows existing World-Wide Web documents to be made available by fax-on-demand. FaxFacts can retrieve HTML documents from a local or remote web server and convert them to faxable format automatically when they are requested by a caller.
How is my information going to be kept fresh?
Once you have a fax-on-demand system it is important to keep information fresh, and you will have to plan and devise procedures for doing this.
Who will speak the voice messages?
FaxFacts can be supplied with standard system messages in USA or UK English, but most users prefer to record all their own messages to maintain consistency between the standard voice prompts and the custom menus and descriptions.
Do I need custom programming for each caller?
FaxFacts allows the specification of pre- and post-processing for each request. This feature could be used to build a custom report for each caller based on information collected during the request. If you need this facility, you may need to write or adapt programs to format the reports.
How are my callers going to select the documents they need?
The three principal ways of guiding your callers to your information are to publish a list of document numbers independently of FaxFacts (for example in a catalogue); to have a catalogue or document list available for retrieval by fax-on-demand; or to set up a series of voice menus. Variations and combinations of these methods are also used. When planning the capacity of your system you will have to take into account the time your callers will take to negotiate your menu system.
For ISDN systems which accept calls to multiple telephone numbers on the same lines, FaxFacts can be set up to transmit a different document depending on the dialled number. No user interaction is required and the document transmission is normally initiated by a fax poll from the callers fax machine. This mode of operation is common in Germany, where it is normal for the telephone company to be able to make available a large number of different telephone numbers on a single connection.
What document numbering or referencing scheme shall I use?
If you are planning to use other than just menus for document selection, some form of numbering system must be designed and implemented. You may need to incorporate special features such as the ability to select the same document with more than one reference number (for example for advertisement response monitoring).
If you make available a list of documents which can be retrieved from your system, it is necessary to devise a system in which the numbering does not change as groups of documents are added and deleted.
Shall I use one-call, callback, or both?
The delivery methods you use will usually be determined by the system objectives and the type of information you plan to make available. You may need to set up a list of telephone prefixes (for example, 00 for overseas calls) for which callbacks are disallowed.
What are my standards of service and availability?
Your callers must be assured of getting through to your fax-on-demand service when they need the information, and of receiving callback faxes (if applicable) within an acceptable time from requesting them. You need to set standards so that you can better calculate the system capacity you need.
What are my projected call volumes?
Fax-on-demand is still a new concept to many people and this question is therefore one of the most difficult to answer. If the volumes are unknown then it is important to select hardware components so as to remain as flexible as possible.
In what format will my documents be stored?
The allowable formats are different for each supported fax board, although faxable TIFF is the usual standard. You will need to estimate the average disk space taken by each format to determine the disk storage requirements for your application.
Who is going to call in to my fax-on-demand system?
You can design the user interaction with FaxFacts in many different ways. The approach you take if all your callers are your own engineers will be different from that used to handle calls from any member of the public.
Will my callers all have touch-tone capability?
FaxFacts can interface with pulse-to-tone converters, and also supports speaker-independent voice-recognition hardware and software. These optional features allow calls to be accepted other than from touch-tone telephones and fax machines. Voice recognition identifies digits, yes and no and is also available for languages other than English.
Do I need security or password features?
FaxFacts can restrict access either to the system or to individual documents. The control system to do this must be set up if your system contains confidential or valuable information.
Will callers be calling from offices or private phones?
If you will be using callback delivery to departmental fax machines you will need to design a cover sheet which helps to ensure that the information reaches the requester; and if you will use premium-rate numbers you may have to consider how to get calls from companies which bar calls to them.
Will calls be coming from overseas?
Overseas callers may need to be provided with voice prompts in languages other than English. FaxFacts can handle multiple caller-selectable sets of voice messages in different languages, and can also speak numbers and values in different languages.
Will callers use fax polling to retrieve documents?
In some countries, particularly Germany and Austria, callers expect to press the poll button on their fax machines to retrieve fax-on-demand documents. Elsewhere, prompting to press the start or manual receive button is more common. Many callers will not know which button is which, but with most supported hardware, FaxFacts is able to determine which button has been pressed and set up the transmission accordingly (some competitive systems cannot do this). If the wrong transmission mode is selected, the receiving machine usually detects an error and hangs up.
Will incoming faxes arrive on the fax-on-demand lines?
There will often be callers who mistake or misread a published fax-on-demand number as your fax number. FaxFacts can be set up to detect incoming fax calls and save them in a special dummy mailbox. This option is often not compatible with automatic detection of fax polling because the fax tones for polling and incoming fax are initially the same.
Will FaxFacts be used as a network file server?
If you have documents available for fax-on-demand, you can also use FaxFacts to send these documents in response to a locally generated request. To use this facility you will usually have to put the machine running FaxFacts onto your network so that any network user can use a provided FaxFacts utility to initiate a fax transmission. The FFWIN utility allows any Windows document to be added to this type of transmission.
What logging and reporting information do I need?
FaxFacts keeps detailed logs of each transaction, but you need to specify what analyses you need and implement the necessary reports. There is an optional FaxFacts add-on which provides a set of common reports. If you are using the logs to charge for information transmitted, you may need to interface the FaxFacts log with your accounting system.
Do I want callers to leave voice messages?
FaxFacts can be configured to allow users to leave voice messages. If you plan to use this feature you will need to set up procedures to listen to, transcribe and action these messages.
When you have answers to most of the above questions you will be ready to plan and configure the fax-on-demand configuration you need. We have assumed so far that you are planning to use FaxFacts software, but if you are reading this before having decided on FaxFacts, then there are a few more questions you need to ask yourself:
Can I start small and expand the system?
The starting point for a FaxFacts system is two telephone lines, and the system can grow to handle hundreds of lines in networked PCs. Other available systems may either have a higher entry point or a lower maximum capacity.
Does the system use high-end voice and fax boards?
System throughput and reliability depends on the use of voice and fax boards which include their own processors. Using low-cost modems limits the expansion capability of your system and may also deny your callers some usability features, such as the ability to interrupt prompts by keying a touch-tone before the prompt is finished.
Is the software sufficiently configurable?
FaxFacts is a completely open system, designed around simple files and easily editable configuration parameters. Make sure that all your current and future requirements can be handled by the system you select.
The immediately following sections expand on many of the topics discussed above, showing how your planning decisions will affect the way you set up your fax-on-demand system. We will also discuss in general terms how to implement these decisions in the FaxFacts configuration.
Objectives for Fax-on-Demand
There are three principal reasons for implementing a fax-on-demand system, which may be present in varying proportions in any one application:
Additionally, you may want to install a system on a bureau basis, in which case the above objectives will be those of your clients.
The mix of these objectives will define many of the operating parameters of the fax-on-demand system, such as who pays for the fax transmissions, the quality and appearance of the documents sent, and the amount of accounting and logging information you need.
Fax-on-demand is already used in such an expanding range of applications that any list will soon be out of date, but the following descriptions of typical fax-on-demand applications provide examples of how your objectives influence the design of the system. We have also started to include some notes about how specific FaxFacts features are implemented.
Technical Support Services
Fax-on-demand is frequently used to make available technical bulletins, both for fault-fixing and general advice. In many cases, these will consist of text files requiring no special formatting. The typical caller will not know what information is available when he calls, so it will be useful to have a document index that can be retrieved on the first call. You should normally customise system prompt number 4 (which asks the caller to select a document number), to add something like, ...or enter 100 to receive a list of available documents.
Since you are providing the system as a service, both one-call and callback delivery methods are appropriate, depending on your budget. You may want to consider restricting calls from overseas to one-call delivery, which is done by using $phone_mask configuration commands, but allowing both onecall and request line-operations. You can also restrict the number of documents selected per call with the $max_image or $max_request commands in the user profile.
Product Catalogues
If you publish a product catalogue, fax-on-demand is an ideal way of distributing further details about the products you list. Most users publish a fax-on-demand reference number in the catalogue alongside each listed product, so the user will know what documents to select. One-call delivery is almost always used for this application. Your catalogue can also give instructions about how to use your system.
If you have a special offer you want to make known quickly you can use the $prefax command in the user profile to select a document which will be sent to each caller before the documents he requested. You can also use $prefax (or $suffax) to specify an order form document to be sent with each transmission, so that your caller has everything he needs to make a purchasing decision.
The FaxFacts FFWEB option allows you to make fax-on-demand documents automatically from Web pages. When the HTML document is updated, the fax format version of the document will be automatically updated for the next caller.
Information for Sale
Fax-on-demand can be used as a delivery method for information with high intrinsic value, such as financial data. This is most often set up as a closed system, callback delivery, with access restricted to your specified clients only. This is implemented by means of a $caller_id command in the user profile, specifying a file which you will have set up containing an access code for each client. If you wish, the file can contain the name and/or fax number of the client as well as the PIN code, so that you can (a) customise the cover sheet and (b) avoid the need to request the callers phone number. If a name or number is missing from the file, FaxFacts will automatically ask for a room or extension number and/or a fax number (using system prompts numbers 19 and 21).
With this approach you know that all the callers who obtain your data will be your registered clients, and you can use the FaxFacts logs to bill them for documents supplied. The caller PIN is part of the log record.
Fax-on-Demand as a Revenue Producer
This type of system differs from the preceding because the information is typically of lower value and is only made available through fax-on-demand. The income is derived from premium-rate incoming lines. Normally, this type of system is set up for one-call delivery, so that you receive premium-rate payment for both the selection and the delivery of the documents. If you are only delivering short documents and to local telephone numbers, however, you can use callback delivery and just about cover your costs with the payment for the selection part of the transaction, especially if you use menus. To restrict calls to local numbers only, you would again use $phone_mask commands in the configuration file.
Document Origination
Depending on your application, documents for faxing can come from a wide variety of sources. This section lists some of the considerations to bear in mind when you plan how to stock your information warehouse.
Text Files
Text files have the advantage of requiring minimum storage space on your hard disk. They look crisp and neat when faxed out, and they are easy to keep up-to-date. With most fax boards you can incorporate graphics using an include file mechanism, and PC graphics characters (and accented characters) are usually available in the standard supplied fonts.
The files must be typeable files which contain no word-processor codes. When you are preparing text files, you need to be aware of how they are actually faxed and what fonts and line-lengths are available. Generally this depends on the fax board you are using.
You should normally paginate your files with form-feed characters so that the page breaks occur under your control. In some cases the fax software will discard empty lines at the top and bottom of the page, unless they contain one or more space characters.
Faxed-in Images
Faxed-in images are easy to set up, and you can be confident that the file format will be transmittable as an outgoing file. But the quality of the document may not be as good as you would wish. You can use the software provided with the fax board to receive the faxes, but you may prefer to use the FaxFacts remote image update feature, because this will save the file with the correct numbered file name which you assign. To use this feature, you provide an $update_image command in the user profile. To avoid paying for local telephone calls to fax in the images, you can use a phone line simulator such as Freelink or call in via a PABX from another extension.
One problem with faxed-in images is that the sending fax-machine may add a fax header line which will be visible at the top of the document. If you cannot prevent your fax machine from doing this, the FaxFacts FFVIEWER program can be used to save a new version of the document with the top cropped off. Some batch-mode utilities are also available should you need to automate the cropping as a post-receive process.
For all the above reasons, you should only consider faxing in your documents if the number of documents is small.
Scanned Images
If you have a scanner available, it will usually produce better results than faxing in images, and it will also not add any header line. Several fax-on-demand users have created large information bases by this means.
Two points which you must consider are the resolution of the image and the ability of the scanner to produce directly a suitable file format. Many older scanners could only work at a 300 dpi resolution to match early laser printers. These scanners are worse than useless for creating fax images, because the required 200 by 100 or 200 by 200 dpi resolution has to be generated in software by averaging and interpolation. A 400 or 600 dpi scanner, or even one which can only scan at 200 dpi, will produce much better results.
Current scanners use a TWAIN interface which can output in a variety of file formats, usually including faxable TIFF which is the preferred format for most fax boards.
Existing Bitmapped Images
Some fax-on-demand applications are built around an existing library of bitmapped images. If this is the case with your application, you may be forced to select fax hardware which can handle your images directly, to avoid a large conversion operation. You should discuss this in more detail with your FaxFacts supplier.
In particular, you should be aware that there is wide variation within the TIFF file format. The TIFF standard defines only the structure of the file, not the content; if you have TIFF files and a fax board that handle TIFF files, there is no guarantee that the board will handle your files.
FaxFacts has a lookup feature which allows you to provide a simple indexed file to translate the number entered by the caller to an actual filename. This can be useful if your existing document base has a numbering system unsuitable for selection by a caller, for example involving alphanumeric codes.
Windows Documents
The optional FaxFacts FFWIN driver can convert the output from MS-Windows applications directly to fax format files. This type of file can produce the highest quality of faxed images. People who have only ever received ordinary (scanned) faxes will be favourably impressed with the higher quality when they receive faxes from your fax-on-demand system. Because your images will never have been scanned, lines will be straight, not stepped, and characters will be fully formed.
FFWIN can be selected in the same way as a MS-Windows printer driver and allows document files to be placed directly into your FaxFacts catalogue with the reference number that you select when you print your document.
To avoid the manual task of selecting a document number from the FFWIN print dialog, you can place a filename at the top of the master document in the special FFMERGE font:
This technique allows the documented to be printed to FFMERGE instead of FFWIN, and automatically saves the fax file in the correct place. If you place the FFMERGE font string at the very top of the document it may be outside the printable area of your printer, so that you can also make hard copy from the same master.
Other Word-processed or DTP Files
You can also achieve high quality by going directly to fax format from other graphics applications, without going via printed output which has to be scanned. Often the best method is to use Postscript output format, captured in a disk file. This method is also the best if your originals are generated on an Apple Mac system. The most effective utility for conversion of Postscript output is GS32 from Lasergo Inc. (although several others are available, including a free, public-domain Postscript interpreter called Ghostscript). GS32 runs on 386 processors or above and can output uncompressed PCX or TIFF files in the correct resolution for either standard or fine-mode faxes. Simple batch files can make this operation relatively painless, but it is not instantaneous: you should allow a minute or so per page on an average Pentium, more for slower systems.
PDF files
Adobe portable document format files can be converted to faxable format by writing files to the FFWIN driver from Acrobat Reader. A FaxFacts utility is available on request to automate this process.
HTML documents
The FaxFacts FFWEB option allows automated conversion of HTML documents from a local or remote web server. If the document has a last-modified date (not all do) then it is only converted if it is later than the local copy in fax format. Otherwise you can specify an expiration date for each document referenced. A $type web infobox is used to specify the URL which is to be associated with each assigned document number.
Keeping Information Up-to-date
You should not be tempted to start up your fax-on-demand application without having thought out how to maintain the freshness of your data. One of the principal reasons that your callers will use your system is to get the latest information from you, and usage will quickly decline if the documents are perceived to be out of date.
In many cases, keeping data up-to-date will just be a repeat operation of the original setting-up, hopefully on a smaller scale. As new originals become available, they can be added to the system in the same way as before.
Fax-on-demand systems where the information is highly volatile need special techniques to avoid updating a document while it is being faxed to a caller. This can be implemented using the lookup feature mentioned earlier to switch documents after updating an alternate document, or by maintaining live and pending directories which are selected alternately by changing $image_locn specified in the user profile
If your fax-on-demand system has an index of documents, you should try to use it as a control file. As well as the title and document number of each document, list the number of pages and the date the document was last updated. This will have the twin benefits of keeping your index up to date and, if you regularly review the list, will highlight any documents which may be out of date.
Some FaxFacts resellers also offer custom applications which you can use to maintain a register of the documents in your fax-on-demand system.
Along with maintaining the documents in your information base you also need to consider the maintenance of spoken document descriptions and menus. When you add a new class of documents to a menu-controlled system there will always be new messages to record.
Setting up Voice Messages
There are three types of messages in the FaxFacts system: standard (or system) messages, voice descriptions for images and menus, and digit/amount messages. All these messages are normally recorded using the FaxFacts Recording Studio provided as an integral part of the FaxFacts software. You call in to FaxFacts from a normal telephone and enter a special access code to record new messages.
Standard system messages are provided in either USA or UK English. FaxFacts distributors in other countries also provide messages in other languages. The message texts are listed in an appendix of the FaxFacts manual. You will almost always want to re-record at least messages 1, 28 and 45 to personalise them to your application and Hellene number.
For IVR applications, you may need to record custom files containing multiple spoken phrases, which can be selected and played to the caller as a continuous sentence. You have complete control over how the words or phrases are pasted together to speak different types of sentence. The same flexibility can also be applied to the speaking of amounts in different languages: FaxFacts can be told that in English, 21 is spoken with twenty, then one, whereas with German you need to select three items in a different sequence: ein und zwanzig. Predefined rule sets are available for speaking amounts in English, French, Swiss French, German, Italian, Spanish and Japanese (and you can build additional sets for other languages).
Although many users like to have a single voice speaking all messages, this policy may be a disadvantage if the voice is on holiday or ill when you need to revise the messages. If the messages are already divided between different speakers, any change will be less obvious. You also need to ensure that the conditions under which you recorded the original messages can be replicated when you come to record changes. Using a different telephone or a different room can introduce a significant distraction into your sequence of messages.
Optional software is available to record higher quality messages than can be achieved by using a telephone, although the recording quality is always restricted by the usual telephony standards. If you have a Lucent (formerly Rhetorex) voice board (or some Dialogic boards), a microphone or sound source can be connected to the D-connector on the board; contact your FaxFacts supplier for details of how to do this.
Under Windows NT, some Dialogic voice boards can also directly work with Windows .WAV format voice files. The range of specific .WAV formats supported depends on which board you are using. If your FaxFacts system supports .WAV files (also known as RIFF files), then you can use a wide variety of Windows utilities to record and play back voice files.
Designing Custom Processing
Many fax-on-demand applications require that documents are pre-processed before transmission or post-processed afterwards. FaxFacts allows two types of processing at each phase:
Internal Pre-processing/Post-processing
This type of processing operation is run on the same machine that is running FaxFacts, by a program which is spawned by the FaxFacts program. Under DOS, the characteristics of this type of program are that it must be small, fast and reliable. Small, because it has to fit into memory alongside FaxFacts; fast, because it must not delay FaxFacts processing of other calls; and reliable because if it fails or gets halted by some external error condition, the fax-on-demand system will grind to a halt. Under NT there is less pressure on space and time, since each line runs in a separate thread of execution.
External Pre-processing/Post-processing
This processing is performed before or after sending a callback fax, and cannot be done for one-call. Under DOS this type of processing must be performed on a different machine on the network from the one running FaxFacts. Under NT, the same machine can be running an external process. In this case there is no requirement to be quick, because the worst that can happen is that one fax transmission will be delayed.
All pre-processing and post-processing is controlled by the FS file (fax send) which is created to control the fax transmission operation. Your own program has this file available and is responsible (if pre-processing) for setting the status to indicate that the fax can now be transmitted. The FS file contains all the details known to FaxFacts about the request, including the files to be transmitted, the recipient, and any data collected during the request phase of the transaction. You can modify any of this information before transmission, or you can change it to send a completely different file if you wish. You can also use the pre-process operation to generate a custom report for the caller, or to retrieve data from an external mainframe database.
C library functions are available to help you access and update the contents of the FS file. The power and flexibility of the pre-processing features places detailed discussion of them outside the scope of this planning guide, but your FaxFacts supplier will be able to help you with the design and implementation, or even with the programming.
Under NT, custom processing can also be performed during a request or IVR session, by calling a library function (in a DLL) from a special infobox. This is a good technique to use when you are looking up data in a custom database.
Designing Menus
Menus are a common feature of fax-on-demand applications, and can enhance and simplify the interaction with your caller. To implement a menu in FaxFacts you need two things: a menu infobox information file (IIF) and a spoken version of the menu itself (VOX file). Each menu has an infobox number and is treated in the same way as a document.
When the caller selects (or you direct him/her to, as described below) a menu number, FaxFacts sees that it is a menu from the $menu_image command in the IIF, and plays the corresponding VOX file. Depending on the callers keyed choice, control then passes to one of the infoboxes named on one of the $menu_item lines in the IIF. This can either be a real document or a further menu. It is not a good idea to nest menus too deeply, because callers get very frustrated by this.
The FaxFacts infobox editor encourages you to write the text of this spoken menu on $script commands in the IIF, so that you remember exactly what is said when you next look at the IIF. The FaxFacts Recording Studio feature also displays the $script entries on the screen while you are recording the menu prompt for this IIF.
If you wish to bypass the main system prompt for a document number (message 4), you can use the $auto_call command in the user profile to specify the number of your top-level menu. To keep the caller entirely in your menu system you can use the next-selection and next-state features on the $menu_item command as described in more detail in the FaxFacts manual.
As far as the planning phase is concerned you need to be aware that FaxFacts is capable of meeting most of the menu requirements that you can think up, as well as some that you have not thought of. You need to allow time to plan the menus, sketch a flow-chart, and then create the menu IIFs using the infobox editor (or a text editor of your choice).
Finally, and most importantly, you should not go live with your FaxFacts application until you have called in and tested every path through your menu system. This does not mean that you have to request every document, but you do have to test every decision and exit point. There is nothing worse than trapping your caller inadvertently in a loop in your menu structure, where there is no alternative but to hang up the line. The time needed for testing is another reason not to make your menu structure too complex.
Document Numbering
Even if most of your callers will navigate your menu system, you should also consider numbering your documents and allowing a short-cut directly to the document if the caller knows the number. And if you are not using menus at all, you can only reference the document by number.
FaxFacts allows up to 8-character alphanumeric document references. In practice, documents selected directly by the caller must have numeric references since this is all that can be entered on the telephone pad. Non-numeric references are useful in IVR applications, where for example YES.IIF and NO.IIF are more useful file names than ones with just numbers, and also prevent the caller from accidentally jumping into the middle of a series of questions by keying an incorrect number.
If your application allows it you should consider using less than the maximum number of digits to minimise keying errors. In some cases documents will already be numbered in a suitable way, and you will then be able to retain the existing references. More likely, though, you will have to consider assigning completely new numbers. FaxFacts has a number of features which can be used to assist in this area. Firstly, you can select a portion of your existing reference number as the document index. For example if your catalogue numbers include a pack size at the end of each number you could still ask your caller to enter the catalogue number and then discard a prefix or suffix before you make your document selection. Secondly, FaxFacts can automatically look up the number in a cross-reference file you supply, which could completely transform the entered number. And finally, FaxFacts can run a program you supply which takes the entered number and returns the document reference you wish to send to the caller.
For applications which require users to request documents in groups as well as individually, $group_image IIF control files can be set up. This allows a single reference number to be selected instead of each individual document number. You can limit the number of documents available on each call by specifying either $max_request or $max_image in the user profile. The former counts groups as a single request and the latter counts all the documents in the group individually. Groups of documents can also include other groups as well as separate documents.
If your requests are coming from advertisement responses, you can arrange to monitor them by printing different document numbers in each advertisement and providing IIFs to associate each number with a single document file. If you need this facility, you will need to allow for it when you design your document numbering system.
If you are using a catalogue or index to provide your callers with document numbers, or if you are publishing them in a magazine, there is rarely any need to spend too much time making neat and extensible number ranges. Your caller is going to look up the number anyway, and he will not care that it is exactly 10 higher than the previous number or 100 less than the next one. It is much more important for you to assign numbers that make it easy for you to create and maintain your information base. A little time spent planning your numbering system may give you a big payback later on.
Speaker-Independent Speech Recognition
FaxFacts supports optional hardware and software which allows callers to speak responses instead of entering touch-tones. You can set this up so that callers can use only spoken responses or only touch-tones, or you can allow the caller to select the method. Depending on the input mode, FaxFacts automatically switches from one set (subdirectory) of voice prompts to another. This allows you to prepare different instructions for the caller depending on whether you are expecting to hear yes or a 1 tone or either of them. If both input methods are allowed, it is normal to switch to touch-tone input only for the remainder of the call as soon as the caller starts to use tones, but this is a configurable option.
Cover Sheets
Before you set up your system for callback operation, or for sending faxes generated locally, you should design the cover sheets which FaxFacts can send with your documents. You create cover sheets as a template, into which FaxFacts can insert data pertaining to the current fax delivery.
FaxFacts supports two types of cover sheet: standard cover sheets contain mainly fixed-pitch text with the addition of graphical header and footer strips; and the Graphical Cover Sheets option, which allows fully graphical cover sheets, with text in various fonts and styles. The first type uses a text file as a template and in the second type a special graphical cover template (GCT) is built using the FFVIEWER annotations feature to specify the variable elements, on top of a background watermark fax file.
Both types can include any system variables (for example, date and time) from the list in the FaxFacts manual, any variables entered by the caller in response to a $get_var command in an IIF, and any variables you set with $set_var commands. FaxFacts variables are included in your text by prefixing the name with an @ sign. Included graphics files in standard cover sheets use a syntax which varies according to the make of fax board; see the FaxFacts manual for specifics.
Using Graphical Cover Sheets requires the separate FFGCOVER program which pre-processes the FS files for callbacks and other outbound faxes. Graphical Cover Sheets can use any Windows font available on the machine, and allow selection of font size, style and angle. Signatures can also be selected and loaded from bitmap files. Multiple-line text blocks can be added to the cover sheet, with dynamic expansion of embedded variables.
For callback operation, you will have the problem of getting the fax delivered to the caller if you do not have a closed system with caller names on file. Most users have a phrase on their cover-sheets which reads, please direct this fax to the person at extension (or room number) @ROUTETO. This will correspond to a version of system message 19 which requests a room or extension number. FaxFacts also allows input of alphabetic characters to form names, but this only works with the layout of letters on USA telephones.
Deciding on Delivery Method
By this stage you are probably fairly clear about whether you will be using one-call or callback delivery, but it is worth listing a few advantages and disadvantages of each method before you finally decide. First, we should review the options that FaxFacts makes available to you:
One-call operation only
This option is selected with the onecall property of the line or can be overridden with the $user_op command. It causes FaxFacts to play message 27 to tell the caller that he or she must be calling from a fax machine.
Callback operation only
This option is selected with the request property, and also needs a line configured as outbound to send the faxes on. It causes FaxFacts to request a fax telephone number and routing number (messages 21 and 19), and to validate the number with the $phone_mask list. You may want to modify message 23 which is played for a disallowed number if you do not give the option for one-call operation at all. When you use callback delivery a number of additional commands must also be specified as described in the FaxFacts manual.
Both one-call and callback operation
This option is selected by specifying both onecall and request as an line operation properties. This automatically causes FaxFacts to ask if the caller is calling from a fax machine (message 18) and to go on to request the number and routing code if not.
Only one-call allowed for specific documents
This option is selected by a $nocallback command in the IIF.
Only callback allowed for specific documents
This option is selected by an $onlycallback command in the IIF.
Line configuration varies at different times of day
You can vary the allowable options according to the time of day or day of week by setting line line schedules or including $user_sched commands in the user profile.
We will now summarise the principal advantages and disadvantages of each delivery method. There may of course be other advantages and disadvantages which are specific to a particular application.
Advantages of one-call delivery
Disadvantages of one-call delivery
Advantages of callback delivery
Disadvantages of callback delivery
Standards of Service / Estimating Call Volumes
This is a difficult area to deal with because many fax-on-demand applications are so new that they are effectively launched into a void. Some callback applications require a large number of incoming lines to minimise busy signals, but can send out the resulting requests overnight using a small number of outbound lines. Others involve a very brief transaction to select documents, but then send out 25-page faxes; these need more outbound lines to handle the load. Most applications fall between these extremes.
Often the only way to estimate your hardware and software requirements is by pure guesswork. You should be able to time a typical request transaction fairly accurately by dry-running the conversation, and you can time the fax delivery by sending yourself some typical pages. Remember that sparsely covered pages take less time to transmit, and that fine-mode images take twice as long as standard mode.
When you have these timing estimates, you can begin to work out how many lines you will need to process particular numbers of transactions. If you are using one-call delivery, or if you have only one telephone line for both requests and callbacks, you will tie up the line for both the duration of the request and the duration of the delivery.
You can also talk, perhaps via your FaxFacts supplier, to other users to see how they estimated volumes and how accurate their estimates were. Fortunately, it is easy to expand a FaxFacts system to meet additional processing requirements.
Document Image Format / Disk Capacity Planning
At the planning stage you will need to know how much disk space will be required by your application. This depends on the number of documents and the format you use. As a guide, you should allow 2,000 bytes for a text page, 40,000 to 60,000 bytes for a compressed fax image in standard resolution, and 80,000 to 120,000 bytes for fine resolution. PCX/DCX images take between 50% and 100% more space than compressed fax files. When calculating space for text files and infobox files, remember the DOS allocation granularity: on many systems each file takes a minimum of 8,192 or even 32,768 bytes.
You should also allow up to 10 megabytes for the voice and fax drivers, and the FaxFacts software itself.
System voice messages take about 1 megabyte, and your own voice menus and document descriptions will take 3 kilobytes per second of speech, or more if you use higher-quality messages.
Designing the User Interaction
Most of the work of designing the user interaction is done automatically by FaxFacts based on the settings in the configuration and user files. For example you do not have to specify explicitly that you want to play a message to the caller to ask if he is calling from his fax machine: if you simply specify that both one-call and request operations are valid for a line, then FaxFacts automatically asks the question, are you calling from your fax machine? (standard message 18). Or if you want to limit access to the system by using a password, specifying the $caller_id command will automatically cause standard message 2 to be played and allow the password to be entered and validated. The $fax_phone_last user profile command will defer all the questions about the callers phone number and routing until after images have been selected. A full list of the relationship between commands and the messages they trigger is given in the FaxFacts manual.
The principal things that you can select to customise the user interaction are the extent to which menus will be used and what short-cuts you provide. If your system is going to be used mainly by people unfamiliar with the technology, simple menus are obviously going to be helpful; but when the same people call a second, third or fourth time they will appreciate being offered a way past the menu choices to speed their requests. With all FaxFacts menus the caller can key ahead without listening to the whole message, and if the response requires a variable number of digits to be entered the entry can be terminated with the # key to avoid having to wait for the timeout. If you want to bring these features to the attention of your regular users, it is better to provide notes in writing, by fax or by a voice-only infobox, to avoid lengthening the welcome message for all users.
Another technique you can use is to provide hidden menu choices. If your spoken menu text tells users that they can enter one, two or three, there is nothing to stop you entering additional $menu_item lines so that those in the know can make additional selections. If the hidden information is confidential you can protect it with $image_password commands.
The $auto_call command provides yet another method of customising the interface. At its simplest, you can specify a document infobox as the auto-call target and set $max_images to 1; on a one-call system this will just send the designated document to anyone who calls in. You can also direct $auto_call to a custom menu and bypass entirely the normal interaction loop around system message 4 (enter a document number...).
The full flexibility of a FaxFacts system can be realised by using the IVR and question box features, which are documented in more detail in the FaxFacts manual. These allow you to ask the user any question and assign the response to a variable. You can concatenate and substring variables and perform simple arithmetic on numeric values. You can use the values to condition the progress of a call with if/then/else constructs and on the basis of whether the response is valid or not. You can pass variables to your own programs which FaxFacts will run, and set variables from results you pass back from your program. You can use variable values as replacements on cover-sheets and other generated ASCII documents. Finally, you can use variables as indexes to lookup database files and update database fields.
Although many simple fax-on-demand applications will not need to use these advanced IVR features, you should at least be aware of the capabilities when you plan your system, since even simple applications can often be enhanced by one or two IIF question boxes.
Monitoring Messages Left by Callers
If you wish you can invite users to leave a spoken message which you can listen to later. The $rcrd_msg command is the simplest way to do this, but you can also use a menu selection to direct a caller to a $type record infobox. Messages are placed into the directory you specify with the $rcrd_dir command, referenced by the FaxFacts internally generated call number. The directory can be overridden by a directory specified in the $type record infobox. FaxFacts also allows you to intercept a problem call (when FaxFacts cannot hear any tones) and invite the user to leave a spoken message. This is done by specifying s40 (go to state 40) on the $repeat_msg command in the user profile. On a one-call system you can also automatically send a fax with detailed instructions when a problem call is encountered (after telling the caller to hang up if not calling from a fax machine).
To listen from a remote site to the voice messages left by your callers, you normally call into the FaxFacts system and enter the special infobox number which you have specified on the $playback command. This takes you to a special dialogue in which you can use your telephone keypad to move forward and back through the messages, listening to and deleting messages as appropriate.
For central playback and transcription, FaxFacts also includes utilities to play back messages through a standard sound card.
Multiple-Language Systems
FaxFacts has a number of special features to allow you to support multiple languages in your fax-on-demand system. At the simplest level, you can use the optional SDID feature to generate one additional message and response at the beginning of each transaction, which is used to select the user profile to be used for the call. [SDID is a software analogue of HDID (hardware direct inward dialling) in which the telephone company provides the number dialled by the caller at the start of the transaction, again allowing selection of a user profile for the call.]
With SDID, you can provide a message (system message 43) which could say, for example, press 1 for English language, composez 2 pour Française, .... You then have separate user profiles numbered 1, 2, etc. which can refer to separate directories for the recorded messages (on the $message_dir command). The caller will for the rest of the call hear the appropriate language versions of your system prompts.
If you do not wish to use the SDID option, you can also have the system switch immediately (using $auto_call) to a question box which allows the caller to select the language for the remainder of the call. You then simply use $set_var to assign to a special system variable the name of the directory containing the messages for that language. This is slightly more difficult to set up than using SDID, but it avoids the need for the SDID optional software.
If your documents are common to multiple languages but you wish to record different document voice descriptions for each language, the special command $image_desc vmsg_dir in an IIF will cause FaxFacts to look in the system voice message directory for the document description VOX file. Normally the VOX file containing an image description must be in the same directory as the image file itself.
Some multiple-language users have a library of documents principally in one language with foreign language versions of a proportion of the documents. In this case FaxFacts allows you to use the same infobox number for all versions of the document but to store the documents for each language in a different directory. If you include two $image_locn directory commands covering the same infobox number range, FaxFacts will take the document (and its voice description) from the first directory if it is found there, and from the second if not. The use of the same infobox number for all language versions makes it easier for you to maintain the documents and for your callers to select them.
As noted earlier, FaxFacts also has the ability to customise the rules for speaking digits and amounts in different languages. Even if you are simply repeating entered digits one-by-one you may still have to reposition the you have entered introduction for a language where the verb comes at the end of the sentence. FaxFacts codes rules like this into the voice files themselves, so that no changes are required to control files or parameters when you switch languages.