SUPRA TECHNICAL SUPPORT BULLETIN CLASS 1 FAX COMMANDS FOR SUPRA FAXMODEMS 6/19/92 Supra Corporation 7101 Supra Drive SW, Albany, OR 97321 General (503) 967-2400 / Sales (503) 967-2410 / Fax (503) 967-2401 Supra Tech Support (503) 967-2440 8:00am - 5:00pm PST, M-F Supra BBS........(503) 967-2444 24 Hours CompuServe.......76004,565 BIX..............SupraCorp America Online...SupraCorp2 GEnie............SupraTech AppleLink........D2456 UseNet EMail.....supratech%supra.uucp@cs.orst.edu .....supra!supratech@cs.orst.edu SUPRA's DISCLAIMER: The following information has been taken from Rockwell's RC144AC manual. It has not been taken from the CCITT Class 1 documentation, which is copyrighted by the CCITT. This information is provided for educational purposes only. To fully understand this information requires a through knowledge of the T.4 fax image and the T.30 fax session protocol standards. Due to the nature of this information, Supra's engineers and technical support can not and will not provide any help or support on this information. We STRONGLY urge anyone attempting to develop fax software to get the required documentation from Global Engineering or the TIA. SHORT HISTORY OF CLASS 1 AND 2 In 1988 the CCITT TR29.2 committee accepted the Class 1 standard for communication between fax software and fax modems. The committee also voted on, but did not accept for various technical reasons, the Class 2 standard. A year later, they had slightly revised the standard but again did not accept it. Software and hardware manufactures decided to unofficially adopt this standard until the TR29.2 committee could develop an acceptable standard. Since so many companies have used the unofficial standard, the TR29.2 committee has designated that when the standard is officially adopted it will be known as Class 2.0. Over the last year or so, the TR29.2 committee has voted on several revisions to the Class 2 standard. Their last vote was early May '92. A no vote for technical reasons was entered. The TR29.2 committee is now reviewing the technical issues that were raised. At this time, Supra has not heard of a projected date for the next ballot. WHAT IS THE DIFFERENCE BETWEEN CLASS 1 AND 2 Class 1 fax software handles all of the T.4 fax image and T.30 session protocol information and timing. Thus, the ability to communicate properly with various fax machines is more a function of the software than the fax modem. Class 2 fax software generates a T.4 fax page image and sends it to the fax modem a page at a time. The fax modem then handles the T.30 session protocol information and timing. This relieves the computer's cpu from some work. The ability to communicate properly with various fax machines is more a function of the fax modem than the software. However, to further complicate matters, class 2 fax software can issue Class 1 commands and take over some of the duties of the Class 2 fax modem. When customers have a problem communicating correctly with a fax machine/modem, it can be very difficult to determine which is at fault, the software or the hardware. Supra has collected numerous Class 1 and 2 fax software for a variety of different computers. When we receive a report of a problem, we use these programs to determine if it is a software or hardware problem. If it is a hardware problem, we notify Rockwell, otherwise we notify the software company. BUG REPORTS Supra is dedicated to making the best product for the best price. If you feel that you have found a bug, please fax or send a letter to the attention of: SUPRA V32/BIS FAX BUG Please fully describe the 'bug' (specific steps to generate it, phone numbers to call, make and model of fax/modem, rev of our ROM (from I3 command) ), why you believe that it is a bug, what specific section of Class 2 applies to this bug and how you would like the bug to be fixed. Please remember that there are issues that have not been addressed or settled by the TR29.2 committee in the Class 2 specifications. (i.e. how the DCD and DTR lines are handled while in fax mode.) WHERE TO GET OFFICIAL FAX DOCUMENTATION Telecommunications Industry Association 1722 Eye St. NW Suite 440 Washington, DC 20006 You need to ask for: Class 1 documentation - EIA/TIA-578 Class 2 documentation - Electronic Industries Association and Telecommunications Industry Association TIA Project Number 2388, Asynchronous Facsimile DCE Control Standard, Service Class 2, TR-29.2 Committee Letter Ballot Global Engineering Documents 2805 McGaw Ave Irvin, CA 92713 800-854-7179 714-261-1455 714-261-7892 (Fax) You need to ask for: EIA/TIA-578 - Class 1 documentation EIA/TIA-592 - Class 2 documentation CCITT v7.3 - T.1 - T.90 standards, includes T.4 & T.30 (The cost for the above docs will run close to $200. But Global will also update you on any changes or additions to those standards you purchase.) Global Engineering will not have the Class 2 documentation until approx. a month after the TR29.2 committee accepts it. Most of those companies which have developed Class 2 fax software either sit on the TR29.2 committee or know someone who does. It may be possible to receive the documentation from the TIA if you present a credible proposal. Supra has no knowledge of what this proposal should consist of or who you need to talk to. See also "CLASS 1 FAX COMMANDS FOR SUPRA FAXMODEMS" which is available on Supra BBS. 6 FAX CLASS 1 OPERATION 6.1 FAX I/O PROCESSING The fax I/O interface supports asynchronous serial and parallel interfaces. The interface rate is 19200 bps. Start and stop elements are removed from the transmit data and added to the receive data. Both transmit and receive data is buffered. Flow control using XON/XOFF (DC1/DC3) or RTS/CTS is provided. Unique control character strings are identified, filtered, or reinserted into the I/O data stream. These control characters and their resultant action are described below. 6.1.1 DTE TO MODEM TRANSMIT DATA STREAM Characters Detected Action taken Delete characters Recognize as a string terminator, and take appropriate action Replace with single character 6.1.2 MODEM TO DTE RECEIVE DATA STREAM Characters Detected Action taken Insert extra ahead of The modem also identifies the end of a frame by inserting into the data stream after the FCS bytes. 6.1.3 FAX MODE SELECTION Fax class 1 commands are identified in Table 6-1 and defined in Table 6- 2. Fax modes and rates are determined by the AT+F commands as described in Table 6-2. 6.1.4 FAX ORIGINATION Origination of fax calls is made using the ATD command. Upon completion of the dial function, a calling tone at 1100 Hz, with a cadence of 0.5 seconds ON, and 3 seconds off is transmitted. The modem automatically enters mode +FRH=3 and sends the CONNECT message to the DTE when FSK flags are detected from the remote. 6.1.5 FAX ANSWERING Answering of fax calls is identical to answering of data calls with the exception that the modem enters the fax handshaking mode instead of the data handshaking mode after going off-hook. If +FAE=0, the modem , after sending answer tone, automatically enters fax mode (+FTH=3), sends the CONNECT message to the DTE, and starts sending FSK flags. If +FAE=1, the modem determines if the caller is a data modem or fax modem and sends the DATA or FAX result code, respectively, to the DTE. Table 6-1. Fax Class 1 Commands ----------------------------------------------------------- | Command Function | |---------------------------------------------------------| | SERVICE CLASS ID | |---------------------------------------------------------| | +FCLASS= Service Class | |---------------------------------------------------------| | FAX CLASS 1 COMMANDS | |---------------------------------------------------------| | +FTS=n Stop Transmission and Wait | | +FRS=n Receive Silence | | +FTM=n Transmit Data | | +FRM=n Receive Data | | +FTH=n Transmit Data with HDLC Framing | | +FRH=n Receive Data with HDLC Framing | |---------------------------------------------------------| 6.1.6 FAX CONTROL TRANSMISSION Fax control transmission is initiated by the AT+FTH=n command. After this command is issued, the modem generates the CONNECT message and transmits carrier in the modulation scheme specified by the parameter n. The modem then transmits HDLC flags for a minimum of 1 second. The modem continues to transmit the HDLC flags until it receives a character from the DTE. When characters are received from the DTE, the modem adds start and end flags, performs zero-bit insertion, generates FCS, and deletes character pairs before transmitting the characters to the remote fax machine. Each sequence is transmitted as a single . is considered as the end of frame marker and is not transmitted. All data received from the DTE afar is ignored by the modem until the modem generates either the CONNECT, OK, or ERROR result code. If no more data is in the transmit buffer and the final bit was a 1 (bit 4 of the second byte received from the DTE), the modem generates the OK result code and returns to the command mode. If the final bit was a 0, the modem generates the CONNECT message and waits for further data from the DTE while transmitting HDLC flags. If no more data is received before 5 seconds elapse, the modem drops carrier, goes on-hook, and generates the ERROR result code. 6.1.7 FAX CONTROL RECEPTION Fax control reception is initiated using the AT+FRH=n command. After this command is issued, the modem looks for carrier in the modulation scheme specified by the parameter n. If no carrier is detected before the period of time specified by register S7 expires, the modem generates the NO CARRIER message and returns to command mode. If carrier is detected that is not the one specified by the parameter n, the modem generates the +FCERROR message and returns to the command mode. If the specified carrier is detected, the modem generates the CONNECT message and enters the HDLC receive mode. In HDLC receive mode, the modem receives HDLC frames from the remote fax machine, strips the flags, performs zero-bit deletion, performs error checking, and handles character pairs before passing the data to the DTE. The modem prefixes each character with another character before sending it to the DTE. After the last byte in the frame, the modem sends to the DTE marking the end of the frame. The modem then generates either the OK message if errors were detected (FCS is incorrect), and returns to command mode. While in command mode, the modem continues to receive data in the selected modulation scheme, and sends the data after sending the CONNECT message to the DTE when the DTE reissues the +FRH command with the same parameter. If the DTE issues the +FRH command with a different parameter, the modem clears all buffers and proceeds as described previously. If carrier is lost while in command mode and the DTE reissues the +FRH command with the same parameter, and there is no data in the buffer, the modem sends the ERROR result code to the DTE and returns to the command mode. If there is data in the buffer, the modem sends the next frame of buffered data to the DTE, followed by , and either the ERROR result code if errors were detected or the OK result code if no errors were detected. The modem then returns to command mode. The modem concludes an error is detected if the carrier is lost for any period of time during or before the reception of a frame. If carrier is lost for a time period longer than the time specified by the register S10, the modem finishes delivering the data in the receive buffer (if any) to the DTE, sends , generates the ERROR message, and returns to command mode. All subsequent data received from the remote is discarded. If the modem detects a frame abort sequence (seven consecutive ones with no zero insertion) while it is waiting for a frame beginning flag (it was receiving HDLC flags), it will wait for the HDLC flags again until either carrier is lost, or the DTE aborts the process by sending an abort character or by dropping DTR with &D2 in effect. If the frame abort sequence is detected while the modem is receiving a frame it finishes delivering the data in the receive buffer (if any) to the DTE, sends , generates the ERROR message, and returns to command mode. The modem keeps looking for HDLC flags followed by more data from the remote, with the selected modulation scheme. If the modem detects a receive buffer overflow condition, it concludes that there was a FCS error in that frame. The modem will receive more frames only if a starting flag is detected and there is room in the receive buffer. If a starting flag is detected and there is no room in the buffer, the modem discards all data in that frame. If the modem receives any character from the DTE after the +FRH command (except flow control characters if software flow control is in effect), or if the modem detects a high-to-low transition of the DTR signal while &D1 is in effect, it sends to the DTE, generates OK result code, and returns to command mode. The receive buffer is cleared and all data received from the remote is discarded. If the modem detects a DTR drops while &D2 is in effect, it goes on-hook, sends to the DTE, generates OK result code, and returns to command mode. If the modem detects a DTR drop while &D3 is in effect, the modem performs a warm reset. 6.1.8 FAX DATA TRANSMISSION Fax Data transmission is initiated by the AT+FTM=n command. After this command is issued, the modem generates the CONNECT message and transmits carrier in the modulation scheme specified by the parameter n. The modem then transmits constant 1 bits for a minimum of one second and continues to transmit constant 1 bits until it receives a character from the DTE. When data is received from the DTE, the modem deletes start and stop bits and deletes all character pairs before transmitting the data to the remote. Each sequence is transmitted as a single . is considered as the end of stream marker, and is not transmitted. All data received from the DTE after the is ignored by the modem until the modem generates either the CONNECT, OK or ERROR result code. If no more data is in the transmit buffer, and the last transmitted character was not an ASCII NULL, the modem generates the OK result code and returns to the command mode. If the last character transmitted was an ASCII NULL, the modem generates the CONNECT message to the DTE and waits for further data from the DTE while transmitting NULLs to the remote. If more data is received before five seconds, elapse, the modem continues to transmit the data as described in the previous paragraph. If five seconds elapse and no data is received from the DTE, the modem drops carrier, goes on-hook, and generates the ERROR result code. 6.1.9 FAX DATA RECEPTION Fax data reception is initiated using the AT+FRM=n command. After this command is issued, the modem looks for carrier in the modulation scheme specified by the parameter n. If no carrier is detected before the period of time specified by register S7 expires, the modem generates the NO CARRIER message and returns to command mode. If carrier is detected that is not the one specified by the parameter n, the modem generates the +FCERROR message and returns to the command mode. If the specified carrier is detected, the modem generates the CONNECT message and enters the data receive mode. While in data receive mode, the modem receives data from the remote, adds start and stop bits, and handles character pairs before passing the data to the DTE. The modem prefixes each character with another character before sending it to the DTE. If carrier is lost for a time period longer than the time specified by the register S10, the modem finishes delivering the data in the receive buffer (if any) to the DTE, sends , generates the NO CARRIER result code, and returns to the command mode. All subsequent data received from the remote is discarded. If the modem detects a receive buffer overflow condition, it stops receiving from the remote until there is room in the receive buffer. The modem informs the DTE of the buffer overflow after it sends to the DTE the last character that was stored in the buffer before the overflow occurred. If the modem receives any character from the DTE after the +FRM command (except flow control characters if software flow control is in effect), or if the modem detects a high-to-low transition of the DTR signal while &D1 is in effect, it sends to the DTE, generates the OK result code, and returns to command mode. The receive buffer is cleared and all data received from the remote is discarded. If loss of DTR is detected while &D2 is in effect, the modem goes on-hook, sends followed by OK result code to the DTE, and returns to command mode. If the modem detects a DTR drop while &D3 is in effect, the modem performs a warm reset. 6.2 EXAMPLES Examples of calling (transmitting) and answering (receiving) one page use fax class 1 commands are shown in Tables 6-3 and 6-4, respectively. Table 6-2. Fax Class 1 Command Definitions Command Description +FCLASS=n Select service class. +FCLASS=n command set the active service class Parameters: 0-2 Default: 0 Command options: +FCLASS=0 Select Data Mode +FCLASS=1 Select Facsimile class 1 +FCLASS=2 Select Facsimile class 2 +F? Report Active Configuration. +F? interrogates the modem to determine the active configuration. Typical responses are: +FAE? 0 if autoanswer is disabled, 1 if auto answer enabled. +FCLASS? 0 if in data mode; 1 if in fax class 1; 2 if in fax class 2 +F=? Report Operating Capabilities. +F=? can be used to determine the operating capabilities of the modem. Typical responses are: +FAE=? 0,1 +FCLASS=? 0,1,2 +FTM=? 3,24,48,72,96 (RC96AC) +FRM=? 3,24,48,72,96 (RC96AC) +FTM=? 3,24,48,72,73,74,96,97,98,121,122,145,146 (RC144AC) +FRM=? 3,24,48,72,73,74,96,97,98,121,122,145,146 (RC144AC) +FAEn Data/Fax Auto Answer. +FAEn allows the DTE to either restrict answering to class 1, or to automatically detect whether the calling station is a fax class 1 modem or data modem,, and answer accordingly. Parameters: 0,1 Default:0 Command options: n=0 Disable data/fax auto answer mode (default). The modem answers as a fax modem only n=1 Enable data/fax auto answer mode. The modem answers as a fax or data modem +FTS=n Stop Transmission and Wait. +FTS=n causes the modem to terminate a transmission and wait for n 10 millisecond intervals before responding with the OK result code. An ERROR response code results if this command is issued while the modem is on-hook. +FRS=n Receive Silence. +FRS=n causes the modem to report back to the DTE with an OK result code after n millisecond intervals of silence have been detected on the line. This command is aborted if any character is received from the DTE. The modem discards the aborting character and issues an OK result code. An ERROR response code results if this command is issued while the mode is on-hook. +FTM=n Transmit Data. +FTM=n causes the modem to transmit data using the modulation defined below. An ERROR response code results if this command is issued while the modem is on-hook. Parameters: Command options: +FTM=3 v.21 ch 2 300 bps +FTM=24 v.27 ter 2400 bps +FTM=48 v.27 ter 4800 bps +FTM=72 v.29 7200 bps +FTM=96 v.29 9600 bps +FTM=73 v.17 7200 bps long +FTM=74 v.17 7200 bps short +FTM=96 v.29 9600 bps +FTM=97 v.17 9600 bps long +FTM=98 v.17 9600 bps short +FTM=121 v.17 12000 bps long +FTM=122 v.17 12000 bps short +FTM=145 v.17 14400 bps long +FTM=146 v.17 14400 bps short +FRM=n Receive Data. +FRM=n causes the modem to enter the receiver mode using the modulation defined below. An ERROR response code results if this command is issued while the modem is on-hook. Parameters: See Command options Command options: +FTM=3 v.21 ch 2 300 bps +FTM=24 v.27 ter 2400 bps +FTM=48 v.27 ter 4800 bps +FTM=72 v.29 7200 bps +FTM=96 v.29 9600 bps +FTM=73 v.17 7200 bps long +FTM=74 v.17 7200 bps short +FTM=96 v.29 9600 bps +FTM=97 v.17 9600 bps long +FTM=98 v.17 9600 bps short +FTM=121 v.17 12000 bps long +FTM=122 v.17 12000 bps short +FTM=145 v.17 14400 bps long +FTM=146 v.17 14400 bps short +FTH=n Transmit data with HDLC Framing. +FTH=n causes the modem to transmit data using HDLC protocol and the modulation defined below. An ERROR response code results if this command is issued while the modem is on-hook. Parameters: See Command options Command options: +FTM=3 v.21 ch 2 300 bps +FTM=24 v.27 ter 2400 bps +FTM=48 v.27 ter 4800 bps +FTM=72 v.29 7200 bps +FTM=96 v.29 9600 bps +FTM=73 v.17 7200 bps long +FTM=74 v.17 7200 bps short +FTM=96 v.29 9600 bps +FTM=97 v.17 9600 bps long +FTM=98 v.17 9600 bps short +FTM=121 v.17 12000 bps long +FTM=122 v.17 12000 bps short +FTM=145 v.17 14400 bps long +FTM=146 v.17 14400 bps short +FRH=n Receive data with HDLC Framing. +FRH=n causes the modem to receive frames using HDLC protocol and the modulation defined below. An ERROR response code results if this command is issued while the modem is on-hook. Parameters: See Command options Command options: +FTM=3 v.21 ch 2 300 bps +FTM=24 v.27 ter 2400 bps +FTM=48 v.27 ter 4800 bps +FTM=72 v.29 7200 bps +FTM=96 v.29 9600 bps +FTM=73 v.17 7200 bps long +FTM=74 v.17 7200 bps short +FTM=96 v.29 9600 bps +FTM=97 v.17 9600 bps long +FTM=98 v.17 9600 bps short +FTM=121 v.17 12000 bps long +FTM=122 v.17 12000 bps short +FTM=145 v.17 14400 bps long +FTM=146 v.17 14400 bps short Table 6-3 Fax Class 1 Calling Sequence (One Page) |----------------------------------------------------------------------| | DTE Commands | DCE Responses | Remote Fax | Notes | |--------------|------------------|-----------------|------------------| | AT+FCLASS=1 | OK | | Set to Class 1 | |----------------------------------------------------------------------| | PHASE A | |----------------------------------------------------------------------| | ATDTx | dials | answers | +FRH=3 implied by| | | | | dialing | | | CONNECT | Send HDLC flags | | |----------------------------------------------------------------------| | PHASE B | |----------------------------------------------------------------------| | | | Send NSF frame | | | | ,OK | | | | AT+FRH=3 | CONNECT | | | | | | Send CSI frame | | | | ,OK | | | | AT+FRH=3 | CONNECT | | | | | | Send DIS frame | Last frame bit=1 | | | ,OK | drop carrier | | | AT+FTH=3 | Send HDLC flags | receive flags | | | | CONNECT | | | | | Send TSI frame | Receive TSI | Last frame bit=0 | | | CONNECT | | | | | Send DCS frame | Recieve DCS | Last frame bit=1 | | | detect last frame| | | | | bit | | | | | ,drop carrier| | | | AT+FTS=8 | ,wait 80ms | | | | AT+FTM=96 | send v.29 | | | | | CONNECT | | | | | Send TCF data | Receive & check | | | AT+FRH=3 | CONNECT | | | | | Send CFR frame | | Last frame bit=1 | | ,OK | drop carrier | | | | | OK | | | |----------------------------------------------------------------------| | PHASE C | |----------------------------------------------------------------------| | AT+FTM=96 | send v.29 | | | | | CONNECT | | | | age data | send page data | receive data | | | | OK | | | | AT+FTH=3 | send HDLC flags | receive flags | | | | CONNECT | | | |----------------------------------------------------------------------| | PHASE D | |----------------------------------------------------------------------| | | send EOP frame | receive EOP | Last frame bit=1 | | | OK,drop carrier | | | | AT+FRH=3 | CONNECT | | | | | | send MCF frame | Last frame bit=1 | | | ,OK | | | | AT+FTH=3 | send HDLC flags | receive flags | | | | CONNECT | | | | | send DCN frame | receive DCN | Last frame bit=1 | | | OK,drop carrier | | | |----------------------------------------------------------------------| | PHASE E | |----------------------------------------------------------------------| | ATH0 | OK,hang up | hang up | | |----------------------------------------------------------------------| Table 6-4 Fax Class 1 Answering Sequence (One Page) |----------------------------------------------------------------------| | DTE Commands | DCE Responses | Remote Fax | Notes | |--------------|------------------|-----------------|------------------| | AT+FCLASS=1 | OK | | | |----------------------------------------------------------------------| | PHASE A | |----------------------------------------------------------------------| | | | Fax machine dial| | | | RING | | | | ATA | modem answers | | | | | send HDLC flags | receive flags | +FTH=3 implied by| | | | | answering | | | CONNECT | | | |----------------------------------------------------------------------| | PHASE B | |----------------------------------------------------------------------| | | send NSF frame | receive NSF | last frame bit=0 | | | CONNECT | | | | | send CSI frame | receive CSI | last frame bit=0 | | | CONNECT | | | | | send DSI frame | receive DSI | last frame bit=1 | | | OK, drop carrier | | | | AT+FRH=3 | CONNECT | | | | | | send TSI frame | last frame bit=0 | | | ,OK | | | | AT+FRH=3 | CONNECT | | | | | | send DCS frame | last frame bit=1 | | | ,OK | drop carrier | | | AT+FRM=96 | | | | | | | send v.29 | | | | CONNECT | send TCF frame | | | | | drop carrier | | | | NO CARRIER | | | | AT+FTH=3 | CONNECT | | | | | send CFR frame | receive CFR | last frame bit=1 | | | OK,drop carrier | | | |----------------------------------------------------------------------| | PHASE C | |----------------------------------------------------------------------| | AT+FRM=96 | | | | | | | send page data | | | | | drop carrier | | | | NO CARRIER | | | |----------------------------------------------------------------------| | PHASE D | |----------------------------------------------------------------------| | AT+FRH=3 | CONNECT | | | | | | send EOP frame | last frame bit=1 | | | ,OK | | | | AT+FTH=3 | CONNECT | | | | | send MCF frame | receive MCF | last frame bit=1 | | | OK,drop carrier | | | | AT+FRH=3 | CONNECT | | | | | | send DCN frame | last frame bit=1 | | | ,OK | | | |----------------------------------------------------------------------| | PHASE E | |----------------------------------------------------------------------| | ATH0 | OK,hang up | hang up | | |----------------------------------------------------------------------|