BGFAX 1.55 User's Guide

This document will be updated for 1.70 within two weeks

BGFAX User's Guide
February 8, 1996
Copyright (C) 1993-1996. All Rights Reserved.

B.J. Guillot
2611 Rushwood Circle
Houston TX 77067-1941
United States of America

This documentation only describes send fax operation!

The information in this document is subject to change without notice and should not be construed as a commitment by B.J Guillot. B.J. Guillot assumes no responsibility for any errors that may appear in this document.

Trademarks and Links

BGFAX is a trademark of B.J. Guillot, Houston Texas USA
Turbo Pascal is a trademark of Borland International, Inc.
DesqView is a trademark of Quarterdeck, Inc.
QuickLink II is a trademark of Smith Micro Software, Inc.
ZFAX is a trademark of ZyXEL, Zero-One Networking
OS/2 is a trademark of the IBM Corporation
X00 and SIO are trademarks of Raymond L. Gwinn, Woodbridge Virginia USA
BNU is a trademark of David Nugent & Unique Computing Ptd Ltd
Windows and Windows for Workgroups are trademarks of Microsoft Corporation
CAS is a trademark of PureData Communications
I-Modem is a trademark of US Robotics, Inc.

Table of Contents


Introduction
How to Send a Fax
Result Codes (Errorlevels)
MAKEFAX.EXE
Font Editor (FNTEDIT.EXE)
Environment Variables
BGFAX.CNF Configuration File
Command Line Parameters
Class 1 HDLC Frames
Class 2 Hangup Status Codes
Multitasking Warning
Technical Support

Introduction


BGFAX is a very flexible command line driven program that can send faxes. It reports the result of the fax session via an errorlevel and provides detailed logging of all sessions.

BGFAX works with normal Class 1, Class 2, and Class 2.0 fax modems. BGFAX does not support CAS modems such as the (Intel, now Puredata) Satisfaction fax board. To determine if your modem is compatible, start up a terminal (serial communications) program, and type "AT+FCLASS=?" without the quotes, then press [Enter]. If the modem does not return "ERROR", BGFAX should work. The modem will return the fax classes which are supported, such as "0,1,2" for both Class 1 and Class 2 support.

BGFAX comes with both DOS and OS/2 executables. BGFAX is not a TSR.

BGFAX can also receive faxes, but this manual describes only send fax operation.


How to Send a Fax


For our first example, we will send the ASCII text file "HELLO.TXT" to fax machine located at phone number 555-1212.

First, we need to make a batch file that will convert the ASCII file to a fax image file, send it, and then report the result.

SENDFAX.BAT

     @echo off
     set bgfax=c:\bgfax
     %bgfax%\makefax.exe %1 output.fax
     %bgfax%\bgfax.exe /send:9600 output.fax %2
     if errorlevel 5 goto good
     if errorlevel 1 echo FAX TRANSMISSION FAILED
     goto end
     :good
     echo FAX SENT SUCCESSFULLY
     :end
To send the fax from DOS, simply run the batch file just created with two command line parameters; the filename and the phone number...
C:\> SENDFAX HELLO.TXT 555-1212
To do the same thing in an OS/2 window, we construct a command (batch) file that does exactly the same thing except we use BGFAX2.EXE and MAKEFAX2.EXE...

SENDFAX.CMD

     @echo off
     set bgfax=c:\bgfax
     %bgfax%\makefax2.exe %1 output.fax
     %bgfax%\bgfax2.exe /send:9600 output.fax %2
     if errorlevel 5 goto good
     if errorlevel 1 echo FAX TRANSMISSION FAILED
     goto end
     :good
     echo FAX SENT SUCCESSFULLY
     :end
To send the fax, use the exact same command line from the DOS version...
[C:\] SENDFAX HELLO.TXT 555-1212

Result Codes (Errorlevels)


