           isdninfo - ISDN status device

## SYNOPSIS

           #include <linux/isdn.h>

## DESCRIPTION

           /dev/isdninfo  is  a character device with major number 45
           and minor number 255.  It delivers status information from
           the Linux ISDN subsystem to user level.

## DATA FORMAT

           When  reading  from this device, the current status of the
           Linux ISDN subsystem is delivered in 6 lines of text. Each
           line  starts  with  a  tag  string followed by a colon and
           whitespace. After that the status values are appended sep
           arated by whitespace.

           idmap  is  the  tag  of  the  first line. In this line for
                  every virtual channel, the Id-string of the  corre
                  sponding  lowlevel driver is shown. If no driver is
                  loaded, a - (hyphen) is shown.

           chmap  is the tag of line 2. In this line for  every  vir
                  tual channel, the channel number of the correspond
                  ing lowlevel driver  is  shown.  If  no  driver  is
                  loaded, -1 is shown.

           drmap  is  the  tag of line 3. In this line for every vir
                  tual channel, the index number of the corresponding
                  lowlevel  driver  is shown. If no driver is loaded,
                  -1 is shown.

           usage  is the tag of line 4. In this line for  every  vir
                  tual  channel, the current usage is shown. The fol
                  lowing usage constants are defined:

                  ISDN_USAGE_NONE (0)
                         Unused channel

                  ISDN_USAGE_RAW (1)
                         Channel used by raw device (currently unsup
                         ported)

                  ISDN_USAGE_MODEM (2)
                         Channel used by some ttyI

                  ISDN_USAGE_NET (3)
                         Channel used by an ISDN net-interface

                  ISDN_USAGE_VOICE (4)
                         Channel used by some ttyI in voice mode.

                         Channel  exclusively  preserved  for  a net-
                         interface. This  value  is  logically  or'ed
                         with one of the other codes.

                  ISDN_USAGE_OUTGOING (128)
                         Channel is used outgoing. This value is log
                         ically or'ed with one of the other codes. It
                         is  set, when dialling is started and reset,
                         when either dialling failed or after hangup.
                         Therefore, it is not always an indicator for
                         an established connection. To get a reliable
                         indicator for an established connection, the
                         driver  flags  (see  below)   have   to   be
                         inspected also.

           flags  is the tag of line 5. In this line for every driver
                  slot, it's B-Channel status is shown. If no  driver
                  is  registered  in a slot, a ? is shown.  For every
                  established B-Channel of the driver, a bit  is  set
                  in  the  shown value. The driver's first channel is
                  mapped to bit 0, the second channel to bit 1 and so
                  on.

           phone  is  the  tag of line 6. In this line for every vir
                  tual channel, the remote phone number is  shown  if
                  the channel is active. A ??? is shown, if the chan
                  nel is inactive.

## BLOCKING BEHAVIOUR

           After opening the device, at most 6 lines can be read by a
           user  process.   After  that, the user process is blocked.
           Whenever a status change happens, the process  is  allowed
           to read 6 more lines, starting with line one.

## IOCTL FUNCTIONS

           Currently, there are two ioctl calls supported:

           IIOCGETDVR
                  Get Revision information.
                  Returns an unsigned long value v, representing var
                  ious user level interface revisions, where

                  (v & 0xff)
                         is the revision of the modem-register  info,
                         available via ioctl on /dev/isdnctrl.

                  ((v >> 8) & 0xff)
                         is  the revision of the net-interface config
                         data, available via ioctl on  /dev/isdnctrl.
                         and
                         is  the  revision  of the data delivered via
                         /dev/isdninfo itself.

           IIOCGETCPS
                  Get transfer statistics.
                  Returns the number of bytes transferred so far  for
                  all virtual channels. The third parameter should be
                  a pointer to an array  of  unsigned  long  of  size
                  ISDN_MAX_CHANNELS  *  2.  This array is filled with
                  the byte counter values upon return.

## OTHER CONSTANTS

           There  are  some  more   useful   constants   defined   in
           /usr/include/linux/isdn.h:

           ISDN_TTY_MAJOR
                  The major device number of /dev/ttyI.

           ISDN_TTYAUX_MAJOR
                  The major device number of /dev/cui.

           ISDN_MAJOR
                  The major device number of /dev/isdnctrl, /dev/isd
                  ninfo, /dev/ippp and /dev/isdn

           ISDN_MAX_DRIVERS
                  The number of driver slots.

           ISDN_MAX_CHANNELS
                  The number of virtual channels.

           ISDN_MINOR_CTRL
                  The minor device number of /dev/isdnctrl0.

           ISDN_MINOR_CTRLMAX
                  The minor device number of /dev/isdnctrl63.

           ISDN_MINOR_PPP
                  The minor device number of /dev/ippp0.

           ISDN_MINOR_PPPMAX
                  The minor device number of /dev/ippp64.

           ISDN_MINOR_STATUS
                  The minor device number of /dev/isdninfo.

           Other constants, necessary for  ioctl's  on  /dev/isdnctrl
           are listed in isdnctrl(4).

## AUTHOR

           Fritz Elfert <fritz@wuemaus.franken.de>

           isdnctrl(4), icnctrl(4).