isdnlog - isdn log system (and more)
DESCRIPTION
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).
RESTRICTION
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 originate from
your isdn card, and incoming calls. To get information
about outgoing calls from other isdn devices (e.g. tele
phones), 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 sec
ond).
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 preselectio 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.
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 argument. 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 nor
malized 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 one your PABX
-o other={yes|no}
Normally "causes" (e.g. "non-selected user clear
ing") for other connected ISDN devices are not dis
played, only those which are related to the connec
tion 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 Manage
ment Protokoll) frames.
-Ux ignoreCOLP="value"
Ignore COLP/CLIP frames when value is 1. Value 0
is default, and tells isdnlog to not ignore
COLP/CLIP frames.
Sometimes the COLP number is a number in a differ
ent areacode to the number that was dialled, and
then the cost calculation would be wrong.
Enable dual mode. You need this if you have a sec
ond 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 out
put - every single digit will be displayed.
-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/isdnctrl0 if you started isdnlog with
/dev/isdnctrl0). Choose what debugging you want
from the following list, add the corresponding num
bers 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 specified).
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/isdnctrl0) 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
method (if you did not specify -m).
-T Trace mode: isdnlog will wait for a key after pro
cessing 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 cal
lerid.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.
LOG MODULE
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 coun
tries, 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).
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 mes
sages.
-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 programs 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.
Only with -xX : save the last X messages and pass
this information 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 second 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 (fron 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.
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 emulate it.
On every outgoing connection, isdnlog will
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 sec
ond parameter with X in the form number: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> <seconds before charge signal>"
(it actually communicates directly with isdn, with
out 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 tele
phone switching office.
If there is a third number in value, this is the
minimum connection time for providers charging a
basic rate per connection.
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 cal
lerid.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 dif
ferent 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 kernel modules.
/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. Use
ful to see if isdnlog is running.
/var/lock/LCK..DEVICE
isdnlog creates a lock file for the device, so no
other processes 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 sec
tions [global] [variables] [isdnlog].
SIGNALS
SIGHUP (-1)
On SIGHUP isdnlog restarts, and does therefore
reread it's config files.
SIGINT (-2), SIGTERM (-15), SIGQUIT (-3)
Isdnlog quits gracefully on receiving these termi
nation signals.
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
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
<aj@dungeon.inka.de>, for Debian GNU/Linux and isdn4linux,
updated by Leopold Toetsch <lt@toetsch.at>.
Man(1) output converted with
man2html