In standard fax transmission mode, BGFAX can only exit with two possible errorlevels.
Errorlevel 5 -- Successful fax transmission
Errorlevel 1 -- Fax transmission failure
For those of you out there that would prefer more status information on transmission failures, an "extended results" mode is available. Add /ER to the end of the BGFAX command line.

BGFAX /SEND:9600 OUTPUT.FAX 555-1212 /ER

BGFAX can now exit with several possible failure codes...

Errorlevel 19 -- Class 1 failure, Too many retrains (see Note 3)
Errorlevel 18 -- Check Identity Failure (see /CI:xxxxx)
Errorlevel 17 -- Remote fax machine does not support 2D-MR fax compression (see Note 1)
Errorlevel 16 -- Remote fax machine does not support high resolution documents (see Note 2)
Errorlevel 15 -- Class 1 failure, HDLC response timeout (see Note 3)
Errorlevel 14 -- Modem response timeout (see Note 3)
Errorlevel 13 -- Never connected to remote fax machine ("NO CARRIER")
Errorlevel 12 -- Class 2 failure, Hangup Status Code received (see Note 3)
Errorlevel 11 -- "NO DIALTONE"
Errorlevel 10 -- "BUSY"
Errorlevel 7 -- "BLACKLISTED" (see Note 4)
Errorlevel 5 -- Successful fax transmission
Errorlevel 1 -- Generic fax transmission failure (see Note 5)
(Note 1)
MAKEFAX.EXE creates only 1D-MH compressed faxes, but it is possible to use alien programs which create 2D-MR compressed files. 2D-MR is a better compression method, and the fax file sizes will be anywhere from 12-50% smaller than the 1D-MH equivalent. Some fax devices are unable to receive 2D-MR faxes, and since BGFAX is unable to convert the file on the fly, it will abort and report errorlevel 17.

(Note 2)

MAKEFAX.EXE can create both low (100 dpi) and high resolution (200 dpi) fax files. All fax machines are capable of receiving high resolution files, but sometimes you may find a computer fax modem that has been configured incorrectly for fax receiving. If that occurs, BGFAX will abort and report that the remote machine is incapable of receiving high resolution documents. This is very rare.

(Note 3)

If a Class 2 failure (errorlevel 12) occurs, sometimes it is beneficial to retry and send the fax while forcing BGFAX to use Class 1 transmission mode. See the Command Line Parameters section later in this manual for information on the /C1 parameter. On the same note, if you have already been forcing BGFAX to use Class 1 operation, and a Class 1 failure (errorlevel 15 or 19) is reported, it may be beneficial to try and resend the fax in Class 2 mode. If a generic modem timeout occurs (errorlevel 14), you might want to try and resend using the opposite fax Class.

The CPU handles most of the work in a Class 1 transmission, while the fax modem handles most of the work in a Class 2 transmission. Because of that, people running multitasking operating systems may want to rely on Class 2. However, the modem manufacturer's implementation of Class 2 may be flawed, which is the reason why BGFAX offers the /C1 parameter.

(Note 4)

A "BLACKLISTED" response code is only possible in a handful of non-USA countries. This response can occur if you are trying to send a fax to a telephone number that is specifically restricted by the modem, or if you try dialing the same number, over and over, without waiting a minimum amount of time as specified by the telecom regulators in the country in question. Again, you do not need to worry about this if you live in the United States.

(Note 5)

In extended results mode (/ER), an errorlevel of 1, generic fax transmission failure pretty much means the modem failed to initialize properly, as most other regular failures (modem timeouts) are covered by other errorlevels.

Remember that when checking for errorlevels in batch (or command) files, the check must start from the highest possible errorlevel and proceed in descending order--a DOS limitation, not a BGFAX limitation. If you are calling BGFAX from a Turbo Pascal program's "exec" procedure, you can use the "dosexitcode" function to report the returned errorlevel without having to worry about DOS's descending order nonsense.

I assume languages such as C and applications such as FoxPro provide a similar method of returning the status code of an executed program.

Example Turbo Pascal 7.0 program which calls BGFAX...

