BT-Fax is (c) 1993, Bo Andersson and distributed as FREEWARE This program may be used and distributed freely on a non-profit basis. It may be distributed freely on BBS's as long as users wishing to download it may do so without any ridiculous 1:2 ratio being imposed. The author accepts no responsibility for damage or loss of data caused by use of the program. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- *** Description of BT-Fax v.0.99 *** BT-Fax is a Class 2 module for the reception of fax pages in conjunction with a mailer (front-end) program. The text format is primarily intended for use with BinkleyTerm. The only requirement for the 'mailer' program is that it must recognize faxes (+FCON) and be able to hand over to another program. BT-Fax is Class 2 command compatible and works with any modem capable of handling class 2. Even Zyxel modems function with BT-Fax. *** Program changes v.0.97 -> v.0.98 *** - Can write NetMail after Fax (successful/unsuccessful). - Can save directly in STraightFax format. - Elapsed time is correctly calculated. This despite the fact that no one has pointed out the fact that time could be shown as 00:02:64. :-D - Shows how a page ended when in QFax mode. - Strips fill bits resulting in smaller fax pages. *** Program changes v.0.98 -> v.0.99 *** - Saving in STraightFax format has been improved. It sometimes happened that fill bits were inserted at the beginning of each fax page. STFax couldn't handle these and, as a result, only a blank page would be displayed. Neither BTFaxCvt nor STFaxFix need longer be used in order to view pages in STraightFax format. This, of course, assumes the use of -s. - The amount of remaining space on the relevant partition is now shown correctly even when you're using more than 2 sectors per cluster. - A couple of minor bugs have been removed. *** Commands *** The commands which can be sent to the program are: -p -p:\path\ Search path to the directory in which incoming faxes are to be saved. If no search path is indicated the pages will be saved to the current path (normally where Binkley is stored). -d -d500 Disk space in kB, default is 300kB. Sets the minimum remaining disk space necessary to start/continue reception after saving each page. Keep in mind that the space remaining on the hard drive may be less than the value entered here after the previous page has been saved. -q Qfax Writes, as does QFax, TM-Fax in the header for each page. QFax doesn't bother with it, but newer versions of the Hackfax viewer require it's presence. -s STraightFax Saves pages directly in StraightFax format (STFax). -m Mail Letters written to a NetMail area will contain the same info as that used in the BTFax logfile. -n NoLog Do NOT write to the Log file. If this command isn't used the log will be written to BINKFAX.LOG using the same search path as the log file for BINKLEY.CFG. -b BitStripOff Normally BT-Fax "strips" fill bits. If this should lead to problems, using -b turns the function off. "Empty" bytes ARE removed but EOL (End of Line) bits are ignored. This does NOT work in STFax mode which requires the fill bits to be stripped. -t Test Nothing is "stripped" at all. The fax page is saved exactly as it's received which means that it takes up more space on your hard disk. This command should, in principle, *NEVER* be used! Neither the order in which these switches are set nor the use of upper or lower case letters is of any importance. The commands can be written with or without the use of spaces. It should be noted that if -s (STFax) is used BT-Fax will ignore the presence of -q, -b or -t on the command line. This due to the fact that STFax must be able to calculate EOL bits in order to display the fax. If both -b and -t are used, the last one entered on the command line is the active one. Incoming faxes are given the file name month-day-hour-min.format-nr: QFax.format becomes mmddhhmm.Fnr and STFax-format becomes mmddhhmm.Jnr. If QFax format is being used one of the following will be included in the Info box: RTC OK The fax page has ended correctly. If anything is missing it's because the fax sender didn't send it! :-D Buff.Full The fax page is larger than 200kB. I've never seen such a page, so if anyone should ever get one I'd like a look at it!! TimeOut C TimeOut in phase C, reception of fax data. Happens if, for instance, the connection should be broken. When -m is used, the following information is taken from BINKLEY.CFG (If BinkleyTerm isn't being used you put a configuration file named BINKLEY.CFG in the same folder as the 'mailer' program and BT-Fax): Sysop Bo Andersson Address 90:1101/113.0@nest Statuslog d:\logfiles\binkley.log NetMail d:\mail\0001 The keyword Fax must also be included in BINKLEY.CFG: Fax d:\binkley\btfax098.ttp -pD:\FAX_IN\ -d500 -s -m saves fax pages to D:\FAX_IN\ in STraightFax format and writes a NetMail. Beginning with v. 3.10-b2, Binkley ST uses a new keyword: Afterfax + program name which is run directly after either the built-in or a separate fax reception module. *** Modem strings *** An init string which seems to work well for most sysops is: Init ATZ|~AT+FAA=1+FLID="YOUR_ID"| Answer AT+FDCC=1,3,0,2,0,0,0,0;+FCR=1|~ATA| Longer init strings than this can be used beginning with Binkley v.3.10a-b3. If you use a shortened FDCC string (for example FDCC=1,3,0,2) you can put everything in init and only have ATA| in the answer string. This allows you to avoid "Ring - OK" every time Binkley answers. +FAA=1 sets the modem to answer as either Data or FAX (Adaptive Answer). The modem then passes on CONNECT xxx (Data) or +FCON (FAX) to Binkley. On Data, Binkley is used as usual and on FAX it turns over to BT-Fax. +FCLASS=x should NOT be used as it locks the modem in EITHER Data OR Fax mode. +FLID is your local ID string. This string is displayed to the person sending to you and can be your telephone number or BBS name. FLID may contain up to 20 characters. You can see how many and which characters your modem can handle by writing AT+FLID=? (from the comms program). If the value returned is (for example): (20) (32-127), it means that a maximum of 20 characters, all of which lie within ASCII range 32-127, may be used. Keep in mind that most modems filter out empty characters (space). +FDCC (DCE Capabilities Parameters) reports what your modem can handle to the sender. The syntax is: FDCC:VR,BR,WD,LN,DF,EC,BF,ST (see Table 1) and should be FDCC:1,3,0,2,0,0,0,0. It's usually enough if you give your resolution and speed: FDCC:1,3 (196 lpi, 9600 bps). If you use FDCC:1,5 (196 lpi, 14400 bps) problems MAY occur. These usually appear in the form of the page being "forced" to 98 lpi or that you get CONNECT at 7200 bps. When changing FDCC, the value should be copied to FDIS. Supra owners have, however, tried using FDIS directly, instead of FDCC and achieved better results. You'll have to experiment a little to see what works best with your own modem. +FCR=1 means that you modem is ready to receive fax pages. FCR=0 would then indicate that you're out of paper. :-) *** The Screen *** This is approximately how BT-Fax will look on your screen: ____________________________________________________________________________ | Transmit Station ID: Free diskspace: 1234 kB | | VR: BR: WD: LN: | | DF: EC: BF: ST: | | FPTS: FET: | | Modem in: Modem out: Page nr: FHNG: -- | | Path M:\ | |____________________________________________________________________________| BT-Fax 0.99 by Bo Andersson 2:203/203.5 and Bertil Jagard 2:203/221.0 FreeWare Transmit Station ID: if it's missing. The sender hasn't sent an FTSI. Unknown The sender has sent an empty FTSI (1-20 spaces). string The sender's FTSI (usually a telephone number). Free disk space: --- kB The amount of free space on the partition where incoming faxes are saved. VR:,BR:,WD:,LN:,DF:,EC:,BF:,ST: See Table 1 for information. FPTS: (Receive Page Transfer Status) Seems to be relatively unused. Most Fax modems seem to have their own "standard" answers. Maybe the problem will be solved in future ROM uppgrades? FET: (Post Page Message Response) This doesn't seem to be completely developed either. Despite all the faxes which have been received, only 2 values have been returned; another page (= FET:0) and no more pages (= FET:2). If anyone's got more information concerning FPTS and FET please contact me. Modem in: What was last received by the modem. The most interesting thing is Connect which is when reception goes into Phase C (receiving faxpage). Modem out: What's being sent to the modem. Page nr: The number of the page being received. FHNG: If FHNG: 00 then everything's functioned correctly. Table 2 shows the meaning of the codes. Path M:\ Shows the search path to where fax pages are saved. *** Table 1 *** T.30 Session Subparameter Codes .-----------------------------------------------------------------. | Label | Function | Value | Description | |--------|---------------|---------|------------------------------| | VR | Vertical | 0 | Normal, 98 lpi | | | resolution | 1 | Fine, 196 lpi | |--------|---------------|---------|------------------------------| | BR | Bit Rate | 0 | 2400 bit/s V.27 ter | | | | 1 | 4800 bit/s V.27 ter | | | (See note 1) | 2 | 7200 bit/s V.29 or v.17 | | | | 3 | 9600 bit/s V.29 or v.17 | | | | **4 | 12000 bit/s V.33 or v.17 | | | | **5 | 14400 bit/s V.33 or v.17 | |--------|---------------|---------|------------------------------| | WD | Page Width | 0 | 1728 pixels in 215 mm | | | | 1 | 2048 pixels in 255 mm | | | | 2 | 2432 pixels in 303 mm | | | | *3 | 1216 pixels in 151 mm | | | | *4 | 864 pixels in 107 mm | |--------|---------------|---------|------------------------------| | LN | Page Length | 0 | A4, 297 mm | | | | *1 | B4, 364 mm | | | | *2 | unlimited length | |--------|---------------|---------|------------------------------| | DF | Data | 0 | 1-D modified Huffman | | | Compression | 1 | 2-D modified Read | | | Format | *2 | 2-D uncompressed mode | | | | *3 | 2-D modified Read | |--------|---------------|---------|------------------------------| | EC | Error | 0 | Disable ECM | | | Correction | *1 | Enable ECM,64 bytes/frame | | | (Annex | *2 | Enable ECM,256 bytes/frame | | | A/T.30) | | | | | (See Note 2) | | | |--------|---------------|---------|------------------------------| | BF | Binary File | 0 | Disable BFT | | | Transfer | *1 | Enable BFT | | | (See Note 3) | | | |--------|---------------|---------|------------------------------| | ST | Scan Time/ | | VR=normal VR=fine | | | Line | 0 | 0 ms 0 ms | | | | 1 | 5 ms 5 ms | | | | 2 | 10 ms 5 ms | | | | 3 | 10 ms 10 ms | | | | 4 | 20 ms 10 ms | | | | 5 | 20 ms 20 ms | | | | 6 | 40 ms 20 ms | | | | 7 | 40 ms 40 ms | |--------|---------------|---------|------------------------------| | NOTES: 1: CCITT T.30 does not provide for the answering | | station to specify all speeds exactly using the DIS | | frame. Implementation of some BR codes (e.g.code 2) | | by an answering DCE is manufacturer specific. | | | | * =Not supported | | ** =RC144AC only | | | | 2: ECM has been implemented in Supra's version 1.200C. | | ECM transmit works correctly, and ECM receive works, | | but does not tell the transmitting machine that the | | fax was received correctly. | | | | 3: BFT has been implemented in Supra's version 1.200C. | | BFT transmit works correctly, and BFT receive works, | | but does not tell the transmitting machine that the | | file was received correctly. | | | '-----------------------------------------------------------------' *** Tabell 2 *** Hangup Status Codes - Shown as FHNG: xx .------------------------------------------------------------. | Code | Cause Description | |----------|-------------------------------------------------| | 0-9 | CALL PLACEMENT AND TERMINATION | |----------|-------------------------------------------------| | 0 | Normal and proper end of connection | | 1 | Ring Detect without successful handshake | | 2 | Call aborted, from +FK or AN | | 3 | No Loop Current | |----------|-------------------------------------------------| | 10-19 | TRANSMIT PHASE A & MISCELLANEOUS ERRORS | |----------|-------------------------------------------------| | 10 | Unspecified Phase A error | | 11 | No Answer (T.30 T1 timeout) | |----------|-------------------------------------------------| | 20-39 | TRANSMIT PHASE B HANGUP CODES | |----------|-------------------------------------------------| | 20 | Unspecified Transmit Phase B error | | 21 | Remote cannot receive or send | | 22 | COMREC error in transmit Phase B | | 23 | COMREC invalid command received | | 24 | RSPEC error | | 25 | DCS sent three times without response | | 26 | DIS/DTC received 3 times; DCS not recognized | | 27 | Failure to train at 2400 bps or +FMINSP value | | 28 | RSPREC invalid response received | |----------|-------------------------------------------------| | 40-49 | TRANSMIT PHASE C HANGUP CODES | |----------|-------------------------------------------------| | 40 | Unspecified Transmit Phase C error | | 43 | DTE to DCE data underflow | |----------|-------------------------------------------------| | 50-69 | TRANSMIT PHASE D HANGUP CODES | |----------|-------------------------------------------------| | 50 | Unspecified Transmit Phase D error | | 51 | RSPREC error | | 52 | No response to MPS repeated 3 times | | 53 | Invalid response to MPS | | 54 | No response to EOP repeated 3 times | | 55 | Invalid response to EOM | | 56 | No response to EOM repeated 3 times | | 57 | Invalid response to EOM | | 58 | Unable to continue after PIN or PIP | |----------|-------------------------------------------------| | 70-89 | RECEIVE PHASE B HANGUP CODES | |----------|-------------------------------------------------| | 70 | Unspecified Receive Phase B error | | 71 | RSPREC error | | 72 | COMREC error | | 73 | T.30 T2 timeout, expected page not received | | 74 | T.30 T1 timeout after EOM received | |----------|-------------------------------------------------| | 90-99 | RECEIVE PHASE C HANGUP CODES | |----------|-------------------------------------------------| | 90 | Unspecified Receive Phase C error | | 91 | Missing EOL after 5 seconds | | 92 | Unused code | | 93 | DCE to DTE buffer overflow | | 94 | Bad CRC or frame (ECM or BFT modes) | |----------|-------------------------------------------------| | 100-119 | RECEIVE PHASE D HANGUP CODES | |----------|-------------------------------------------------| | 100 | Unspecified Receive Phase D errors | | 101 | RSPREC invalid response received | | 102 | COMREC invalid response received | | 103 | Unable to continue after PIN or PIP | |----------|-------------------------------------------------| | 120-255 | RESERVED CODES | '------------------------------------------------------------' These tables have been 'ripped off' from Supra's information about fax modems (In turn, Supra has taken them from Rockwell's manual :-) *** Miscellaneous *** - If you information, documents or anything else about faxes, I'd appreciate it if you'd notify me of the file name and where I might request it. - You can also send me various modem settings (functional or not). Don't forget to mention what modem they're for. It could be of help to someone who can't get things to work. - If you like the program or have suggestions - SEND A NETMAIL! - I'd like to thank those that reacted in some fashion and, above all, to those who have sent me netmail!!!! Greetings from Bo Andersson Questions, suggestions and requests may be sent to: Bo Andersson 2:203/203.5@fidonet or 90:1101/113.0@nest or Bertil Jagard 2:203/221.0@fidonet or 90:1101/104.0@nest