Bash Cures Cancer
Learn the UNIX/Linux command line

Home     Man Pages     SpamDefeator


isdnlog(8)		 Linux System Administration		   isdnlog(8)



NAME
       isdnlog - isdn log system (and more)

DESCRIPTION
       Isdnlog	gets  information  from your isdn card, decodes this informa-
       tion, 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).

RESTRICTION
       Isdnlog only works with the HiSax isdn driver. Other cards with	their
       own  driver are not supported. Additionally you need to enable d-chan-
       nel logging (you can use "hisaxctrl  1 4" to do  that,	 e.g.
       "hisaxctrl line0 1 4"). Isdnlog can only log outgoing calls that orig-
       inate 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).

GENERAL OPTIONS
       -V     show version information and exit.

       -fFILE read options from the config file FILE.  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.

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

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

       -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).

       -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.

       -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 option.
	      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
	      calls.
	      Don't use this in combination with the  -A  option!  This	 will
	      confuse 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  ignoreCOLP="value"
	      Ignore COLP/CLIP frames when value is 1 or greater.  Value 0 is
	      default, and tells isdnlog to not ignore COLP/CLIP frames.
	      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.
	      With value 2 the ignored COLP number is displayed.

       -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 num-
	      bers 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.
		     calling  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

DEBUG MODULE
       -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-
		     fied).
	      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	spec-
	      ify -m).

       -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.

NUMBER REWRITE MODULE
       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 dis-
       played instead of the number.

LOG MODULE
       Isdnlog can log information via syslog, to stdout, and  send  informa-
       tion  to	 x11  clients.	Calculate a code from these numbers by adding
       them, and activate logging with -s, -m or -x. You can use normal	 num-
       bers  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) mes-
	      sages.

       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.

LCR
       -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'

       providerchange="path_top_script"
	      (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 con-
	      nect  to the ISP.	 If the script returns non zero, LCR will not
	      be done.


TIME MODULE
       -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.

CHARGEHUP MODULE
       -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 emu-
	      late it.

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

	      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
	       " and "isdnctrl huptimeout  " (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	 con-
	      nection  time  for  providers charging a basic rate per connec-
	      tion.
	      e.g. hangup 3:5:60


START MODULE
       isdnlog can react on any event and start	 programs.  This  feature  is
       disabled unless you activate it with:

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

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

SEVERAL ISDN CARDS
       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.

UNLOADING KERNEL MODULES
       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 isdnlog.DEVICE.pid with the process id of isdnlog,
       and  kill that. After that you should be able to unload your isdn ker-
       nel modules.

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

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

       /var/run/isdnlog.DEVICE.pid
	      isdnlog creates this file with its process id. Useful to see if
	      isdnlog is running.

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

       /etc/isdn/isdn.conf
	      isdnlog  config  file.  Options  to isdnlog can be given on the
	      command 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].

SIGNALS
       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	 sig-
	      nals.

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

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

       [options]
       #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

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

AUTHOR
       This   manual   page  was  written  by  Andreas	Jellinghaus  , for Debian GNU/Linux and isdn4linux, updated by Leopold
       Toetsch .



ISDN 4 Linux 3.3		  2003/08/14			   isdnlog(8)


UNIX/Linux commands referenced on this page:
  1. card
  2. as
  3. file
  4. enable
  5. hisaxctrl
  6. which
  7. isdnrep
  8. echo
  9. id
  10. find
  11. kill
  12. write
  13. more
  14. time
  15. imon
  16. imontty
  17. at
  18. last
  19. patch
  20. script
  21. less
  22. isdnctrl
  23. sync
  24. link
  25. look