{$m 8192, 0, 8192}
program
  sendfax;  { SENDFAX.PAS }

uses
  dos, crt;

begin
  swapvectors;
  exec('c:\bgfax\bgfax.exe', 'output.fax 555-1212 /er');
  swapvectors;
  if doserror > 0 then
    writeln('BGFAX was unable to execute!')
  else begin
    case dosexitcode of
      0,1,12,14,15 : writeln('Transmission failed!');
      5            : writeln('Transmission successful!');
      7            : writeln('The number is blacklisted!');
      10           : writeln('The number was busy!')
      11           : writeln('NO DIALTONE');
      13           : writeln('The remote machine did not connect!');
      16, 17       : writeln('The remote machine did not match our capabilities!');
      18           : writeln('The fax file could not be opened!');
    end;
  end;
end.

MAKEFAX.EXE


MAKEFAX.EXE is the program that converts ASCII text files to fax image format files.

MAKEFAX is a simple program. It will handle form feeds (Ctrl-L, ASCII-12). Lines can be up to 100 characters wide with up to 66 lines per page.

If that is not satisfactory for your application, you can obtain the 2FAX program from technical support. 2FAX allows multiple fonts per page and allows easy integration of PCX graphic files into your fax. They can use fonts that store 80 characters per lines, 132 characters per line, etc.

MAKEFAX must be given an input filename and an output filename. The input filename must be an ASCII text file. Example...

MAKEFAX TEXTFILE.TXT FAXFILE.FAX
MAKEFAX offers three optional command line parameters...
/HR
Instructs MAKEFAX to create a high resolution (200 dpi) fax file rather than the standard low resolution (100 dpi) file. This is not really necessary, as computer-based fax sending, even in low resolution, has excellent quality. In addition, a high resolution fax file will be twice as large as a low resolution file, meaning that it will take twice as long to transmit the fax!

/SP
Instructs MAKEFAX to use "short pages" when converting the ASCII file to the fax file. Normally, if a ASCII text file contains only a single line, MAKEFAX will create a full 66 line page. The /SP option tells MAKEFAX to produce only the first line, then quit. This will decrease the amount it takes to send a fax (but not by much.)

/F0
[F Zero] Instructs MAKEFAX to use an alternate font. This font is not as nice looking as the standard font, but some people prefer it.

If you wish to use an alien program to create fax image files, BGFAX can correctly send only files that are compatible with QuickLink II (QFX) or ZFAX Version 2.


Font Editor (FNTEDIT.EXE)


The font editing program is provided so that users in other countries can design their own letters. You will still be limited to a maximum of 255 characters per font. Languages such as Russian, which has backwards-R letters are key examples. The FNTEDIT.EXE program modifies the BGFAX.FNT file. The BGFAX.FNT file is required for BGFAX send operation. The FNTEDIT.EXE file can be deleted if you have no need for font editing.


Environment Variables


If you don't quite know what an "environment variable" is, go to your DOS prompt, and type "SET" without the quotes, then press [Enter]. You will see a list of all the current environment variables in use. To set an environment variable, the command "SET BGFAX=C:\BGFAX" will set the BGFAX environment variable to "C:\BGFAX". When BGFAX is executed, it will look for this environment variable, and then look for the BGFAX.CNF configuration file in the directory specified by the variable.

In DOS, environment variables can be set in any batch file (such as AUTOEXEC.BAT, or SENDFAX.BAT). In OS/2, environment variables must be set in the long CONFIG.SYS file, or in command (CMD) files, such as SENDFAX.CMD. See How to Send a Fax.


BGFAX.CNF Config File


Much of BGFAX's behavior is controlled by the BGFAX.CNF configuration file. BGFAX.CNF is a simple ASCII file. Here is a typical example...

BGFAX.CNF

     po=1
     id=713 555 1212
     ss=ATH0Z
     ds=ATDT
     dt=60
     mb=3
     sw=10
     tc=ATHM
     fr=ACME, Inc. (713-555-1212)
     fh=To: %to21% From: %fr42% %mo2%/%dy2%/yr2%  %hr2%:%mi2%  Pg %pg2%/%mp2%
