The original FaxFacts product started life as a fax-on-demand application, used to provide a service whereby callers can request a document to be faxed to them from a central server.  Many current CopiaFacts systems are still operating partly or wholly in this mode, and CopiaFacts can still implement a fax-on-demand system straight 'out of the box' without the need to create any custom scripting to control this task.  Fax-on-demand is typically used for:

Providing technical support in the form of technical bulletins

Distributing product information for sales and marketing

Processing catalog orders

Post-event schedules or late-breaking news

Providing forms for for completion and return

This section briefly documents the principles which underlie the CopiaFacts support for fax-on-demand.  New fax-on-demand applications are nowadays encountered much less frequently than in the past, but an understanding of the methods may be helpful in the use of other CopiaFacts applications such as IVR and scripting.  Some of the terms used in current applications have their origins in fax-on-demand: for example the name CALLBACK on the folder containing queues for outbound calls to be placed by CopiaFacts.

Types of Fax-on-Demand

There are two principal types of fax-on-demand application, which we call 'one-call' and 'callback'.  The name 'two-call' is also used for the latter type.

In 'one-call' fax-on-demand, a single call is placed both to request and receive the document.  The call is usually placed by the requester calling from a handset on a fax machine and interacting using DTMF tones to request a specific document.  It is also possible to place a call on a regular phone and transfer the call to a local fax machine extension when the transmission from CopiaFacts is about to start. And for special applications a system can be implemented with one telephone number for each document, so that it is only necessary to call a specific number from the fax machine, without manual intervention to make the request.  Except for the last case, one-call fax-on-demand requires both voice and fax resources on the line handling the call.

In 'callback' fax-on-demand, two calls are made.  The first call is placed by the requester to select the document(s) to be faxed.  In addition the requester must provide a fax telephone number to which the documents will be faxed on a subsequent call which CopiaFacts places. CopiaFacts can also automatically look up the fax number from a PIN supplied by the caller. With callback fax-on-demand, you require both voice and fax boards or board resources in the system, but they need not be connected to the same telephone lines.

CopiaFacts supports all these types of fax-on-demand.  The system can be configured either to operate in a specific way, or to decide on-the-fly how to process each call.  Almost all such decisions are made automatically: for example if you specify that both one-call and callback methods are enabled, CopiaFacts automatically inserts an extra question into the IVR script, 'are you calling from a fax machine?'.  If the caller answers 'no', the questions to collect the caller's fax number are skipped. No detailed scripting of this choice has to be made by the system administrator.


CopiaFacts is configured for fax-on-demand by means of the checkboxes on the right-hand side of the Lines pages in the CFHWL configurator.  Lines may be selected for one-call, callback requests and outbound fax calls.  The configurator disables the one-call checkbox if the line does not have both voice and fax, and also disables the callback or outbound checkbox if either fax or voice is absent on the line.

When a voice line is specified for IVR or requests either in one-call or callback mode, it automatically goes into fax-on-demand mode and starts playing Standard Voice Prompts starting from SVP1, the greeting message, and continuing to ask for document numbers or a fax phone number as appropriate.  A workable fax-on-demand application can be made using just the standard prompts; it will select from a range of documents, provided that the document filenames are numeric to allow their direct selection by means of DTMF keys. In fact for a custom IVR application not involving fax-on-demand, it is necessary to suppress the automatic fax-on-demand scripting, normally simply by using $auto_call to start the script at a specific 'infobox'.

Customizing Fax-On-Demand

Many CopiaFacts demands are available to customize fax-on-demand operations.  Mostly this is done by making an 'infobox' file with a numeric (selectable with DTMF) filename.  This was originally a numbered 'box' containing additional information about the selection. However even without using infoboxes, you perform tasks such as adding optional descriptions of the documents being selected (by adding a .VOX or .WAV file with the same basename as the document image); transforming entered document numbers by look-up in a table ($infobox); or limiting the number of documents selected on each call (using $max_image in the user profile) and many other aspects of the transaction.

By using infobox files for fax-on-demand selections, you can also perform an extensive set of custom steps, such as:

select documents with non-numeric filenames ($image_file)

play voice descriptions with different filenames from the document ($image_desc)

implementing multiple-language support

specify documents which can only be sent on onecall or only on callback transactions ($nocallback, $onlycallback)

play messages to the caller ($play_var)

prompt for, and collect, additional DTMF input from the caller ($get_var)

call custom DLLs and external programs to perform special processes

set, retrieve and manipulate user-defined and built-in variables ($set_var)

use conditionals such as $if, and logical operations such as $repeat $until

Descriptions of all of these capabilities are given in the CopiaFacts Scripting section and in Commands Reference.  But it is important to stress that the basic 'loop' of asking for a fax-on-demand document number, receiving the DTMF, and adding the document to the transmission list is built-in to the CopiaFacts program and does not need scripting.  Outline flowcharts of fax-on-demand logic will be found in Appendix I.