💾 Archived View for gemini.spam.works › mirrors › textfiles › computers › DOCUMENTATION › bgfax.doc captured on 2022-07-16 at 23:34:42.

View Raw

More Information

⬅️ Previous capture (2022-06-12)

-=-=-=-=-=-=-



               Voice              B.J. Guillot            Data/Fax
            713.893.9320      2611 Rushwood Circle      713.893.9124
                            Houston Texas 77067-1941

             Copyright (C) 1993 B.J. Guillot.  All Rights Reserved.

         =============================================================
         BGFAX 1.09                                      WED 22 DEC 93
         =============================================================

                         Dedicated to Gene Roddenberry
                                  1921-1991

         -------------------------------------------------------------
         ABSTRACT                                  FidoNet 1:106/400.0
         -------------------------------------------------------------

         BGFAX allows SYSOPs to accept faxes on their BBS line.  BGFAX can
         also send faxes.  (While BGFAX was originally designed just for
         sysops, it can also be used by Mr. Joe User who, like me, hates
         TSR based fax programs that all the commerical fax software
         developers love for some reason.)

         BGFAX is a tool designed for use with *ANY* Class 2 compliant fax
         modem.  The fax modem must also support fully functional ADAPTIVE
         ANSWERING.

         Common Class 2 fax modems include the Supra, Practical Peripherials
         (may require purchase of a newer ROM revision if you are using an
         older model), Zoom, etc.

         BGFAX also directly supports ZyXEL fax mode.  (AT#B1+FCLASS=6).

         BGFAX will *NOT* function with Class 1 *ONLY* fax modems.  Common
         Class 1 *ONLY* fax modems include all non-v.32terbo USR fax modems,
         Digicom Scouts, the AT&T Dataport, and the SupraLC.

         BGFAX can be used in FOUR distinct modes.

         FRONTEND MODE ... BGFAX will answer the telephone line ITSELF,
                           handle events, pass data calls to a front end
                           compatible BBS, and take fax calls.

         REAR END MODE ... BGFAX will be called from another program when
                           an incoming fax is detected.  FidoNet sysops
                           using front end mailers such as FrontDoor,
                           Intermail, D'Bridge, Dutchie, etc. are required
                           to use this mode.  The mailer must support the
                           ability to exit to BGFAX when a fax is coming.

         SEND MODE ....... BGFAX has the ability to send faxes to another
                           fax machine.  (At this time, the file to be sent
                           must already be in converted fax format.)

         INITIALIZATION .. BGFAX will only initialize the modem, and then
                           quit.  This mode is provided for people who need
                           to use BGFAX in rear end mode, but their Fido
                           mailer (or BBS software) will not allow the long
                           initialization strings required for fax usage.

         -------------------------------------------------------------
         INCLUDED FILES
         -------------------------------------------------------------

         1.    BGFAX.DOC -- general documentation

         2.    BGFAX.TXT -- release notes

         3.    BGFAX.EXE -- the main executable

         4.    BGFAX.CNF -- default configuration file, not required
                            if you plan on using only rear end mode

         5.   HELPME.ARJ -- specialized help files for various setups

         6. REGISTER.FRM -- registration form

         -------------------------------------------------------------
         DISCLAIMER
         -------------------------------------------------------------

         BGFAX and accompanying files are provided AS IS without any
         warranty, expressed or implied.  This includes without limitation
         the fitfulness for a particular purpose or application and any
         warranties of merchantability.

         While I tried to be as through as possible in preparing BGFAX,
         B.J. Guillot shall not be liable for any damages, whether direct,
         indirect, special, incidental or consequential arising from a
         failure of this program or accompanying files to operate in a
         manner desired by the user.  B.J. Guillot shall not be liable for
         any damage to data or property which may by caused directly or
         indirectly by use of this program.

         In no event will B.J. Guillot be liable to you for any damages,
         including any lost profits, lost savings or other incidental or
         consequential damages arising out of your use or inability to use
         the program, or for any claim by any other party.  Individuals using
         the software bear all risk as to its quality and performance.
  
         -------------------------------------------------------------
         CONTACTING ME
         -------------------------------------------------------------

          FidoNet:  1:106/400                   Voice: +1 713.893.9320
         InterNet:  st1r8@jetson.uh.edu      Data/Fax: +1 713.893.9124

         The latest versions of BGFAX can be obtained by Fido FREQ at the
         above Fido node number with the magic name "BGFAX" and can be
         obtained by anonymous FTP for InterNet users at the site
         "uhdux2.dt.uh.edu" in the "/incoming" directory.

         BGFAX can also be obtained from Fido 2:512/39.  This system is
         called The Owl's Nest and is the Dutch Supra Distributor.  They
         have three nodes:

         +31 0.2155.10921      +31 0.2155.12571      +31 0.2155.28096
 
         An alternate distribution site is Fido 3:635/552.  Cloud Nine.

         +61-3-803-6954

         -------------------------------------------------------------
         MISCELLANEOUS NOTES
         -------------------------------------------------------------

         BGFAX takes the fax call itself.  It does *NOT* require any special
         TSR drivers to be used and does *NOT* pass control to another fax
         program to receive the fax.

         ...HOWEVER... You *WILL* need some type of external fax program to
         VIEW and PRINT the received fax.  BGFAX currently supports two
         popular fax formats.  Smith Micro Software's Quick Link II, which
         is included with several faxmodems, and ZyXEL's ZFAX software.
         (ZFAX will not function on a normal Class 2 faxmodem, but it will
         allow you to view and print BGFAX faxes stored in ZFAX format.)
         If anyone can get me the formats for other popular packages, I
         will gladly add them to BGFAX if its not too much trouble.  A
         number of people have requested WinFax format, but I can't find
         any information on Delrina's WinFax file format.

         PLEASE NOTE: BGFAX does not need nor use a FOSSIL driver.  BGFAX
         has internal communication support for all UART types including
         the 16550A FIFO chip.  BGFAX assumes ...

         COM1=3F8x4     COM2=2F8x3     COM3=3E8x4     COM4=2E8x3

         If you are using a nonstandard port configuration, whenever BGFAX
         requires a port number to be entered (such as po=2), instead of
         entering the port number, enter the base address and IRQ seperated
         by an 'x' character (such as po=2E8x5).  BGFAX requires the base
         address be given in hexidecimal notation.

         If you are using a ZyXEL modem, whenever you specify the com port
         for BGFAX, you will need to put an exclamation point, !, i.e.,
         po=2! so that BGFAX will not attempt to relock the DTE.  Most
         modems work fine without the !, but remember this option is
         available.  I've also heard that the Zoom VFP Internal Fax Modem
         may also require this ! option.

         BGFAX supports Desqview's alternate video buffer zone, if used, and
         will return ticks to other tasks.

         This program was compiled under Borland's Turbo Pascal 7.0.

         I do all testing with a Supra Fax Modem (ROCKWELL based) v.32bis
         external with V1.80-02 firmware and FrontDoor 2.02/NC running on
         a 386DX/40.  I also routinely test BGFAX with a generic no-namer
         2400 data, 9600 send/receive fax (SIERRA based) modem from Computer
         City running on the ever-so-slow 286/8.

         -------------------------------------------------------------
         QUICK TUTORIAL ON SOME FAX CLASS 2 COMMANDS
         -------------------------------------------------------------

         AT+FCLASS=?
         ===========
         This command will allow you to see if your fax modem supports
         the "unofficial" Fax Class 2 standard.  The modem should report
         back a string similar to:

         0,1,2   or   0,2   or   0,1,2.0   or   ERROR

             0 = Data
             1 = Fax Class 1 capable
             2 = Draft Fax Class 2 "compatible"
           2.0 = Fax Class 2.0 capable
         ERROR = no fax capabilities

         Do *NOT* use the "AT+FCLASS=n" command in any of your intialization
         strings.  (Unless you are using Class 2.0).

         GROUP III and CLASS 2
         =====================

         Many people are often confused between the terminology "GROUP" and
         "CLASS" regarding fax modems.

         ALL FAX EQUIPMENT is "GROUP 3" compatible.  This includes fax
         machines, fax modems, standalone PC fax cards, etc.  Group 3 just
         defines the fax specifications, e.g., black-and-white, the
         resolutions, etc.  When Group 4 fax machines are available to
         consumers, they will offer color and/or ISDN fax capabilities, but
         our fax modems will still only do black-and-white.

         "CLASS" refers only to fax modems.  CLASS has NOTHING AT ALL to do
         with fax machines.  Class 1, Class 2 and Class 2.0 are different
         methods of sending commands to a fax modem from a computer serial
         port.  Many fax modems offer the Class 2 command set.

         AT+FAA=1
         ========
         This command will put your modem in ADAPTIVE ANSWERING mode.  This
         means your modem will properly mate with either a standard modem
         data call or a fax machine/fax modem.  Some modems, such as the
         Supra, will report a "FAX" response the instant a fax CNG tone is
         heard from the remote end.  Some modems are brain dead and will
         report "FAX" whenever an "ATA" command is issued to the modem
         regardless of whether the incoming fax is data or fax.

         All modems, on true fax calls, will report a "+FCON" response code
         when the fax connection is truly established.  (This is similar to
         a "CONNECT 14400" on a data call.)

         Many modems are slightly brain dead and will forget the +FAA
         setting when another command is issued to the modem.  To ensure
         you always answer in adaptive mode, rather than using "ATA" to
         answer the phone, use the following: "AT+FAA=1;A".

         The ";", semicolon, is used as a seperator for fax commands.  Some
         modems, such as the Supra, do not require it.  Others, such as the
         PPI, will "ERROR" out if the semicolons are not used.

         A final note about adaptive answering: IT IS NOT 100% ACCURATE.

         Every now and then, your modem may get confused and think a data
         call is a fax call.  There is nothing I can do about this as it is
         most likely a firmware problem with the modem.  Some modems are
         very brain dead and allow low speed data callers to call the BBS,
         but all high speed callers are treated like they are fax machines.
         (That is NOT GOOD.)  The only way to cure this is get a ROM chip
         upgrade to the modem, if a newer version exists.  You'll just have
         to experiment and make sure your adaptive answer works about
         95% of the time, or whatever you decide is good.

         The Supra Fax Modem, for example, is pretty good concerning
         adaptive answering.  (Note that very earlier versions of the
         Supra, did not offer adaptive answering until the 1.2-H and 1.2-J
         ROMs appeared on the scene.)  However, many older fax machines do
         not send out a CNG tone when they are engaged.  Many fax modems,
         including the Supra, won't know what to do, and will assume the
         old fax machine is really a data caller.  Again, this is not good,
         but its not that much of a problem.  Tell the operator of the old
         fax machine to push their "START" button *IMMEDIATELY* after dialing
         the last digit of the telephone number instead of waiting to hear
         the fax tones on our end like many office people do.

         AT+FCR=1
         ========
         As silly as this command may sound, it gives permission to your
         fax modem the ability to accept fax calls.  The fax modems default
         to *NOT* allow incoming fax calls (EVEN IF ADAPTIVE ANSWERING IS
         ENABLED!)  So, just make sure +FCR is always equal to 1.

         AT+FLID="713 893 9124"
         ======================
         ( The Class 2.0 command is AT+FLI )

         The above command sets your modems fax ID string.  This is the
         string that is send to the remote end on fax connects.  (It's the
         deal that's printed on the little 'confirmation reports' that many
         fax machines make.)  The fax ID can ONLY BE A MAXIMUM OF *20*
         CHARACTERS.  If you try to stuff more than 20 characters in a fax
         ID string, the modem will respond with an "ERROR".  DO NOT USE
         HIGH-BIT ASCII CHARACTERS IN THIS STRING.  Use only simple
         letters, numbers, and punctuation marks.  (High-bit ASCII
         characters include foreign accented letters, inverted question
         marks, etc.)

         I've been told that some older fax machines will go nuts if you
         use a fax ID with ALPHABETIC letters and that the only true valid
         values, as specified by the CCITT (PLUS, SPACE, DASH, and the
         numbers ZERO through NINE).  I've never seen this happen
         personally, but am informing you of it nevertheless.

         AT+FDCC=1,5,0,2,0,0,0,0
         =======================

         The above command is what the power on defaults to a 14400 fax
         modem are, with one exception.  The first number, 1, allows your
         fax modem to accept high resolution fax documents.  The power on
         default to most modems are to accept only low resolution
         documents.  The second number, 5, allows your fax modem to use fax
         speeds up to 14400 bps.

         If you issue the above command on a fax modem with an upper limit
         of 9600 on fax tranmissions, you will receive an "ERROR" or cause
         the modem to behave odd.  Use this string on a 9600 fax modem:

         AT+FDCC=1,3,0,2,0,0,0,0

         The remaining numbers are not that important.  Changing them
         around, though, may cause BGFAX to fail.  The command can also be
         abbreviated to "AT+FDCC=1,5" or "AT+FDCC=1,3".

         STACKING
         ========
         A single command string can be made using what we need ...

         AT+FAA=1;+FCR=1;+FLID="713 893 9124";+FDCC=1,5,0,2,0,0,0,0

         However, if you are using BGFAX in rear end mode with a Fido
         mailer, you may have a hard time of making an initialization
         string that long, so you may be required to split the line into a
         few pieces.  Remeber to make your ATA command "AT+FAA=1;A" if it
         is possible to change in your mailer.

         AT+FMFR?
         ========
         ( The Class 2.0 command is AT+FMI? )

         If you want to find out who makes the fax datapump for your modem,
         this command should tell you if you enter it in while in terminal
         mode.  My Supra (and many others) report "ROCKWELL".  My Cheap
         2400 data, 9600 S/R fax modem reports "SIERRA".  Others report
         "EXAR" and other things as well.

         FAX MODE
         ========

         Probably 95% of you will be using BGFAX with a high speed modem
         (v.32 or v.32bis).  Many of you may have started off with slower
         300, 1200, or 2400 modems from long ago.  If you can remember back
         that far, when an incoming data call came in, you would see a
         string like "CONNECT 1200".  If your port was set at 2400, you
         would garbage on the screen unless you shifted your bps rate down
         to 1200 to match that of the caller.  Many newer terminal programs
         refer to this speed shift as "Autobaud".

         Modern modems require your serial port be locked at a specific
         speed (such as 19200, 38400, 57600, etc.) so that you can achieve
         higher thruput via compression engines such as MNP and v.42bis.
         The modem-to-modem speed may only be 14400, but the modem-to-
         computer speed stays "locked" at 38400.  Autobaud is not required,
         and if used, would result is garbage on the screen.

         Why am I telling you all this?  Well, I don't know who's silly
         idea it was, but the powers that be decided that fax modems should
         use the ancient method of changing the port rate when a fax is
         incoming or outgoing.

         After your modem reports the result code "+FCON" all further
         communications *MUST* be done at 19200 bps, even if you are locked
         at 38400 or 57600.  If the port speed is not relocked at 19200,
         nothing but garbage will come on the screen.

         I'm telling you this because I frequently get mail asking me why
         I'm changing the port speed to 19200.  It's not my fault!  That's
         the way is has to be done!  The only modem that I know that does
         not require this idiotic speed shift is the ZyXEL modem.  In fact,
         a special option must be used to tell BGFAX you are using a ZyXEL
         or BGFAX will fail as it will try talking to the ZyXEL modem at
         19200 instead of 57600 or whatever rate it's locked at.

         -------------------------------------------------------------
         FRONTEND MODE
         -------------------------------------------------------------

         To use BGFAX in front end mode, you say "BGFAX /HOST".

         If you plan on using BGFAX in Frontend mode, you need to do a
         couple of things first.

         1. An evironment variable called BGFAX needs to be inserted in
            your AUTOEXEC.BAT or someother batch file.  Example:

            SET BGFAX=C:\BGFAX

            This environment variable points to the location of your BGFAX
            configuration file and the directory where faxes will be
            received into.

         2. Make sure the BGFAX.CNF configuration file is in the directory
            pointed to by the BGFAX environment variable and make any
            changes you think necessary.  The included configuration file
            is self explantory.  I won't repeat the format here.

         3. BGFAX can exit with 5 possible errorlevels:

               5 - fax was sent successfully
               4 - fax was received
               3 - local logon
               2 - data call
               1 - restart batch file

            If no errorlevel is encountered, it means the sysop aborted
            BGFAX by pressing the [Esc] key or a serious error occurred.

         4. When BGFAX is waiting for a call, pressing Ctrl-R will reset
            the on screen counters.  Ctrl-A will force BGFAX to send the
            answer string to the modem.

         5. When a data call comes in, BGFAX creates a DOBBS.BAT file that
            looks like so:

            C:\BGFAX\EXEBBS.BAT 9600 1 528 /ARQ
            
            The first parameter is the DCE data speed, then the com port,
            number of minutes until the next event, and then the error
            correcting string, if any.  The EXEBBS.BAT file must be created
            by you so that your bulletin board software is loaded up in
            frontend mode (ie., the data connection is already hot.)  When
            you speed to specify the DCE rate in your EXEBBS.BAT file use
            the variable %1 and the com port is %2, etc.

         -------------------------------------------------------------
         SEND FAX MODE
         -------------------------------------------------------------

         If you wish to have BGFAX send a fax file that it has received to
         another fax number or send a fax file that has already been
         converted by Quick Link II or ZFAX.

            BGFAX /SEND FAX0001.ZFX 893-9124

         See the BGFAX.CNF file for more info, such as maximum amount of
         busy signals and failures before exit, etc.

         At this time, only previously converted fax files can be sent.
         (i.e., ASCII files have to be translated to ZFAX .FAX format or
         QLII .QFX format.)

         BGFAX will exit with an errorlevel of 1 if the fax was not
         successfully sent, or errorlevel 5 if everything worked okay.

         -------------------------------------------------------------
         INITIALIZATION MODE
         -------------------------------------------------------------

         If you want BGFAX just to initialize the modem, you can have it do
         so with the BGFAX /INIT parameter.  BGFAX will get the port,
         speed, and initialization strings from the BGFAX.CNF file in the
         directory specified by the BGFAX environment variable.

         This mode is provided for people who need to use BGFAX in rear end
         mode, but their Fido mailers (or BBS software) do not allow them
         to use the long initialization strings required for fax usage.

         -------------------------------------------------------------
         REAR END MODE (FIDO MAILERS, ETC.)
         -------------------------------------------------------------

         Rear end mode is useful for those of us who are FidoNet members
         where a Fido mailer is required to be running 24 hours a day.  It
         will be your job to figure out how to get your mailer to exit to
         BGFAX when your modem informs the mailer a fax call is coming
         through.  (See the BGFAX.HLP file for hints on specific mailers.)

         First of all, though, you need to discover what string your modem
         sends when it has reliably mated with an incoming fax.  My Supra
         Fax Modem for example returns "FAX".  All modems eventually report
         "+FCON".  In my opinion, it is better to trigger your mailer to
         exit on "FAX" *IF* your faxmodem supports it.  I've heard about
         some brain dead modems to report "FAX" whenever an "ATA" is sent
         to the modem.  If your modem does that, do *NOT* use "FAX" as the
         trigger string in your mailer.

         Why is it better to use "FAX" as a trigger string?  My Supra
         reports "FAX" as soon as it hears the CNG tone from the remote fax
         device.  It takes about 1.5 seconds or so for the fax machine and
         my Supra to mate, which gives BGFAX plenty and plenty of time to
         load up and take the fax, even on slow computers.  (It should be
         noted that your mailer must exit *IMMEDIATELY* upon receipt of the
         fax trigger string, because after those 1.5 seconds, if the remote
         fax machine cannot mate, it will hangup!)

         For those whose modems do not report "FAX", you will have to use
         the "+FCON" string as the trigger string.  One downside to this is
         that it makes timing much more critical and you will probably miss
         your chance of obtaining the remote fax ID string.

         Your mailer should run BGFAX as soon as the trigger string comes
         in the port.  It should call BGFAX in the following manner:

         BGFAX /how [faxpath port faxtype [pid]]

         FAXPATH will be the directory where incoming faxes are to be
         placed.  PORT is a valid communications port from 1 to 4, or,
         optionally, a hexidecial base address and IRQ formatted as
         followed "3F8x5".  Also, optionally, if the port has a bang, !,
         following it, it will force the port to stay locked at the current
         speed rather than shifting to 19200 on fax connects.  (THIS '!' IS
         TO BE USED ONLY FOR ZYXEL MODEMS, OR FOR PEOPLE THAT REALLY KNOW
         WHAT THEY ARE DOING.)  FAXTYPE is a single character 'Z' or 'Q'.
         'Z' for ZyXEL ZFAX format, 'Q' for Smith Micro Software's Quick
         Link II fax format.

         The /how deal is the most critical switch.  There are three
         possible settings.

              /FAX   ... Modem reports "FAX" or "CONNECT FAX".
                         BGFAX will automatically detect whether it should
                         use Class 2 (Supra, Zoom) or the ZyXEL fax mode
                         based on the next message (ie, "+FCON" or "ZyXEL").

              /FAST  ... Modem reports "+FCON" (PPI, other Class 2 modems)
              /FCON  ... Try this option if /FAST doens't work.

              /FCO   ... Modem reports "+FCO" (USR 21.6K)
              /FCOS  ... Try this option if /FCO doesn't work.

              /FZYX  ... ZyXEL owners use this if /FAX doesn't work.

         Here is a schematic of how each option behaves:

              /FAX [ Supra, ZyXEL, i.e. all modems that report "FAX" ]
                1. keeps port at locked DTE
                2. waits for "+FCON"     _or_  2. waits for "ZyXEL"
                3. drops port to 19200         3. waits for high CTS
                4. waits for "OK"              4. sends <DC2>
                5. sends "AT+FDR"

              /FAST [ PPI, i.e. all modems that report "+FCON" ]
                1. drops port to 19200
                2. waits for "OK"
                3. sends "AT+FDR"

              /FCON [ PPI, use this if above options don't work ]
                1. drops port to 19200
                2. blindly sends "AT+FDR"

              /FCO  [ USR, i.e. all Class 2.0 modems that report "+FCO" ]
                1. keeps port at locked DTE
                2. waits for "OK"
                3. drops port to 19200 _only if_ DTE rate is 38400
                   (leaves port alone if set at 19200, 57600 or 115200)
                4. sends "AT+FDR"

              /FCOS [ USR, i.e. all Class 2.0 modems that report "+FCO" ]
                1. drops port to 19200 _only if_ DTE rate is 38400
                   (leaves port alone if set at 19200, 57600 or 115200)
                2. blindly sends "AT+FDR"

              /FZYX  [ ZyXEL, use this only if /FAX doesn't work ]
                1. waits for high CTS
                2. sends <DC2>

         When a fax is inbound, I call BGFAX in rearend mode with the
         following command line for my Supra:

              BGFAX /FAX C:\BGFAX 1 Z

         The /FAX means that I used the modem response "FAX" as a trigger
         for FD (see BGFAX.HLP for more details), C:\BGFAX is the path
         where I want all faxes to be stored, "1" is the communications
         port, and the "Z" represents I want faxes saved in ZyXEL's ZFAX
         image format.

         If you want to run BGFAX on a multinode system, an optional fifth
         parameter can be used.  This fifth parameter can be up to three
         characters and it is called the PID.  Example:

              BGFAX /FAX C:\BGFAX 1 Z 99

         The only difference between the command above and the previous one
         is that rather than making a BGFAX.LOG, all log entries will be
         written to a file called BGFAXpid.LOG, in this case, BGFAX99.LOG.

         -------------------------------------------------------------
         AFTER YOU RECEIVE THE FAX
         -------------------------------------------------------------

         NAMING CONVENTION
         =================
         The name of the fax file will be FAXnnnn.xFX where "nnnn" is a
         number that is padded with zeros and "x" is the letter "Z" or "Q"
         depending upon which fax format you save the file in.  If you ever
         see a BGFAX.TMP file in your directory, it should *NOT* be there,
         as it should have been renamed in the FAXnnnn.xFX format.  If it
         is there, it means some kind of problem happened during the fax
         reception.

         FAXIN.LOG
         =========
         BGFAX creates a BGFAX.LOG file that contains a bunch of
         information that is mainly only for debug purposes.  A much
         cleaner log file is called FAXIN.LOG and looks like this:

Date  Time  ET    Bytes   Rate  Filename     Remote Fax ID        Pgs  Notes
-------------------------------------------------------------------------------
12-21 11:52 00:42   18183  9600*FAX0001.ZFX  Unknown                2  Finished
12-21 18:04 00:38   18182  9600 FAX0002.ZFX  Unknown                2  Not Done
12-22 21:30 00:29   17793 14400*FAX0003.ZFX  7138939124             1  Finished
12-22 21:42 00:29   17541 14400 FAX0004.ZFX  TRANQUILITY BASE       1  Finished
12-23 06:44 00:32   16941  9600*FAX0005.ZFX  Null ID Received       1  Finished
12-25 17:21 01:22  107392 14400*FAX0006.ZFX  7132424708             1  Finished

         The asterick between the fax DCE rate and the filename indicates
         the fax was marked as high resolution.  "Not Done" under Notes
         means that BGFAX believed more pages were to have followed, but
         were not actually received.  "ET" is estimated time.  Everything
         else is self explanatory.

         DOPRINT.BAT
         ===========
         After you successfully receive a fax, BGFAX will exit with an
         errorlevel of 4 and append (or create) a DOPRINT.BAT file.

         CALL C:\BGFAX\EXEPRINT.BAT C:\BGFAX\FAX0085.ZFX
         CALL C:\BGFAX\EXEPRINT.BAT C:\BGFAX\FAX0086.ZFX

         You do not have to do anything with this at all, but it is
         provided for those of you who wish to print faxes as they are
         received.  It will call the EXEPRINT.BAT file and pass it the
         parameter with the path and name of the fax file that was just
         received.  If you are using Smith Micro Software's Quick Link II,
         for example, and are one of those people that leave your printer
         on 24 hours a day, your EXEPRINT.BAT file might contain this:

         @echo off
         printfax %bgfax%\%1 24pin.qlp

         Remeber to delete the DOPRINT.BAT file after you process it.

         -------------------------------------------------------------
         HANGUP STATUS CODES
         -------------------------------------------------------------

         When BGFAX reports "Problematic fax reception", it will indicate a
         fax hangup code, such as [+FHNG: 73].  This chart, taken from the
         Supra CLASS_2.TXT fax command set documentation (which, I believe
         was taken from the Rockwell Class 2 documentation), allows you to
         match up the +FHNG message with its true meaning.  For example,
         +FHNG: 73 would indicate "T.30 T2 timeout, expected page not
         received", which really does not say much, but it may give you
         some clue.  I don't know what most of these mean myself, so I
         don't know whether it will provide you any luck or not, but, many
         people asked that it be included, so here it is.

     /-----------------------------------------------------------------\
     | 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 <CAN>           |
     | 03          3 |  No Loop Current                                |
     | 04        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                                   |
     | 72         72 |  COMREC error                                   |
     | 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 |  REVERVED FOR MANUFACTURER SPECIFIC USE         |
     | n/a   120-255 |  RESERVED CODES                                 |
     \-----------------------------------------------------------------/
 
         -------------------------------------------------------------
         ACKNOWLEDGEMENTS
         -------------------------------------------------------------

         I would like to thank the following people for their assistance
         during the beta test phase.

         Bill Huther
         Brian Wood
         Russell Kroll
         Ethan Brofman
         Ed Lucas
         ...and many people from the InterNet and FidoNet.

         -------------------------------------------------------------
         SHAREWARE
         -------------------------------------------------------------

         THIS PROGRAM IS SHAREWARE.

         If you use this program for more than four weeks you are required
         to register it for its low cost of only $25 US DOLLARS.

         Registrations encourage frequent updates.

         If you are paying by check or money order, please print out the
         REGISTER.FRM file, fill it out, and mail it to my address.

         If you are paying by credit card (Visa, Mastercard, Discover or
         American Express) you can (1) mail the form to me, (2) fax the
         form to me, (3) netmail the form to me, or (4) call my BBS and
         open door #6 and instantly register.

         All people will have to call my BBS and open door #6 to pick up
         the BGFAX.KEY registration key file.

         I will mail (or air mail) registration letters out.

         -------------------------------------------------------------

         Regards,
         B.J. Guillot