Comport selection for DOS version...
po=1
Tells BGFAX that the fax modem is found on port COM1. There are several other ways to specify the communications port.

By default, BGFAX assumes the following...

po=1 uses standard COM1 config: 0x3f8, IRQ4
po=2 uses standard COM2 config: 0x2f8, IRQ3
po=3 uses standard COM3 config: 0x3e8, IRQ4
po=4 uses standard COM4 config: 0x2e8, IRQ3
po=3e8x5
Tells BGFAX to use the (non-standard) serial port found at address 0x3e8 using IRQ5.

po=278x12
Tells BGFAX to use the (non-standard) serial port found at address 0x278 using IRQ12.

po=f1
If you want BGFAX to use a FOSSIL driver, the letter "F" must precede the port number. Some high speed serial cards require the use of a FOSSIL driver, such as the RocketFOSSIL that comes with the Rocketport multi- port serial card. Common FOSSIL drivers include X00 and BNU. Most users will have no need for a FOSSIL driver.

If you tell BGFAX to use a FOSSIL driver (po=F1, po=F2, etc.) you must tell your FOSSIL driver to unlock any locked port DTE speed before BGFAX executes. If you are using X00, the command line is "XU.EXE LOCK:1:OFF". If you are using BNU, the command line is "BNU.EXE /L1:0". Those examples for X00 (XU) and BNU assumed you are using COM2. FOSSIL drivers are wacky critters, and they always refer to the COM port as being a number one less than the actual com port number (COM1=0, COM2=1, COM3=2, etc.) If you have no idea what FOSSIL drivers are, you probably are not using one, so ignore this paragraph.

Comport selection for OS/2 version...
p2=1
Tells BGFAX that the fax modem is found on OS/2 device COM1.

Note that we did NOT use "po=", but "p2=".

Non-standard ports CANNOT be specified in the BGFAX.CNF file, because OS/2 does not allow the DOS application to talk directly with the hardware. Non-standard ports must be specified in the OS/2 CONFIG.SYS file.

p2=3
To define OS/2 device COM3 at 0x3e8 using IRQ5 with OS/2, the OS/2 CONFIG.SYS file will have a line such as the following...

DEVICE=C:\OS2\UTIL\SIO.SYS (3,3e8,5)
The above tells the Ray Gwinn's SIO communications driver that you are mapping COM3 to the address 0x3e8 using IRQ 5. Your BGFAX.CNF file would have a line that reads "p2=3". Note that BGFAX has been tested only with SIO.SYS, and unpredictable results may occur if used with IBM's stock COM.SYS drivers.

Note that when BGFAX sends faxes, it will always lock the com port's DTE speed to 19200 bps. This is done in all fax Classes, but it is essential that Class 2 modems have their port locked at 19200 bps, or they may refuse the transmit the fax correctly.

Similarly, if you are using OS/2, the COM port must not be locked by SIO. The equivalent command to unlock COM2 with SIO for OS/2 is "SU.EXE 2 LOCK 0".

Getting back to the BGFAX.CNF file...

id=713 555 1212
Tells BGFAX what to use for our transmitted station ID--the phone number that shows up in the remote fax machine's LCD display. It is recommended that only numbers, spaces, and the plus (+) symbol be used, as some fax machines will not work correctly if this ID field contains alphabetical characters, or dashes. Examples...
        id=+1 713 555 1212  Valid
        id=713 555 1212     Valid
        id=+1 713.555.1212  Not Valid (the periods)
        id=713-555-1212     Not Valid (the dashes)
        id=ACME, INC.       Not Valid (the alphabetical characters)
ss=ATH0Z
[AT H zero Z] The ss= entry represents the initialize string that will be sent to the modem when BGFAX first starts up. The ATH0Z string is ideal. You should only change it if you are using an ISDN modem, such as the ZyXEL 2864I, and need to switch to the modem/fax/voice DTE channel before attempting to enter fax mode. So, for the ZyXEL 2864i, set "ss=AT&O0". [AT and oh zero]

