HylaFAX The world's most advanced open source fax server

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Misc. ramblings about older USR modems




I have an older USR 33.6 modem. The EPROM and DSP dates from 10/18/95,
and its revision is 1.1. I have been trying to get it to work
with SCO Unix 3.2v4.2 for both incoming fax and incoming data
connections. (I guess I'm stuck back in '95 with both hardware
and software :-) ). Oh yeah, hylafax v4.0pl2.

Anyways, over the last week I have been having moderate success
getting both the hardware and the software to work. I have had a number
of problems and I guess I would like to document my successes and
current failures just in case it would help someone.

I need to have the modem work with Class 2.0 since I need both
incoming faxes and incoming data connections. I need outgoing
data but I do not require outgoing faxes at this time. If you
are simply using Class 1, set S36=3D0 and things should be mostly fine.

Problem 1. I was receiving the following error message (with log snippet)

RECV: begin page
RECV: send trigger 022
<-- data [1]
RECV: 111 total lines, 0 bad lines, 0 consecutive bad lines
--> [16:+FPS:1,112,0,0,0]
--> [5:ERROR]
MODEM Command error
REMOTE HANGUP: Unspecified Phase C error, including too much delay
between TCF and +FDR command (code 90)

Solution, I believe this was solved with the following options
mentioned in the archives. I can't remember if this was the only
change I made at this time but I think it was.

PercentGoodLines:       0
MaxConsecutiveBadLines: 0

Problem 2. I could not receive a multipage fax. At the start of the
second page I would receive the following error (with log snippet)

--> [7:CONNECT]
RECV: begin page
RECV: send trigger 022
<-- data [1]
RECV: 2402 bytes of data, 156 total lines
--> [16:+FPS:1,157,0,0,0]
--> [7:+FHS:A1]
REMOTE HANGUP: RSPREC invalid response received (code A1)
--> [2:OK]

Solution: I contacted USR about this one and they suggested that I
set the following registers:

S7=3D90
S36=3D0

I added this to the ModemHardFlowCmd. Originally S7 was 60, just changing
S7 to 90 did not help. Changing S36 to 0 was the correct magic. The S36
register is not documented. Does any know what it does?

Problem 3. When trying to handling incoming data connections under
SCO 3.2v4.2, the modem would drop the connection during the transfer of
control from faxgetty to getty. This would cause the SCO getty to hang and
locking the port until it was killed manually.

Solution. I had to set the S25 register to 200. This is probably way
to high but it does work. This register tells the modem not to
interpet a short drop in DTR as loss of communications. I guess it
simply takes too long on a pentium 133 to transfer control over to getty.

Problem 4. After FaxGetty was started I could only receive one fax.
With all subsequent faxes I would receive this message (with log snippet)

<-- [4:ATA\r]
--> [10:NO CARRIER]
ANSWER: Ring detected without successful handshake

The modem seemed to be trying to initiate a data connection with the
remove fax machine. I did not have this problem if I limited the
modem to Class 1.

Solution. I don't know if this the correct solution but it does
seem to be working. I put +FCLASS=3D1 in ModemHardFlowCmd. When
FaxGetty initializes the modem it first sends the ModemHardFlowCmd
to the modem setting it into Class 1. It then queries the modem for
what classes are available and since I specified in the config
file to use Class 2.0 it then sets the modem into Class2.0 mode.
This hack seems to be working for incoming fax connections. See
Problem 5 for an unsolved problem.

Problem 5. This is my only unresolved problem and it relates to
Problem 4. If I accept an incoming data connection and it=20
disconnects normally some time later, the next attempt to fax in
will not work. The same symptoms described in Problem 4 occur.
However, if the sender tries again it will work.

Does anyone have a solution for this problem? If you do, I'll
be greatly appreciative and will be able to sleep well this weekend.

Here is my current config file.

