AmigaFax Service Class-2.0 Interface ==================================== 14NOV94 DAV Note: Please see "changes" at end for latest modifications ***** Beta versions of the AmigaFax modules Faa and AFaxSend are available for testing. The version numbers are currently 1.42beta, compile date 14NOV94. There is also a new version of getty, uident V1.17-beta.17. The new programs have so far only been tested on a ZyXEL U-1496 FaxModem with Class-2.0 ROMs. I would like to hear from users with other Class-2.0 modems, eg USR. The ZyXEL also handles Class-2, so results may not be 100% consistent. No new features have been added, and some changes may be needed to run on heavily customized Class-2 installations, so I don't advise Class-2 only users to get this version yet. Setting Up ========== You should have a current Version 1.41 installation in place. Copy the new Faa and AFaxSend for AFAX:c, and the new getty to your normal getty location (eg UUCP:c). Make sure you have backups of your originals. You must define the configuration variable FCLASS 2.0 either in your FAXLIB:Config file, or your global or local environment. SetEnv FCLASS 2.0 The new getty uses bit 3 of the -F flags to indicate Class-2.0 operation, so you must add 8 to these flags on getty startup. eg getty -Mh -B19200 -x9 -F6 AT&C1&D3+FCC=1,5,0,2 becomes getty -Mh -B19200 -x9 -F14 AT&C1&D3+FCC=1,5,0,2 If you have any configuration values setup in config file or environment for WSetup, RSetup, XONXOFF, or various modem command overrides, you should remove them, or modify them according to specifications below. AFaxSend ======== For Class-2.0 the default WSetup string is: AT&C1&D3S7=255+FCLASS=2.0+FNR=1,1,1,0+FCC=1,5,0,2 Faa === For Class-2.0 the default RSetup string is: AT&C1&D3S7=255+FCLASS=2.0+FNR=1,1,1,0+FCR=1+FAA=1+FCC=1,5,0,2 ATS0=2 With the change to 2.0, the Phase-C bit order on receive appears to have been reversed. I am not sure if this is universal, or a fault with the ZyXEL 6.13 ROMs, as the ZyXEL currently disregards the +FBO bit-order control. I am currently reversing when in 2.0, UNLESS the config variable "OldBitOrder" is defined. If you receive faxes that appear unreadable in Class-2.0 mode, try a SetEnv OldBitOrder 1 and see if that helps. If so, PLEASE let me know as soon as possible. Modem Commands ============== The inbuilt modem commands are shown below. You should not need to override these, as 2.0 is now an approved standard. Some of these (eg +FPTS) are not used by AmigaFax. +FCO +FCI +FTI +FCS +FIS +FKS +FPTS +FET +FHS +FDT +FDR +FLI +FIS Note that some of the Class-2 inbuilts have been modified also. The current Class-2 commands are: +FCON +FCSI +FTSI +FDCS +FDIS +FK +FPTS +FET +FHNG +FDT +FDR +FLID +FDIS Flow Control ============ Class-2.0 defaults to Xon/Xoff flow control, which I am not too fond of. This will be set automatically (afaxsend only) when in 2.0 mode. However you can override this with the XONXOFF config variable. SetEnv XonXoff 1 will force Xon/Xoff flow control to be used, SetEnv XonXoff 0 will disable it, regardless of the FCLASS setting. However if you have hardware handshaking, and want your modem to use it, you should add AT+FLO=2 to your RSetup and WSetup strings, as well as to your getty startup initialization array. This may become the default later. Comments ? getty ===== Under the original Class-2 specification, it was possible to leave the modem in FCLASS=0 (data) mode, with FAA=1, and to automatically receive a fax, along with data on connect speed and remote ID. With the ZyXEL U-1946, supporting Class-2 and Class-2.0, in data mode the modem reports fax connection parameters in Class-2 format only. With other Class-2.0 modems, it may not do so at all. Instead the standard allows for a modem in FCLASS=2.0 with FAA=1 to automatically detect a data call, and to connect in data mode. The parameter +FNR=1,1,1,0 must be set in order to get connection data, and to negotiate transfer rates greater than 2400 baud! To cope with this, the getty -F flag has been extended so that bit 3 set (=8) means connect as FCLASS=2.0. The modem will be set to FCLASS=2.0, FAA=1, FNR=1,1,1,0. Whenever another program requests use of the serial port from getty, getty will set the modem back to FCLASS=0, or data mode. This is also done when getty exits. While adding this code, I also traced and fixed a (long-standing ?) bug in getty, which was causing my machine to crash when getty shut down. It was caused by the order of closing in the myexit() function. This effects other versions of getty, including the one distributed with AmigaUUCP 1.17beta. Documentation ============= This has not been updated yet, apart from this file. I'll try to do that before I do a full release, based on feedback from testers. -------------------------------------------------------------------- Changes: Response to Beta testers ================================= 22NOV94 ------- I've made some changes, including level-3 debug now printing configuration information, so you can now see whether you are in XonXoff, SyncEOL, etc. modes. To make sure you see all the config. information, you should use the -d3 command line switch, which will be checked early in startup (before config-file read in). I've also changed the use of the XonXoff config variable, as follows: XonOff 0 - disabled 1 - Use maximum buffer (1000 bytes) nnn - Use nnn size line buffer This allows you to set the size of the line AmigaFax uses for asynchronous writes, which controls the granularity of XONXOFF checking. For testing, I'd start off with something like XonOff 10 which means that AmigaFax will check for XOFF every 10 characters sent. As the value is increased, overall throughput should increase, until the point where the modem buffer overflows with a single line. If that doesn't help, perhaps the USR hasn't used the default XonXoff control like it should. You can force this by putting an AT+FLO=1 in your setting string. Alternatively, AT+FLO=2 will force hardware handshake, if the modem supports it. --------------------------------------------------------------------