Provided by: isdnutils-base_3.12.20071127-0ubuntu11_amd64 bug

NAME

       isdnctrl - ISDN control device

SYNOPSIS

       #include <linux/isdn.h>

DESCRIPTION

       /dev/isdnctrl  is a character device with major number 45 and minor numbers 64 to 127.  It
       allows controlling functionality of the Linux ISDN subsystem.

IOCTL FUNCTIONS

       Currently, the following ioctl calls are supported:

       IIOCNETAIF
              Add an ISDN network interface.
              This function adds  a  network  interface  to  the  kernel's  device  table.   This
              interface can be used just like normal eth interfaces.

              Argument:
                     arg  should point to a zero terminated string of max. 10 characters.  if arg
                     is NULL, the kernel assigns a name.

              Return:
                     On success, the name of the new interface is copied to arg.   and  the  call
                     returns 0. On failure, an error code is returned.

       IIOCNETASL
              Create a slave interface.
              Creates  a  slave  interface for RAW-device channel-bundling.  These devices behave
              like network-interfaces, execpt they are invisible to user.  Only  ISDN  parameters
              can  be  controlled,  but  no  IP-parameters.  IP-parameters are inherited from the
              corresponding master-device.

              Argument:
                     arg should  point  to  a  zero  terminated  string  of  max.  21  characters
                     containing  two  comma-separated  names.  The  first  part is the name of an
                     existing ISDN network device, which will be master. The second part will  be
                     the name of the new slave interface.

              Return:
                     On  success,  the  name of the new interface is copied to arg.  and the call
                     returns 0. On failure, an error code is returned.

       IIOCNETDIF
              Delete a network-interface.
              This call deletes an existing ISDN network interface.

              Argument:
                     arg should point to a zero terminated string of max. 10 characters naming an
                     existing  interface  which  will  be  deleted.  If the interface is a master
                     interface, all it's slave-interfaces will be deleted also.

              Return:
                     On success, the call returns 0. On failure, an error code is returned.

       IIOCNETSCF
              Set configurable parameters of an ISDN network interface.
              This call replaces all ISDN related parameters of an interface  by  the  parameters
              given.

              Argument:
                     arg shoud point to a struct isdn_net_ioctl_cfg (defined in linux/isdn.h)

              Return:
                     On success, the call returns 0. On failure, an error code is returned.

       IIOCNETGCF
              Get configurable parameters of an ISDN network interface.
              This call returns all ISDN related parameters of an interface.

              Argument:
                     arg  shoud  point  to  a struct isdn_net_ioctl_cfg (defined in linux/isdn.h)
                     which will be filled by the current setup.

              Return:
                     On success, the call returns 0 and the interface-setup is copied to *arg. On
                     failure, an error code is returned.

       IIOCNETANM
              Add a phone number to an ISDN network interface.
              This call adds a phone number to an existing network interface.

              Argument:
                     arg  shoud  point  to a struct isdn_net_ioctl_phone which contains necessary
                     information.

              Return:
                     On success, the call returns 0 and the  phone  number  is  added  to  either
                     outgoing or incoming number list. On failure, an error code is returned.

       IIOCNETDNM
              Delete a phone number from an ISDN network interface.
              This call deletes a phone number from an existing network interface.

              Argument:
                     arg  shoud  point  to a struct isdn_net_ioctl_phone which contains necessary
                     information.

              Return:
                     On success, the call returns 0 and the phone number is deleted  from  either
                     outgoing or incoming number list. On failure, an error code is returned.

       IIOCNETGNM
              Get list of phone numbers from an ISDN network interface.
              This  call  returns  the  list  of  phone numbers associated to an existing network
              interface.

              Argument:
                     arg shoud point to a a union of struct isdn_net_ioctl_phone  and  a  buffer,
                     large  enough  to  hold  a concatenated list of strings containing the phone
                     numbers.

              Return:
                     On success, the call returns 0 and the list of phone numbers is returned  as
                     a space-separated list of number-strings terminated by a NULL byte.

       IIOCNETDIL
              Trigger dialing of an ISDN network interface.
              This  call  initiates dialing of an ISDN network interface, if it is not connected.
              Normally, this ioctl is not needed, because ISDN network interface perform dial  on
              demand by deafult.

              Argument:
                     arg  should  point  to a zero terminated string of max. 10 characters naming
                     the desired interface.

              Return:
                     On success, the call returns 0 and the interface starts dialing.

       IIOCNETHUP
              Hangup an ISDN network interface.
              This call initiates hangup of an ISDN network interface, if it is connected.

              Argument:
                     arg should point to a zero terminated string of max.  10  characters  naming
                     the desired interface.

              Return:
                     On success, the call returns 0 and the interface hangs up.

       IIOCNETALN
              Add a link of an MPP-configured ISDN network interface.
              This  call initiates dialing of a Multilink-PPP slave ISDN network interface, if it
              is not connected.

              Argument:
                     arg should point to a zero terminated string of max.  10  characters  naming
                     the desired interface.

              Return:
                     On success, the call returns 0 and the interface starts dialing.

       IIOCNETDLN
              Hangup an MPP-configured ISDN network interface.
              This  call  initiates  hangup  of an Multilink-PPP ISDN network interface, if it is
              connected.

              Argument:
                     arg should point to a zero terminated string of max.  10  characters  naming
                     the desired interface.

              Return:
                     On success, the call returns 0 and the interface hangs up.

       IIOCNETARU
              Add a timeout rule to an ISDN network interface.
              This call adds a timeout rule to an existing interface.

              Argument:
                     arg   should  point  to  a  struct  isdn_ioctl_timeout_rule  containing  the
                     necessary parameters.

              Return:
                     On success, the call returns 0 and the rule is added to the rule list of the
                     interface.

       IIOCNETDRU
              Delete a timeout rule from an ISDN network interface.
              This call deletes a timeout rule from an existing interface.

              Argument:
                     arg   should  point  to  a  struct  isdn_ioctl_timeout_rule  containing  the
                     necessary parameters.

              Return:
                     On success, the call returns 0 and the rule is deleted from the rule list of
                     the interface.

       IIOCNETGRU
              Get a timeout rule from an ISDN network interface.
              This call returns a timeout rule from an existing interface.

              Argument:
                     arg   should  point  to  a  struct  isdn_ioctl_timeout_rule  containing  the
                     necessary parameters.

              Return:
                     On success, the call returns 0 and the struct is filled from the  rule  list
                     of the interface.

       IIOCNETBUD
              Handle budget accounting of an ISDN network interface.

              Argument and Return:
                     to be defined.

       IIOCSETVER
              Set verbosity of link level.

              Argument:
                     arg is an integer, defining the new verbose value.

              Return:
                     This call always returns 0.

       IIOCSETGST
              Set global stop flag of link level.

              Argument:
                     arg is an integer, defining the new stop flag value (0 or !0).

              Return:
                     This call always returns 0.

       IIOCSETBRJ
              Set busreject flag of a lowlevel driver.

              Argument:
                     arg  should  point to an struct isdn_ioctl_struct containing the driver's ID
                     and the value of the busreject flag.

              Return:
                     On success, the call returns 0 and the busreject flag of the selected driver
                     is set according the given parameter.

       IIOCSIGPRF
              Enable signaling on change of modem profiles.
              With  this  call,  the  calling  process  is registered to receive a SIGIO on every
              change of any register of any ttyI. Thus it can read  register  settings  and  save
              them to a file. The calling process has to keep the device open in order to receive
              notifications.  As soon as it closes the device, registration is deleted.

              Argument:
                     none

              Return:
                     This call always returns 0.

       IIOCGETPRF
              Get all modem register settings.
              With this call, all modem registers of all ttyI devices can be read.

              Argument:
                     arg should point to a buffer of length ( ISDN_MODEM_ANZREG + ISDN_MSNLEN ) *
                     ISDN_MAX_CHANNELS.

              Return:
                     On return, the provided buffer is filled with the register values.

       IIOCSETPRF
              Set all modem register settings.
              With this call, all modem registers of all ttyI devices can be written.

              Argument:
                     arg should point to a buffer of length ( ISDN_MODEM_ANZREG + ISDN_MSNLEN ) *
                     ISDN_MAX_CHANNELS.  filled with the values of all modem registers.

              Return:
                     On return, the modem registers are set from the  contents  of  the  provided
                     buffer.

       IIOCSETMAP
              Set Mapping table.
              This call is used to set EAZ/MSN mapping of a lowlevel driver.

              Argument:
                     arg  should  point  to  a  struct isdn_ioctl_struct containing the necessary
                     parameters.

              Return:
                     On success, the mapping table is set from the given parameters an  the  call
                     returns 0.

       IIOCGETMAP
              Get Mapping table.
              This call is used to get EAZ/MSN mapping of a lowlevel driver.

              Argument:
                     arg  should  point  to  a  struct isdn_ioctl_struct containing the necessary
                     parameters.

              Return:
                     On success, the current mapping table of the given driver  is  returned  and
                     the call returns 0.

       IIOCDRVCTL
              Lowlevel driver ioctl.
              This call is used for controlling various lowlevel drivers. The ioctl-code for this
              command is assembled by adding IIOCDRVCTL (128) and the desired driver  ioctl-code.
              Therefore, a lowlevel driver can understand a maximum of 127 different ioctls.

              Argument:
                     arg  should  point  to  a  struct isdn_ioctl_struct containing the necessary
                     parameters, especially the driver-Id  must  be  filled  correctly.  The  arg
                     component  inside  isdn_ioctl_struct  is  handed  down to the driver's ioctl
                     function. Its meaning is not  defined  here  and  depends  on  the  lowlevel
                     driver.  See  documentation for the various lewlevel drivers for information
                     about driver- specific ioctl.

              Return:
                     The return code depends on the driver's ioctl function. Usually, 0 means  no
                     error.

AUTHOR

       Fritz Elfert <fritz@isdn4linux.de>

SEE ALSO

       isdninfo(4), icnctrl(4).