Next Previous Contents

17. chargeint: Chargeint

17.1 chargeint_whatis: What does Chargeint?

Chargeint is a way to reduce your costs when you have charges based on your time online, and the interval between two charges (the Charge Interval) is relatively large (e.g. per minute).

Chargeint only hangs up two seconds before the end of a charge unit. isdnlog can be used to set the length of the charge unit (i.e. Charge Interval) according to the time of day and the date.

17.2 chargeint_config: How should I configure Chargeint?

You can set the length of a charge unit manually via the isdnctrl parameter chargeset, or set up isdnlog to do this automatically for you:

  1. Set up isdnlog, so that it has all the information about your location and your telephone company (so that it knows your rates).
  2. Start isdnlog with the options -h0 and -w.
  3. Set your huptimeout as you like (idle time needed before i4l will consider a hangup). E.g.:
    /sbin/isdnctrl huptimeout ippp0 5

    Then i4l will hang up 2 seconds before the end of your charge unit, if the 5 seconds before (huptimeout) no activity has happened on the line.

17.3 chargeint_whennot: When does it not make sense to use the chargeint?

  1. It does not make sense to use Chargeint when you are charged per data volume, or per flat fee. Chargeint can only reduce your costs when you are charged per time online.
  2. Also it makes no sense if you are charged in small units (e.g. per second rather than per minute).
  3. Chargeint may or may not make sense when every new dialup costs you fixed amount on top of the variable charges (depending on the rates).
  4. There are problems when the ip address is assigned dynamically. A broken connection cannot simply be restarted (since the IP address has changed). The interrupted FTP, telnet or WWW connection must then be newly established.

17.4 chargeint_correcttime: How can I be sure that the chargeint patch is using the correct time?

It's best to synchronize the clock in your own computer with that of the switching station by calling isdnlog with option -t2.

17.5 chargeint_nohangup: The connection doesn't end with timeout.

Chargeint will only hangup if there was no activity on the line. Possibly your service provider uses a router (e.g. Cisco) which sends a "keep alive" packets every ten seconds. If the Cisco doesn't get an answer for its keep alive packets then it will stop routing. This normally happens after the 4. or 5. keep alive packet. Very recently (begin of 2001), support for Cisco's keep alive packages has been corrected, so you can either use it, or tell the provider not to use keep alive packets ("no keepalive" in the Cisco configuration).

It could also be that it's not the keep alive packets that are keeping the connection open, but rather OSPF routing updates. The sending of these updates can only be switched off on the Cisco. You can configure "snapshot server" on the BRI interface. That means it will send out routing updates only when they are received through this interface.

However, nowadays the most likely cause for open connection is that connection requests looking for a backdoor or a file sharing application cause issues like this. You can use the active-filter option of ipppd to indicate which packets should be regarded as link activity. See the man page for more details. A configuration could be like this:

active-filter 'outbound and not icmp[0] == 3 and not tcp[13] & 4 != 0'

Next Previous Contents