ds=ATDT
The ds= entry represents the dial string that will be used when BGFAX places an outgoing fax call. Other examples...

ds=ATM0DT Keep the modem speaker off always
ds=ATM2DT Keep the speaker on continuously

You may also have to put a flow control command into the ds= entry. See /HW in Command Line Parameters for more information.

dt=60
The dt= entry represents the time, in seconds, that BGFAX will wait for a fax connection to be established before it aborts the call attempt. If 60 seconds elapse, BGFAX will exit with an errorlevel of 1, or an errorlevel of 13 if in /ER mode.

mb=3
The mb= entry represents the number of times that BGFAX will attempt to call a "BUSY" phone number before aborting with an errorlevel of 1. This entry is ignored if /ER mode is set--only one call will be attempted.

sw=10
The sw= entry represents the time, in seconds, that BGFAX will wait after encountering a busy signal, before it attempts to redial. This entry is ignored if /ER mode is set--only one call will be attempted.

tc=ATHM
The tc= entry represents the string BGFAX will send to the modem after the fax session is complete. ATHM is sent to hang up the modem, and turn the modem speaker off. Some people may want tc=ATH1M to busy out the phone line.

fr=ACME, Inc. (713-555-1212)
The fr= entry represents your company or personal name. It can actually say anything you want. It is used in the fh= template for the top-of-page headers...

fh=To: %to21% From: %fr42% %mo2%/%dy2%/yr2% %hr2%:%mi2% Pg %pg2%/%bp2%
The fh= entry represents the template for the top-of-page fax header that is added to every outgoing page of text. Generally, this header includes information such as destination and origin phone numbers, date, time, current page number, maximum number of pages, etc. The above template would generate this result...

bgfax /send output.fax 555-1212
To: 555-1212              From: ACME Inc. (713-555-1212)                   08/16/95  14:26  Pg 01/05
If you want to "To" field to say something different...
bgfax /send output.fax 555-1212 /to:John_Doe,_Annex_Inc
To: John Doe, Annex Inc  From: ACME Inc. (713-555-1212)                   08/16/95  14:26  Pg 01/05
So, what do all those % things do? Here is the template dictionary:
%toNN% ...destination
%frNN% ...origin (the fr= line from BGFAX.CNF, or /FR: parameter.)
%moNN% ...current month
%dyNN% ...current day
%yrNN% ...current year
%hrNN% ...current hour
%miNN% ...current minute
%pgNN% ...current page number
%mpNN% ...current maximum page number
The NN represents the number of characters to pad each field. For the %to and %fr fields, they will be right padded with blank spaces. For all the other fields, they will be left padded with zeros.

Do not forget that only a maximum of 100 characters can be placed in the top-of- page headers.

Let's review...

fh=To: %to21% From: %fr42% %mo2%/%dy2%/yr2%  %hr2%:%mi2%  Pg %pg2%/%bp2%
To: 555-1212              From: ACME Inc. (713-555-1212)                   08/16/95  14:26  Pg 01/05
Notice how the destination phone number was right padded with spaces so that the field took exactly 21 characters, %to21%, and that the company name, ACME Inc. (713-555-1212) was right padded with exactly 42 characters, %fr42%. Also note other fields, such as the month, were left padded with zeros to two characters, with a zero.


Command Line Parameters


/SEND
The /SEND parameter must always be the first command line parameter. It is always followed by two additional parameters (fax filename and phone number).
bgfax /send output.fax 555-1212

/SEND:9600
Same as /SEND, except this limits the maximum transmission speed to 9600 bps. Valid speeds are 2400, 4800, 7200, 9600, 12000 and 14400. Many older fax modems are already limited to 9600.
bgfax /send:4800 output.fax 555-1212

/SP:nn
Forces BGFAX to transmit a fax beginning at page nn of the fax image file. So, if you have a 40 page fax, and want to send pages 37-40...
bgfax /send output.fax 555-1212 /sp:37

