isdnexam 1.01.0 USER MANUAL
David Cutting ( August 2000

Please ensure that you read the licence information contained in licence.txt in this directory!

Installation of this software is covered in the README file in the root directory of this package.

isdnexam is provided as a method of monitoring easily and automating dialling of ISDN lines using the isdn4linux toolset. This was developed following a requirement that an ISDN line be effectively always open under Linux.

The problems were that:
(a) the ISP hung up after 3 hours
(b) isdnctrl dialmode auto didn't work as the default routing device (ippp0) is deleted by ipppd when the line drops.
(c) users wanted one script that will tell them simply what the linestate is.

isdnexam is designed for use with isdnctrl and relies on the kernel module for ISDN to be loaded (giving access to the /dev/isdninfo device). The user's ISDN ppp devices must also be named ippp0 and ippp1.

You can call isdnexam (once installed) from the /usr/sbin/local/ isdnexam script. The script takes parameters and deals with them appropriately.

Again; the instructions on use are in the README file. Briefly;

isdnexam exam

will return linestate in the form of:
64k Disconnected/Connecting/Connected and
128k Disconnected/Connecting/Connected

or return an error of
Unable to determine state of ipppX

which indicates a failure with the isdn4linux tools or the kernel ISDN support (if you are getting the 64k state and then not the 128k - have you configured your system for 128k and enabled mp in ioptions?).

isdnexam auto

returns similar information and then automatically deals with it:

if 64kbps is down (no link)
the /isdn/isdnres script is run (see isdnres section)
isdnctrl dial ippp0 is called

if 64kbps is up and 128kbps is down
isdnctrl dial ippp1 is called

This will allow automation of the ISDN system and ensure optimum connection. You can put a script in a relevent /etc/cron.WHATEVER directory and run it whenever. I have created a cron.minute which is parsed every minute and put a link to the script in there.

The /isdn/isdnres script is run before connecting the 64kbps line. This 'kludge' was incorporated after users reported a Kernel Panic following a remote hangup and reconnect upon the first packet.

I tried to investigate this problem and have discovered the following:

(a) isdn-config under RedHat 6.2 only allows 64kbps configuration and when the ioptions is upgraded to deal with 128kbps and multiple connections (+mp) - the second line is not actually created or configured.

(b) there is a weird error somewhere with either ipppd or the kernel routeing with dynamic ippp devices that does indeed seem to cause a kernel panic following a remote hangup and a manual or automated redial. First packet transmitted (any port) causes an immediate Kernel Panic and machine freeze.

If anyone has any idea on how to fix either of these problems then PLEASE email and I can fix this properly and/or make isdnexam redundant!!

If you require information on configuration of ISDN under Linux then this is not the place to be looking! You want to see: isdn4linux tools

or the ISDN-HOWTO which can be found at

To report bugs, please contact If you require support and it's genuinely not an ISDN problem or covered in the manual then you can email me (see above) but I can make NO GUARENTEES that I will be able to get back to you. I am always open to obscure compilation problems under weird OS's though so contact me if you've got an interesting problem.

isdnexam homepage:

Copyright 2000 David Cutting