ClassModem::waitForRings(u_int n, CallType& type, CallerID& cinfo)
{
if (n > 0) {
- time_t timeout = n*6; // 6 second/ring
+ time_t timeout = n * (conf.ringTimeout/1000); // 6 second/ring
time_t start = Sys::now();
do {
- switch (atResponse(rbuf, 6000)) {
+ switch (atResponse(rbuf, conf.ringTimeout)) {
case AT_OTHER: // check distinctive ring
if (streq(conf.ringData, rbuf))
type = CALLTYPE_DATA;
u_int ModemConfig::* p;
u_int def;
} numbers[] = {
+{ "ringtimeout", &ModemConfig::ringTimeout, 6000 },
{ "percentgoodlines", &ModemConfig::percentGoodLines, 95 },
{ "maxconsecutivebadlines", &ModemConfig::maxConsecutiveBadLines,5 },
{ "modemresetdelay", &ModemConfig::resetDelay, 2600 },
fxStr onHookCmd; // cmd for placing phone ``on hook''
fxStr softResetCmd; // cmd for doing soft reset
u_int softResetCmdDelay; // time in ms to pause after soft reset
+ u_int ringTimeout; // timeout in ms after RING to reset
fxStr waitTimeCmd; // cmd for setting carrier wait time
fxStr pauseTimeCmd; // cmd for setting "," pause time
fxStr mfrQueryCmd; // cmd for getting modem manufacturer
RingExtended string \s-1"RING "\s+1 extended ring message identifier
RingFax string \- distinctive ring fax call identifier
RingsBeforeAnswer integer \s-10\s+1 rings to wait before answering phone
+RingTimout integer \s-16000\s+1 timeout in ms after RING before reset
RingVoice string \- distinctive ring voice call identifier
RTNHandlingMethod string \s-1Retransmit\s+1 RTN signal handling method
SendFaxCmd\(S1 string \s-1bin/faxsend\s+1 fax transmit command script
be answered in response to an explicit answer command; see
.IR faxanswer (${MANNUM1_8}).
.TP
+.B RingTimeout
+If a ring is heard and the call is not answered, the time in
+ms to wait before reinitializing the modem for the next call.
+.TP
.B RingVoice
A modem status string that identifies that an incoming call is
for voice use.