/QQ:nn
Tells BGFAX to only display a single line of text on the screen while it is sending the fax. This is so that your DOS application can keep its screen intact as it shells to BGFAX. The nn number represents the line number of the screen. /QQ:1 puts the status bar on the top of the screen. To put the status bar at the bottom...
bgfax /send output.fax 555-1212 /qq:25

/PID:nn
If this parameter is present, BGFAX assumes it is working in a multitasking operating system in which more than one BGFAX task or process may be running. The nn represents the Process ID number, and this PID number will be appended to any log files BGFAX uses. To force BGFAX to name its log file BGFAX2.LOG instead of BGFAX.LOG...
bgfax /send output.fax 555-1212 /pid:2

/FR:xxxx
This parameter overrides the fr= entry in the BGFAX.CNF file. Underscores must be used instead of spaces.

/TO:xxxx
This parameter is used to stuff the %toNN% fh= template. If not used, the template will be stuffed with the destination telephone number, as given on the command line. Underscores must be used instead of spaces. Examples...

          bgfax /send output.fax 555-4141 /fr:ACME,_Inc._Sales_Dept
          bgfax /send output.fax 555-4141 /to:John_Doe_XYZ,_Inc.
          bgfax /send output.fax 555-4141 /fr:John_Q._Public /to:John_Doe

          To: 555-4141              From: ACME Inc. Sales Dept                       08/16/95  14:26  Pg 01/05
          To: John Doe XYZ, Inc.    From: ACME Inc. (713-555-1212)                   08/16/95  14:26  Pg 01/05
          To: John Doe              From: John Q. Public                             08/16/95  14:26  Pg 01/05
/C1
Forces Class 2 modems to use Class 1. The modem must support Class 1.

/C2
Forces Class 2.0 modems to use Class 2. The modem must support Class 2.

/ER
Places BGFAX into extended results mode. This was extensively discussed in the Result Codes (Errorlevels) section.

/HW
Places BGFAX into hardware flow control (CTS handshaking) mode. BGFAX normally defaults to XON/XOFF software flow control, as that is what most fax modems support by default. If the /HW switch is used on a Class 2 modem, you may need to modify the ds= dial string entry from BGFAX.CNF. ds=AT&K3DT will usually work on most Rockwell based modems (&K3). For other modems, you will need to look up the command to force RTS/CTS flow control. Class 2.0 modems will not need the ds= adjusted if the /HW switch is used. Some Class 1 modems may need an adjustment, others may not. This switch is ignored in the OS/2 version.

/50
Places BGFAX into 50 line mode. You must have a VGA monitor and graphics card for this switch to function. This switch is ignored in the OS/2 version.

/ED
Places BGFAX into "European Date" mode. When BGFAX writes to the log files, all dates will be logged in DD-MM-YY format instead of the traditional American format of MM-DD-YY.

/NB
Places BGFAX into "No Banner" mode. Normally, BGFAX puts a top-of-page header on every page that is sent out. /NB will cause BGFAX to omit the top-of-page headers. The /NB switch should only be used in countries where this is legal. The United States and Canada do not permit anonymous faxes, so the /NB switch should never be used.

/NL
BGFAX normally creates a detailed log file (BGFAX.LOG), and if this command line parameter is used, it will no longer write the log file.

/SD
BGFAX normally creates a detailed log file (BGFAX.LOG), but if this command parameter is used, it will skip most of the debug information. This results in a much shorter log file, but still has enough data to get an idea of what is happening.

/MO
Forces BGFAX to use only monochrome (black-and-white) colors for people without color monitors.

/NM
Forces BGFAX to use "numeric mode" when talking to the modem in Class 1 mode. This might be needed if you are sending faxes from a US Robotics I-Modem (ISDN "modem"). Numeric mode puts the modem into "ATEQV" mode.