## This config file is for a USRobotics 33.6 modem with
## the EPROM and DSP dates from 10/18/95. This configuration
## works on SCO Unix 3.2v4.2
CountryCode:		1
AreaCode:		250
FAXNumber:		"+1 250 479 0764"
LongDistancePrefix:	1
InternationalPrefix:	011
DialStringRules:	"etc/dialrules"
ServerTracing:		1
SessionTracing:		11
RecvFileMode:		0644
LogFileMode:		0644
DeviceMode:		0644
SpeakerVolume:		off
GettyArgs:		"-n -h -t 60 %l dx_%s"
LocalIdentifier:	"AIInc 250 479 0764"
TagLineFont:		etc/lutRS18.pcf
TagLineFormat:		"From %%l|%c|Page %%p of %%t"
MaxRecvPages:		50
RingsBeforeAnswer:	1
PercentGoodLines:	0
MaxConsecutiveBadLines:	0
#
# Modem-related stuff
#
ModemType:		Class2.0	# use class 2.0 interface
ModemRate:		38400		# DCE-DTE communication rate
ModemFlowControl:	rtscts		# XON/XOFF flow control assumed
#
ModemNoFlowCmd:	AT&H0&I0&R1	# setup modem for no flow control
#
# setup modem for hardware flow control. USR told me to set S7=3D90
# but S7=3D60 is the default and does work. USR also told me to set S36=3D0.
# No idea what this does but is a magic bullet. S10=3D30 is just a little
# paranoia by me. I don't think it solves any problems but doesn't hurt
# anything. +FCLASS=3D1 solves a problem where the first incoming fax works
# but the modem will not negotiate a connection to subsequent fax=
 connections.
#				=09
ModemHardFlowCmd:	AT&H1&I0&R2S7=3D60S36=3D0S10=3D30+FCLASS=3D1
ModemSoftFlowCmd:	AT&H2&I2&R1	# setup modem for software flow control
#
ModemSetupDTRCmd:	ATS13=3D1&D2	# setup so DTR drop resets modem
ModemSetupDCDCmd:	AT&C1		# setup so DCD reflects carrier (or not)
ModemResultCodesCmd:	ATQ0X4		# enable extended result codes
#
AdaptiveAnswer:		yes
ModemWaitForConnect:	yes
#
# NB: adaptive answer only seems to work properly when
#     the modem is left idling in Class 2.0
#
ModemSetupAACmd:	AT+FAA=3D1
#
# Set modem speaker volume commands: OFF QUIET LOW MEDIUM HIGH.
# Note that we both turn the speaker on/off and set volume.
#
ModemSetVolumeCmd:	"ATM0 ATM1 ATM1 ATM1 ATM1"
#
# Modem does not support HDLC frame tracing; we add this just
# to eliminate spurious ERROR results that confuse the naive.
#
Class2BUGCmd:		AT+FBU=3D0
#
# The modem doesn't support copy quality checking, even though it
# returns (0-2,0-2) for AT+FCQ=3D?; therefore we override the query
# response so that the server will do copy quality checking.
#
Class2CQQueryCmd:	!(0),(0)	# override modem response
#
# This supposidly fixes a bug in USR firmware
#
Class2NRCmd:		AT+FNR=3D1,1,1,0	# setup status reporting command

Here is an ATI4

   B0  E0  F1  M0  Q0  V1  X4  Y0
   BAUD=3D57600  PARITY=3DN  WORDLEN=3D8
   DIAL=3DHUNT   ON HOOK

   &A0  &B1  &C1  &D2  &G0  &H1  &I0  &K1  &M4  &N0
   &P0  &R2  &S1  &T5  &U0  &Y1

   S00=3D000  S01=3D000  S02=3D043  S03=3D013  S04=3D010  S05=3D008  S06=3D0=
02
   S07=3D060  S08=3D002  S09=3D006  S10=3D030  S11=3D050  S12=3D050  S13=3D0=
01
   S15=3D000  S16=3D000  S18=3D000  S19=3D000  S21=3D010  S22=3D017  S23=3D0=
19
   S25=3D200  S27=3D000  S28=3D008  S29=3D020  S30=3D000  S31=3D128  S32=3D0=
02
   S33=3D000  S34=3D000  S36=3D000  S38=3D001

I hope this helps someone.
---
Robert Side			Voice: (250) 479 8646  =20
Acquired Intelligence Inc.	Fax:   (250) 479 0764
#205 - 1095 McKenzie Ave	Email: rside@aiinc.bc.ca
Victoria, B.C, CANADA V8P 2L5	URL: http://vvv.com/ai
Acquire=AE is a registered trademark of Acquired Intelligence Inc.




Project hosted by iFAX Solutions