Changelog since HylaFAX 4.3.0
+* replace Class1SendMsgDelay with Class1SwitchingCmd (20 Jul 2006)
* fix faxaddmodem config parsing for Digicom Leonardo modems(19 Jul 2006)
* don't skip initial NSF bytes in station ID search when no
known T.35 manufacturer ID was used (18 Jul 2006)
Class1PPMWaitCmd: AT+FTS=7 # command to stop and wait before PPM
Class1TCFWaitCmd: AT+FTS=7 # command to stop and wait before TCF
Class1EOPWaitCmd: AT+FTS=9 # command to stop and wait before EOP
-Class1SendMsgDelay: 200 # 75ms delay after training
Class1SwitchingCmd: AT+FRS=7 # silence between HDLC recv and trans
Class1TrainingRecovery: 1500 # 1.5sec delay after training failure
Class1RecvAbortOK: 200 # wait 200ms for abort response
Class1PPMWaitCmd: AT+FTS=7 # command to stop and wait before PPM
Class1TCFWaitCmd: AT+FTS=7 # command to stop and wait before TCF
Class1EOPWaitCmd: AT+FTS=9 # command to stop and wait before EOP
-Class1SendMsgDelay: 200 # 75ms delay after training
-Class1SwitchingDelay: 75 # 150ms delay in switching transmission direction
+Class1SwitchingCmd: AT+FRS=7 # command to stop and listen for silence
Class1TrainingRecovery: 1500 # 1.5sec delay after training failure
Class1RecvAbortOK: 200 # wait 200ms for abort response
Class1FrameOverhead: 4 # 4 byte overhead in recvd HDLC frames
Class1MsgRecvHackCmd
Class1RecvAbortOK
Class1RecvIdentTimer
- Class1SendMsgDelay
Class1SwitchingCmd
Class1TCFMaxNonZero
Class1TCFMinRun
Maximum time to wait for OK after aborting a receive (ms)
# Class1RecvIdentTimer \
Maximum wait for initial identification frame (ms)
-# Class1SendMsgDelay Delay after completing training (ms)
# Class1SwitchingCmd \
Command to ensure silence after receiving HDLC and before sending
# Class1TCFRecvTimeout Timeout for receiving TCF (ms)
* "before sending any signals using V.27 ter/V.29/V.33/V.17
* modulation system"
*/
- pause(conf.class1SendMsgDelay);
+ if (!atCmd(conf.class1SwitchingCmd, AT_OK)) {
+ protoTrace("Failure to receive silence.");
+ return (send_failed);
+ }
}
/*
if (flowControl == FLOW_XONXOFF)
setXONXOFF(FLOW_XONXOFF, FLOW_NONE, ACT_FLUSH);
if (!useV34) {
- pause(conf.class1SendMsgDelay); // T.30 5.3.2.4
+ // T.30 5.3.2.4 (03/93) gives this to be a 75ms minimum
+ if (!atCmd(conf.class1SwitchingCmd, AT_OK)) {
+ protoTrace("Failure to receive silence.");
+ return (false);
+ }
/*
* T.30 Section 5, Note 5 states that we must use long training
* on the first high-speed data message following CTC.
{ "modemringsbeforeresponse", &ModemConfig::ringsBeforeResponse, 0 },
{ "modemsoftresetcmddelay", &ModemConfig::softResetCmdDelay, 3000 },
{ "class1tcfrecvtimeout", &ModemConfig::class1TCFRecvTimeout, 4500 },
-{ "class1sendmsgdelay", &ModemConfig::class1SendMsgDelay, 200 },
{ "class1trainingrecovery", &ModemConfig::class1TrainingRecovery,1500 },
{ "class1recvabortok", &ModemConfig::class1RecvAbortOK, 200 },
{ "class1rmpersistence", &ModemConfig::class1RMPersistence, 2 },
fxStr class1SwitchingCmd; // after recv HDLC and before sending
fxStr class1MsgRecvHackCmd; // cmd to avoid +FCERROR before image
u_int class1TCFRecvTimeout; // timeout receiving TCF
- u_int class1SendMsgDelay; // delay (ms) after training
u_int class1TrainingRecovery; // delay (ms) after failed training
u_int class1RecvAbortOK; // if non-zero, OK sent after recv abort
u_int class1RMPersistence; // how many times to persist through +FCERROR
Class1TCFRecvHack boolean \s-1No\s+1 Class 1/1.0: deliberately look for carrier loss before TCF
Class1TCFRecvTimeout integer \s-14500\s+1 Class 1/1.0: max wait (ms) for \s-1TCF\s+1
Class1TMConnectDelay integer \s-10\s+1 Class 1/1.0: delay between +FTM CONNECT and data transmission
-Class1SendMsgDelay integer \s-1200\s+1 Class 1/1.0: delay before sending image data
Class1SwitchingCmd string \s-1AT+FRS=7\s+1 Class 1/1.0: command to ensure silence after HDLC reception
Class1TrainingRecovery integer \s-11500\s+1 Class 1/1.0: delay after failed training
Class1ValidateV21Frames boolean \s-1No\s+1 Class 1/1.0: check FCS against received frames
data carrier to be shortened, thus increasing the likelihood of recovery from
any dissynchronization.
.TP
-.B Class1SendMsgDelay
-The time, in milliseconds, to delay just before sending the image data.
-According to T.30: 5.3.2.4 this should be no less than 75 ms; however,
-in practice some receivers are slow to drop their CFR transmission
-carrier and need more time to start up their reception carrier.
-.TP
.B Class1SwitchingCmd
The command used to ensure that the sending facsimile device has turned
off its modulator (i.e. loss-of-carrier)