/SL:nnn
Add nn extra scan lines to the top of each page sent.
BGFAX /SEND file.fax 555-1212 /si:20
BGFAX will add 20 blank scan lines to the top of each page as it sends. Just adds extra white space, nothing special.

/CI:xxxxx
Check ID of remote machine before we send the document.
BGFAX /SEND file.fax 5079620 /ci:7_9620
BGFAX will dial the remote fax machine, and make sure that a "7 9620" appears somewhere in the remote fax ID. Note that underscores (_) are used to represent spaces. If /ER mode is active, if the Check ID fails, BGFAX /SEND will exit with errorlevel 18. If no /ER, if it fails, it will exit the standard error exit errorlevel 1. How is this useful? Well, say someone gets call forwarding on their fax line, and they have to forward their number to an alternate fax machine for a week while their fax machine is repaired. The remote fax machine is probably programmed with an alternate remote ID, and BGFAX /SEND will abort when it realized the remote ID does not match what it should, in the case that you need to send very confidential documents.

Compound Example

bgfax /send:9600 output.fax 555-1212 /qq:10 /c1 /sp:2 /ed /pid:44

BGFAX would send the file "OUTPUT.FAX" to 555-1212 with a maximum speed of 9600 bps. BGFAX will work in "quiet" mode--displaying status information on a single line (line number 10). BGFAX will force Class 1 mode, and it will start sending the fax at page number 2. BGFAX will log the results into the BGFAX44.LOG file and the dates will be in European format instead of American format.


Class 1 HDLC Frames


When BGFAX uses Class 1 mode, you will often see text on the screen which says "Receiving HDLC frame" or "Sending frame". The frames always have a three letter abbreviation. To help you understand what is happening, a very brief explanations follows...

NSF... Non-Standard Facilities
EOP... End Of Procedures
CSI... Called Subscriber Identification
TSI... Transmitter Station Identification
FTT... Failure To Train
MPS... Multi-Page Signal
DIS... Digital Identification Signal
DCS... Digital Command Signal
TCF... Training Check Frame
CFR... Confirmation to Receive
MCF... Message Confirmation
EOM... End Of Message
DCN... Disconnect Frame
DTC... Digital Transmit Command
CIG... Calling Subscriber Identification
CRP... Command Repeat

