There is a new feature that I'd like to see in pppd and would be happy
to add it myself if there's enough demand. Please reply with comments.
The feature is to be able to configure auto-redial patterns. At present
there is a config parameter called `holdoff' which specifies the number
of seconds that pppd waits before re-establishing a dropped or
interrupted connection. Our clients have been asking for the ability to
customize this according to their ISP. Some local ISPs enforce their own
hang-up and 15-minute lockout period after a 2-hour successful
connection during peak times. Since the cost of local calls is
equivalent to around US15c per call, it becomes very expensive to keep
constantly redialling during an enforced lock-out period. Furthermore,
if there is a problem authenticating overnight, the modem can go into a
redial loop that in a recent case cost our client US$50 of local phone
calls overnight.
If there is an existing solution to this, while still retaining the
flexibility of demand dialling, I would appreciate someone letting me
know. Otherwise, I would like to include the feature of being able to
specify auto-redial patterns in pppd.
The simplest approach I can think of is to simply extend the holdoff
parameter by specifying a list of times and constraints, perhaps as
follows:
holdoff 0,60,300,900,7200,x
or
holdoff 0,1m,5m,2h,8h,x
where m means `minutes' and h means `hours'. This would be interpreted
as zero-holdoff initially (i.e. redial immediately if necessary), then
if that fails holdoff for 1 minute, if that fails holdoff for 5 minutes
and so forth. The `x' means `give-up' - i.e. cease all attempts until
manually restarted or HUPped, otherwise the last specified holdoff will
continue being used. Upon successful connection the holdoff would be
reset to the beginning of the list. A `successful connection' is defined
either as pppd successfully negotiating a connection protocol or
possibly based on a minimum connection time (in case the ISP starts up
PPP correctly and then falls over, as I've seen happen).
It could even be extended to:
holdoff '<2h:0,1m,5m,>=2h:15m,1h,2h'
meaning that if a connection has been less than 2 hours, try hold-offs
of 0, 1 minute and 5 minutes, but if 2 hours or more, hold off for 15
minutes, then 1 hour, etc. This is a superset of the above syntax but
includes constraints as well, though I feel it is a bit complex and it
also requires shell escapes (').
Note that both of the above are still compatible with the original
specification of a single value specifying seconds.
If somebody has already done all of this or something equivalent, please
let me know as I'd like to avoid re-inventing the wheel. Alternatively,
if you have other suggestions and syntaxes (syntaces?), I'd really
appreciate the feedback. Feedback from the code maintainers would be
great too - if this conflicts with what you're doing, and how you would
like me to contribute to the public release, if at all.
Thanks!
jk
-
To unsubscribe from this list: send the line "unsubscribe linux-ppp" in
the body of a message to [EMAIL PROTECTED]