isdnlog(8)                Linux System Administration               isdnlog(8)


       isdnlog - isdn log system (and more)


       Isdnlog gets information from your isdn card, decodes this information,
       and can do anything with it, such as logging,  starting  programs,  and
       more. All options to isdnlog can be given as command line flags, or you
       can specify a file with options (recommended).


       Isdnlog only works with the HiSax isdn driver. Other cards  with  their
       own driver are not supported. Additionally you need to enable d-channel
       logging (you can use "hisaxctrl  <DriverId>  1  4"  to  do  that,  e.g.
       "hisaxctrl line0 1 4"). Isdnlog can only log outgoing calls that origi-
       nate from your isdn card, and incoming calls. To get information  about
       outgoing  calls  from  other isdn devices (e.g. telephones), you need a
       second Teles isdn card, with crossed lines. Such a card is  not  usable
       for communicating, but can log outgoing calls from any device (see dual
       option below).


       -V     show version information and exit.

       -fFILE read options from the config  file  FILE.   This  file  is  also
              called  the parameter file of isdnlog.  The first line should be
              "[options]". You may use blank lines and comments (starting with
              a #).  All config files for isdnlog have the format described in
              isdn.conf(5).  Debug options must be given on the command  line,
              they cannot be stored in a file.

              isdnlog  will  read from this device and from /dev/isdninfo. You
              should give /dev/isdnctrl0 for the first isdn card (or /dev/isd-
              nctrl2 for the second).

              Isdnlog  has a replay mode for debugging, where you can simulate
              previous recorded events. In that case  use  "-"  instead  of  a

       -Ax  amt="value"
              Set  digits  necessary  to  get  an outside line, when connected
              through a PABX.  You can give several codes padded  with  a  ":"
              (e.g. -A0:80:81:82).

              (There  is no commandline option for this.)  Overwrite area code
              from isdn.conf.  A machine connected to  subscriber  lines  with
              different  area codes and thus several isdnlogs running requires
              this non global setting.

       -Bvbn     vbn="value"
              Set the provider preselection to the given value. More  prefixes
              may be separated by a ":".
              Values  are  e.g. "010" for DE, "10" for AT, "16:17" for NL, "9"
              for FR.

       -Rprefix  preselected="value"
              Set the preselected (i.e the provider choosen, if no  prefix  is
              dialed) provider to value. Value should be without vbn.

              (There  is  no  commandline  option  for  this.)  Ignore certain
              providers from the rate-file.  The format  of  skiplist  is  the
              same  as for Q: tags in rate.conf and described in rate.conf(5).

       -0x:y     trim="value[:value]"
              Suppress leading digits. If isdnlog is connected through a PABX,
              it  is sometimes not possible to let isdnlog distinguish between
              a national and an international call, even with help of  the  -A
              This  option  requires two values separated with ":" as an argu-
              ment. These values tell  isdnlog  how  many  leading  digits  to
              remove  from  incoming  and outgoing calls respectively. If only
              one value is given, it is used for both  incoming  and  outgoing
              Don’t use this in combination with the -A option! This will con-
              fuse the system (and possibly you).

              Example: a PABX in Germany shows the number of an incoming  call
              from  Hamburg  as  "00040...".   When calling out to Hamburg, it
              shows the number as "0040...".   This  means  that  on  incoming
              calls,  three  zeroes must be removed, and on outgoing calls two
              zeroes must be removed (the number  must  be  normalized  to  be
              without  any  leading  zeroes  in the case of a national number;
              international numbers must have one leading zero). So,  in  this
              case, the option -03:2 would be correct.

       -ix  internS0="value"
              Telefon  number shorter then value are considered to be internal
              numbers on your PABX.

       -o   other={yes|no}
              Normally "causes" (e.g. "non-selected user clearing") for  other
              connected  ISDN  devices are not displayed, only those which are
              related to the connection will be shown. With  this  option  the
              causes for the other devices are also displayed.

       -ux  ignoreRR="value"
              Ignore  "housekeeping"  frames.   x may be 1 (ignore RR=Receiver
              ready) or 2 (ignore EMP=Euracom Management Protokoll) frames.

       -Ux[:y]   ignoreCOLP="value[:value]"
              Ignore COLP/CLIP frames when value is 1 or greater.  Value 0  is
              default, and tells isdnlog to not ignore COLP/CLIP frames.  With
              value 2 the ignored COLP/CLIP number is displayed.
              The first value applies to COLP the second to CLIP. If only  one
              value is given, it applies to COLP and CLIP.
              Sometimes the COLP number is a number in a different areacode to
              the number that was dialled, and then the cost calculation would
              be wrong.

              (There  is  no  commandline  option for this.)  A PABX may cause
              numerous  messages  like  "Unexpected  discriminator   0x47   --
              ignored!"  resulting from protocol discriminator values in layer
              3 not known to isdnlog.  Set ignoreUPD to yes to  suppress  this

       -2x  dual="value"
              Enable  dual  mode. You need this if you have a second isdn card
              attached with crossed lines so it can listen to what other  isdn
              devices like telephones are doing. With x=2 you can increase the
              debug output - every single digit will be displayed.

              Some setups may require workarounds for reliable logging.  These
              workarounds  are enabled by addition of the following numbers to
              the dual value.  They are intended for the dualmode but may also
              be  useful  without.   In this case, specify only the sum of the
              following numbers without 1 or 2 for the dual mode.

              0x100  Enable this when the destination number  of  an  outgoing
                     call contains the number of the previous call, e.g. call-
                     ing 222 after calling 111 before results  in  111222  for
                     the second call.

                     This  may  also  help  in  situations where an unanswered
                     incoming call causes incorrect logging of  the  following
                     outgoing call.

              0x200  Enable  this  when  outgoing  calls  are logged without a
                     source number (own MSN).

              0x400  Enable this when unanswered  incoming  calls  are  logged
                     multiple times (revealed by isdnrep -E).

       -1     A HFC-based card is used for echo mode. Enable echo mode for the
              HFC card with
              hisaxctrl id 10 1
              hisaxctrl id 12 1


       -r     Replay a debug file (e.g. /tmp/isdnctrl0)  to  find  bugs.  With
              this  flag you should give a filename with the debug information
              instead of a device.  It will also work with files  not  created
              by isdnlog (e.g.  "cat /dev/isdnctrl0").

       -n   newline={yes|no}
              Display  throughput  messages on the same line (only useful with
              logging to stderr or a console device).

       -WX  width="value"
              Limit all messages to X characters per line.

       -vX  log=X
              Isdnlog can copy all information to /tmp/DEVICE (e.g.  /tmp/isd-
              nctrl0  if you started isdnlog with /dev/isdnctrl0). Choose what
              debugging you want from the following list, add the  correspond-
              ing numbers together and use that for X:

              1      copy  all "HEX:" lines from the hisax isdn device driver.
              2      copy /dev/isdnctrl output (or whatever device you  speci-
              4      copy /dev/isdninfo output
              8      copy transfer values ("ibyte","obyte").

              Isdnlog will close and reopen this file after a "kill -HUP".

       -s   flush={yes|no}
              Isdnlog  will flush the debug file /tmp/DEVICE (e.g. /tmp/isdnc-
              trl0) after each write access.

       -P   pipe={yes|no}
              Copy the debug information to  stdout.  This  way  you  can  run
              isdnlog  as the source of a pipe like "isdnlog -P /dev/isdnctrl0
              |prog ... ".

       -D   daemon={yes|no}
              Start isdnlog as daemon: it will fork into the  background,  and
              use syslog as the default logging method (if you did not specify

       -T     Trace mode: isdnlog will wait for a key after processing a  line
              from /dev/isdnctrl0 (or whatever device you specified).

       -K     Print  for  every pressed key the thruput. Can not used together
              with option -d.

       -b     If you are using a bilingual network terminator (NT),  you  must
              give  this flag, or isdnlog will show the own MSN’s incorrectly.


       You can define aliases for telephone numbers (see callerid.conf(5)  and
       isdn.conf(5) for more information). Isdnlog will compare all numbers to
       the list of aliases, and when a match is found, the alias is  displayed
       instead of the number.


       Isdnlog can log information via syslog, to stdout, and send information
       to x11 clients. Calculate a code from these numbers by adding them, and
       activate  logging  with -s, -m or -x. You can use normal numbers or hex
       numbers. Default is stderr mode -m, unless daemon mode is enabled; then
       it’s syslog mode -l.

       0x1    Errors

       0x2    Warnings

       0x4    Notice

       0x8    Log  messages  to /tmp/DEVICE (e.g. /tmp/isdnctrl0 if isdnlog is
              started with /dev/isdnctrl0)

       0x10   Show telephone numbers immediately.

       0x20   Show charge int and telephone costs with every charge signal (in
              Germany,  and  perhaps  other  countries, you have to pay to get
              these signals).

       0x40   Show connect messages.

       0x80   Show hang up messages.

       0x100  Show cause message on hang up.

       0x200  Show time messages.

       0x400  Show throughput in bytes (every -wX seconds).

       0x800  Show state of B-channels (use with -M monitor).

       0x1000 Show service indicator.
              You should log at least 0x7 (errors, warnings, notice) messages.

       0x2000 Log estimated time till next charge signal.

       0x4000 Show chargemax.

       0x8000 Enable core file on SIGSEGV.

       0x10000 ... 0x800000, show more diagnostic and debug messages.

       -mX  stdout="value"
              Log to stderr.

       -OX  outfile="path"
              Log  to file X instead of stderr. Isdnlog will close this device
              when it gets a signal -SIGHUP (-1). Only valid with -m option.
              If the name starts with a "+", new data will be appended to  the
              existing  file.   Default behaviour is to truncate the file when
              isdnlog opens it.

       -C X      console="path"
              Log to console X instead of  stderr.  You  can  use  -O  and  -C
              together,  so that isdnlog copies output to both. Specify a full
              pathname.  Beware: you must put a space between -C and X !

       -M   monitor={yes|no}
              With this flag, isdnlog will generate output  for  monitor  pro-
              grams  like imon, imontty or isdnmon. You must also give -m with
              0x800 enabled.

       -lX  syslog="value"
              Log to syslog. X is the log code. You can log to syslog  and  to
              stdout at the same time.

       -xX  xisdn="value"
              Pass  information to x11 client. X is the log code. You can pass
              information to x11 clients and log to syslog  and/or  stdout  at
              the same time.

       -pPORT port="value"
              Pass information to x11 client on this PORT.

       -cX  calls="value"
              Only  with -xX : save the last X calls and pass this information
              to an x11 client. Default value is 100.

       -LX  xlog="value"
              Only with -xX : save the last X messages and pass this  informa-
              tion to an x11 client. Default value is 500.

       -wX  thruput="value"
              If  you enabled throughput logging (0x400), isdnlog will log the
              throughput every X seconds.

       -Ix:y     ciinterval="value[:value]"
              Interval for printing of charge messages (0x20).
              The first value is the interval for the calculated CI, the  sec-
              ond  value  for  the  EH  (AOC-D) messages. If only one value is
              given, both intervals are set to this value.


       -dx  abclcr="value"
              Value is a bitmap:
              0 ... off
              1 ... calls to different area / country
              2 ... local calls too
              4 ... special numbers e.g. ISP
              This needs a kernel patch to work. If the kernel  patch  is  not
              found a simulation is done.
              Note: depending on your telefon provider local area calls may or
              may not be routed to alternate providers.  For changing the  ISP
              a script is called. s. next option ’providerchange’

              (There  is  no  commandline  option  for  this.)  This script is
              called with 3 parameters, the new provider  number  (from  rate-
              CC.dat), the number, which would be dialed, and the servicename.
              The script should adjust routing, name resolution and so  on  to
              connect  to  the  ISP.  If the script returns non zero, LCR will
              not be done.


       -tX  time={0|1|2}
              Isdnlog will set your local system time to the time  transmitted
              by your isdn service provider: -t1 = once, -t2 = every time.


       -hX  hangup="value"
              The  isdn  kernel system has a chargehup system, so it will hang
              up a few seconds before the next charge signal. If you don’t get
              a charge signal from your phone company, isdnlog can emulate it.

              On every outgoing connection, isdnlog will calculate the  charge
              time  from day of week, time of day and the distance zone of the

              The kernel needs to know how long the charge time  is,  and  how
              many  seconds  before  the next charge signal it should hang up.
              You have to set the second parameter with X  in  the  form  num-
              ber:number (hang up seconds before next charge signal for charge
              times greater than or equal to 20 seconds : for charge times  of
              less than 20 seconds).

              With  this  information,  isdnlog  will call "isdnctrl chargeint
              <device> <charge time>" and "isdnctrl huptimeout <device>  <sec-
              onds  before  charge signal>" (it actually communicates directly
              with isdn, without calling isdnctrl, but  this  would  have  the
              same effect).

              You  should  run isdnlog with -t1 or better with -t2, so isdnlog
              sets the local time in sync with telephone switching office.

              If there is a third number in value, this is the minimum connec-
              tion time for providers charging a basic rate per connection.
              e.g. hangup 3:5:60


       isdnlog can react on any event and start programs. This feature is dis-
       abled unless you activate it with:

       -S   start={yes|no}
              active "START" feature. Please read  callerid.conf(5)  for  more

              (There  is  no  commandline  option  for  this.)  If set to yes,
              isdnlog will close all  unnecessarily  opened  file  descriptors
              before  a  "START"  program is executed.  This closing will also
              take place at isdnlog’s restart after SIGHUP.  Default is no.


       isdnlog will log all  connections  in  /var/log/isdn.log.  isdnrep  can
       parse this file and calculate costs.


       If  you  have  more than one isdn card, you need to run one isdnlog for
       each card. And every process must have a different name, so you  should
       create  a symbolic link isdnlog1 -> isdnlog, and start isdnlog1 for the
       second card.


       You cannot unload isdn kernel modules while an isdn device is  in  use,
       e.g. a PPP interface is defined or isdnlog is running. Look at /var/run
       for a file with the process id of isdnlog, and  kill
       that. After that you should be able to unload your isdn kernel modules.


              isdnlog requires a device as a  parameter  to  read  from  (e.g.
              /dev/isdnctrl0 for the 1st isdn card).

              isdnlog  can  copy  everything  it  reads  to this file as debug
              information (e.g. /tmp/isdnctrl0 if  you  started  isdnlog  with

              isdnlog  creates this file with its process id. Useful to see if
              isdnlog is running.

              isdnlog creates a lock file for the device,  so  no  other  pro-
              cesses will access that device.

              isdnlog config file. Options to isdnlog can be given on the com-
              mand line, can be stored in this file in [options] (with command
              line  option  -f/etc/isdn/isdn.conf),  or  in a different config
              file, but isdnlog will look at this file for  sections  [global]
              [variables] [isdnlog].


       SIGHUP (-1)
              On  SIGHUP isdnlog restarts, and does therefore reread it’s con-
              fig files.

       SIGINT (-2), SIGTERM (-15), SIGQUIT (-3)
              Isdnlog quits gracefully on receiving these termination signals.

       SIGSEGV (-11)
              If  the log level contains 0x8000 (and your ulimits permit this)
              isdnlog will generate a core file before terminating.


       I start isdnlog with  "isdnlog  -f/etc/isdn/isdn.conf  /dev/isdnctrl0".
       This file contains a [options] section:

       #newline=no     # show all throughput messages in one line.
       #width=80       # limit log messages to 80 characters per line
       #amt=0:80:81    # digits to get a line through your PABX
       log=15          # maximum debug mode
       flush=no        # flush logfile after every write
       pipe=no         # pipe log messages to stderr
       daemon=yes      # run isdnlog as daemon
       stdout=0x1ff7   # stderr logging level
       outfile=+/var/log/isdn.log               # log to file
       #console=       # log to a console
       monitor=yes     # emulate output for  imon/imontty/...
       syslog=0x1ff7   # syslog logging level
       #xisdn=0x07ff   # x11 output level
       #calls=         # store call information for x11 client
       #xlog=          # store messages for x11 client
       thruput=60      # if throughput logging is enabled: log every X seconds
       time=2          # set time: 0 = never; 1 = once; 2 = every time
       #hangup=        # simulate charge signals
       start=yes       # enable starting programs


       isdnconf(1) isdn.conf(5) callerid.conf(5)
       rate-files(5) rate.conf(5)
       isdnlog(5) isdnrep(1) isdnrate(1)


       This   manual   page   was  written  by  Andreas  Jellinghaus  <aj@dun->, for Debian GNU/Linux and isdn4linux, updated by  Leopold
       Toetsch <>.

ISDN 4 Linux 3.7                  2005/02/23                        isdnlog(8)

Man(1) output converted with man2html