Class 2 Hangup Codes


     ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
     ³ 2.0   Class 2 ³  Cause Description                              ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ 00-0F     0-9 ³  CALL PLACEMENT AND TERMINATION                 ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ 00          0 ³  Normal and proper end of connection            ³
     ³ 01          1 ³  Ring Detect without successful handshake       ³
     ³ 02          2 ³  Call aborted, from +FK/+FKS or            ³
     ³ 03          3 ³  No Loop Current                                ³
     ³ 04      4,n/a ³  Ringback detected, no answer (timeout)         ³
     ³ 05        n/a ³  Ringback detected, answer without CED          ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ 10-1F   10-19 ³  TRANSMIT PHASE A & MISCELLANEOUS ERRORS        ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ 10         10 ³  Unspecified Phase A error                      ³
     ³ 11         11 ³  No Answer (T.30 T1 timeout)                    ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ 20-3F   20-39 ³  TRANSMIT PHASE B HANGUP CODES                  ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ 20         20 ³  Unspecified Transmit Phase B error             ³
     ³ 21         21 ³  Remote cannot receive or send                  ³
     ³ 22         22 ³  COMREC error in transmit Phase B               ³
     ³ 23         23 ³  COMREC invalid command received                ³
     ³ 24         24 ³  RSPEC error                                    ³
     ³ 25         25 ³  DCS sent three times without response          ³
     ³ 26         26 ³  DIS/DTC received 3 times; DCS not recognized   ³
     ³ 27         27 ³  Failure to train at 2400 bps or +FMS/          ³
     ³               ³                                  +FMINSP value  ³
     ³ 28         28 ³  RSPREC invalid response received               ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ 40-4F   40-49 ³  TRANSMIT PHASE C HANGUP CODES                  ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ 40         40 ³  Unspecified Transmit Phase C error             ³
     ³ 41        n/a ³  Unspecified Image format error                 ³
     ³ 42        n/a ³  Image conversion error                         ³
     ³ 43         43 ³  DTE to DCE data underflow                      ³
     ³ 44        n/a ³  Unrecognized Transparent data command          ³
     ³ 45        n/a ³  Image error, line length wrong                 ³
     ³ 46        n/a ³  Image error, page length wrong                 ³
     ³ 47        n/a ³  Image error, wrong compression code            ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ 50-6F   50-69 ³  TRANSMIT PHASE D HANGUP CODES                  ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ 50         50 ³  Unspecified Transmit Phase D error             ³
     ³ 51         51 ³  RSPREC error                                   ³
     ³ 52         52 ³  No response to MPS repeated 3 times            ³
     ³ 53         53 ³  Invalid response to MPS                        ³
     ³ 54         54 ³  No response to EOP repeated 3 times            ³
     ³ 55         55 ³  Invalid response to EOP                        ³
     ³ 56         56 ³  No response to EOM repeated 3 times            ³
     ³ 57         57 ³  Invalid response to EOM                        ³
     ³ 58         58 ³  Unable to continue after PIN or PIP            ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ 70-8F   70-89 ³  RECEIVE PHASE B HANGUP CODES                   ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ 70         70 ³  Unspecified Receive Phase B error              ³
     ³ 71         71 ³  RSPREC error   (before TCF??)                  ³
     ³ 72         72 ³  COMREC error   (after TCF??)                   ³
     ³ 73         73 ³  T.30 T2 timeout, expected page not received    ³
     ³ 74         74 ³  T.30 T1 timeout after EOM received             ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ 90-9F   90-99 ³  RECEIVE PHASE C HANGUP CODES                   ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ 90         90 ³  Unspecified Receive Phase C error              ³
     ³ 91         91 ³  Missing EOL after 5 seconds                    ³
     ³ n/a        92 ³  < Not assigned >           /--- Rockwell only  ³
     ³ 92 -Note-> 94 ³  Bad CRC or frame (ECM {or BFT} modes)          ³
     ³ 93         93 ³  DCE to DTE buffer overflow                     ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ A0-BF 100-119 ³  RECEIVE PHASE D HANGUP CODES                   ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ A0        100 ³  Unspecified Receive Phase D errors             ³
     ³ A1        101 ³  RSPREC invalid response received               ³
     ³ A2        102 ³  COMREC invalid response received               ³
     ³ A3        103 ³  Unable to continue after PIN or PIP            ³
     ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
     ³ C0-DF     n/a ³  RESERVED FOR FUTURE STANDARDIZATION            ³
     ³ E0-FF     n/a ³  RESERVED FOR MANUFACTURER SPECIFIC USE         ³
     ³ n/a   120-255 ³  RESERVED CODES                                 ³
     ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

Multitasking Warning


If you are trying to run the DOS version of BGFAX in a multitasking environment, such as Desqview, Windows, Windows for Workgroups, or OS/2, you may encounter problems transmitting the fax image. Many multitasking operating systems seem to muck up software based XON/XOFF flow control, which is critical for flawless fax transmission. If this happens, the remote fax machine may only receive a few lines of text, followed by "bar codes" and other such anomalies.

See the information regarding the /HW command. It may help in some cases, if you remember to change the dial string ds= setting so that CTS handshaking is activated.

If you are using OS/2, it is best to use the OS/2 version of BGFAX. However, if the DOS version must be used, in the DOS settings menu for the DOS window, select "SIO_Mode_XON/XOFF" and change it to "Received XON is flow control".

I am uncertain as to whether Microsoft Windows or WFWG has an equivalent setting.

If BGFAX is running under DesqView, in some cases, changing the "Optimize Communications" setting (in DV's configuration) to "YES" improved things.

Class 1 modems require precise timing during fax transmission, and sometimes will fail under heavy-duty multitasking loads.


Technical Support


Because this is a free product as of the year 2000, no official technical support is offered.