- quick and dirty Call-History in "-m" Mode (press "h" for more info) added

- eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
 - Support for tesion)) Baden-Wuerttemberg Tarif
 - more Providers
 - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
   - better zone-info support in "tools/isdnconf.c"
   - buffer-overrun in "isdntools.c" fixed
 - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
   - added $(DESTDIR) in any "Makefile.in"
   - new Configure-Switches "ISDN_AT" and "ISDN_DE"
     - splitted "takt.c" and "tools.c" into
         "takt_at.c" / "takt_de.c" ...
         "tools_at.c" / "takt_de.c" ...
   - new feature
       CALLFILE = /var/log/caller.log
       CALLFMT  = %b %e %T %N7 %N3 %N4 %N5 %N6
     in "isdn.conf"
 - ATTENTION:
     1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
     2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
     	should be fixed soon
This commit is contained in:
akool 1998-09-26 18:27:23 +00:00
parent 6875ee5978
commit 31048f5b41
49 changed files with 2459 additions and 342 deletions

View File

@ -175,15 +175,15 @@ enew:
# Install output files
install: all
if [ $(TARGET_DIR) != $(GEN_DIR) ]; then \
$(INSTALL) -m 0755 -d $(TARGET_DIR); \
$(INSTALL) -m 0644 `find $(GEN_DIR) -maxdepth 1 -type f` $(TARGET_DIR); \
$(INSTALL) -m 0755 -d $(DESTDIR)$(TARGET_DIR); \
$(INSTALL) -m 0644 `find $(GEN_DIR) -maxdepth 1 -type f` $(DESTDIR)$(TARGET_DIR); \
fi
# Un-install output files
uninstall:
set -e; \
if [ $(TARGET_DIR) != $(GEN_DIR) ]; then \
cd $(TARGET_DIR); \
cd $(DESTDIR)$(TARGET_DIR); \
for i in $(OUT_7BIT) $(OUT_HTML) $(OUT_ENG_7BIT) $(OUT_ENG_HTML) ; do \
rm -f $$i $$i.zip $$i.gz ; \
done; \

View File

@ -1,4 +1,4 @@
# $Id: Makefile.in,v 1.3 1997/10/26 22:52:56 fritz Exp $
# $Id: Makefile.in,v 1.4 1998/09/26 18:27:29 akool Exp $
#
# Makefile for actctrl
# (C) 1997 Fritz Elfert
@ -46,21 +46,21 @@ $(PROGRAM): $(MODULES)
$(CC) $(CFLAGS) $(INCLUDES) $(DEFS) $? $(LDFLAGS) -o $@
install-man: $(PROGRAM).man
mkdir -p $(MAN8DIR)
$(INSTALL_MAN) $< $(MAN8DIR)/$(MANPAGE)
mkdir -p $(DESTDIR)$(MAN8DIR)
$(INSTALL_MAN) $< $(DESTDIR)$(MAN8DIR)/$(MANPAGE)
install-data: firmware/$(FIRMWARE)
mkdir -p $(DATADIR)
$(INSTALL_DATA) $< $(DATADIR)/$(FIRMWARE)
mkdir -p $(DESTDIR)$(DATADIR)
$(INSTALL_DATA) $< $(DESTDIR)$(DATADIR)/$(FIRMWARE)
install: $(PROGRAM) install-man install-data
$(INSTALL_PROGRAM) $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL_PROGRAM) $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
install-strip: $(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
uninstall:
rm -f $(SBINDIR)/$(PROGRAM) $(MAN8DIR)/$(MANPAGE) $(DATADIR)/$(FIRMWARE)
rm -f $(DESTDIR)$(SBINDIR)/$(PROGRAM) $(DESTDIR)$(MAN8DIR)/$(MANPAGE) $(DESTDIR)$(DATADIR)/$(FIRMWARE)
clean:
rm -f *.o *~ $(PROGRAM)

View File

@ -37,9 +37,9 @@ install-man:
install: all
ifeq ($(CONFIG_LIB_AREACODE),y)
mkdir -p $(CONFIG_DATADIR)
mkdir -p $(DESTDIR)$(CONFIG_DATADIR)
$(MAKE) -f make/linux.mak $(INSTALLOPTS) install
endif
uninstall:
rm -f $(shell echo $(CONFIG_DATADIR))/areacodes
rm -f $(shell echo $(DESTDIR)$(CONFIG_DATADIR))/areacodes

View File

@ -1,4 +1,4 @@
# $Id: Makefile.in,v 1.5 1997/10/26 22:55:25 fritz Exp $
# $Id: Makefile.in,v 1.6 1998/09/26 18:27:40 akool Exp $
#
# Makefile for avmcapictrl
# (C) 1997 Carsten Paeth
@ -42,23 +42,23 @@ avmcapictrl: $(MODULES)
$(CC) $(CFLAGS) $? $(LDFLAGS) -o $@
install: $(PROGRAMS) $(MANPAGES)
mkdir -p $(SBINDIR)
$(INSTALL_PROGRAM) $(PROGRAMS) $(SBINDIR)
mkdir -p $(MAN8DIR)
$(INSTALL_MAN) $(MANPAGES) $(MAN8DIR)
mkdir -p $(DESTDIR)$(SBINDIR)
$(INSTALL_PROGRAM) $(PROGRAMS) $(DESTDIR)$(SBINDIR)
mkdir -p $(DESTDIR)$(MAN8DIR)
$(INSTALL_MAN) $(MANPAGES) $(DESTDIR)$(MAN8DIR)
install-strip: $(PROGRAMS) $(MANPAGES)
mkdir -p $(SBINDIR)
$(INSTALL_PROGRAM) -s $(PROGRAMS) $(SBINDIR)
mkdir -p $(MAN8DIR)
$(INSTALL_MAN) $(MANPAGES) $(MAN8DIR)
mkdir -p $(DESTDIR)$(SBINDIR)
$(INSTALL_PROGRAM) -s $(PROGRAMS) $(DESTDIR)$(SBINDIR)
mkdir -p $(DESTDIR)$(MAN8DIR)
$(INSTALL_MAN) $(MANPAGES) $(DESTDIR)$(MAN8DIR)
uninstall:
@for i in `echo $(PROGRAMS)` ; do \
rm -f $(SBINDIR)/$$i ; \
rm -f $(DESTDIR)$(SBINDIR)/$$i ; \
done
@for i in `echo $(MANPAGES)` ; do \
rm -f $(MAN8DIR)/$$i ; \
rm -f $(DESTDIR)$(MAN8DIR)/$$i ; \
done
clean:

View File

@ -1,4 +1,4 @@
# $Id: Makefile.in,v 1.1 1998/06/12 11:11:42 fritz Exp $
# $Id: Makefile.in,v 1.2 1998/09/26 18:27:45 akool Exp $
#
# Makefile for diehlctrl
# (C) 1997 Fritz Elfert
@ -48,23 +48,23 @@ $(PROGRAM): $(MODULES)
$(CC) $(CFLAGS) $(INCLUDES) $(DEFS) $? $(LDFLAGS) -o $@
install-data:
mkdir -p $(DATADIR)
#$(INSTALL_DATA) firmware/loadpg.bin $(DATADIR)/loadpg.bin
#$(INSTALL_DATA) firmware/pc_eu_ca.bin $(DATADIR)/pc_eu_ca.bin
#$(INSTALL_DATA) firmware/pc_1t_ca.bin $(DATADIR)/pc_1t_ca.bin
mkdir -p $(DESTDIR)$(DATADIR)
#$(INSTALL_DATA) firmware/loadpg.bin $(DESTDIR)$(DATADIR)/loadpg.bin
#$(INSTALL_DATA) firmware/pc_eu_ca.bin $(DESTDIR)$(DATADIR)/pc_eu_ca.bin
#$(INSTALL_DATA) firmware/pc_1t_ca.bin $(DESTDIR)$(DATADIR)/pc_1t_ca.bin
install-man: $(PROGRAM).man
mkdir -p $(MAN8DIR)
$(INSTALL_MAN) $< $(MAN8DIR)/$(MANPAGE)
mkdir -p $(DESTDIR)$(MAN8DIR)
$(INSTALL_MAN) $< $(DESTDIR)$(MAN8DIR)/$(MANPAGE)
install: $(PROGRAM) install-man install-data
$(INSTALL_PROGRAM) $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL_PROGRAM) $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
install-strip: $(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
uninstall:
rm -f $(SBINDIR)/$(PROGRAM) $(MAN8DIR)/$(MANPAGE)
rm -f $(DESTDIR)$(SBINDIR)/$(PROGRAM) $(DESTDIR)$(MAN8DIR)/$(MANPAGE)
clean:
rm -f *.o *~ $(PROGRAM)

View File

@ -1,4 +1,4 @@
# $Id: Makefile.in,v 1.7 1997/10/26 22:58:46 fritz Exp $
# $Id: Makefile.in,v 1.8 1998/09/26 18:27:50 akool Exp $
#
# Makefile for ISDN manpages
# (C) 1997 Fritz Elfert
@ -38,7 +38,7 @@ config.status: configure
install: $(MANPAGES) Makefile
@for i in $(MANPAGES) ; do \
MANSECT=`echo $$i | cut -d. -f2` ;\
DEST=$(MANDIR)/man$$MANSECT ;\
DEST=$(DESTDIR)$(MANDIR)/man$$MANSECT ;\
mkdir -p $$DEST ;\
$(INSTALL_MAN) $$i $$DEST/$$i ;\
done
@ -46,7 +46,7 @@ install: $(MANPAGES) Makefile
uninstall: Makefile
for i in $(MANPAGES) ; do \
MANSECT=`echo $$i | cut -d. -f2` ;\
DEST=$(MANDIR)/man$$MANSECT ;\
DEST=$(DESTDIR)$(MANDIR)/man$$MANSECT ;\
rm -f $$DEST/$$i ;\
done

View File

@ -1,4 +1,4 @@
# $Id: Makefile.in,v 1.7 1997/10/26 23:00:24 fritz Exp $
# $Id: Makefile.in,v 1.8 1998/09/26 18:27:55 akool Exp $
#
# Makefile for icnctrl
# (C) 1997 Fritz Elfert
@ -48,23 +48,23 @@ $(PROGRAM): $(MODULES)
$(CC) $(CFLAGS) $(INCLUDES) $(DEFS) $? $(LDFLAGS) -o $@
install-data:
mkdir -p $(DATADIR)
$(INSTALL_DATA) firmware/loadpg.bin $(DATADIR)/loadpg.bin
$(INSTALL_DATA) firmware/pc_eu_ca.bin $(DATADIR)/pc_eu_ca.bin
$(INSTALL_DATA) firmware/pc_1t_ca.bin $(DATADIR)/pc_1t_ca.bin
mkdir -p $(DESTDIR)$(DATADIR)
$(INSTALL_DATA) firmware/loadpg.bin $(DESTDIR)$(DATADIR)/loadpg.bin
$(INSTALL_DATA) firmware/pc_eu_ca.bin $(DESTDIR)$(DATADIR)/pc_eu_ca.bin
$(INSTALL_DATA) firmware/pc_1t_ca.bin $(DESTDIR)$(DATADIR)/pc_1t_ca.bin
install-man: $(PROGRAM).man
mkdir -p $(MAN8DIR)
$(INSTALL_MAN) $< $(MAN8DIR)/$(MANPAGE)
mkdir -p $(DESTDIR)$(MAN8DIR)
$(INSTALL_MAN) $< $(DESTDIR)$(MAN8DIR)/$(MANPAGE)
install: $(PROGRAM) install-man install-data
$(INSTALL_PROGRAM) $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL_PROGRAM) $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
install-strip: $(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
uninstall:
rm -f $(SBINDIR)/$(PROGRAM) $(MAN8DIR)/$(MANPAGE)
rm -f $(DESTDIR)$(SBINDIR)/$(PROGRAM) $(DESTDIR)$(MAN8DIR)/$(MANPAGE)
clean:
rm -f *.o *~ $(PROGRAM)

View File

@ -1,4 +1,4 @@
# $Id: Makefile.in,v 1.4 1997/10/26 23:02:52 fritz Exp $
# $Id: Makefile.in,v 1.5 1998/09/26 18:28:00 akool Exp $
#
# Makefile for iMON
#
@ -50,17 +50,17 @@ $(PROGRAM): $(MODULES)
$(CC) $(CFLAGS) $? $(LDFLAGS) -o $@
install-man: imon.man
mkdir -p $(MAN8DIR)
$(INSTALL_MAN) $< $(MAN8DIR)/$(MANPAGE)
mkdir -p $(DESTDIR)$(MAN8DIR)
$(INSTALL_MAN) $< $(DESTDIR)$(MAN8DIR)/$(MANPAGE)
install: $(PROGRAM) install-man
$(INSTALL_PROGRAM) $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL_PROGRAM) $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
install-strip: $(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
uninstall:
rm -f $(SBINDIR)/$(PROGRAM) $(MAN8DIR)/$(MANPAGE)
rm -f $(DESTDIR)$(SBINDIR)/$(PROGRAM) $(DESTDIR)$(MAN8DIR)/$(MANPAGE)
clean:
rm -f *.o *~ $(PROGRAM)

View File

@ -2,7 +2,7 @@
#
# (c) 1995-97 Volker Götz
#
# $Id: Makefile,v 1.2 1997/04/03 08:56:54 fritz Exp $
# $Id: Makefile,v 1.3 1998/09/26 18:28:06 akool Exp $
ifeq (../.config,$(wildcard ../.config))
#
@ -38,10 +38,10 @@ rootperm:
fi
install: $(PROGS) rootperm
install -s -o 0 -g 0 -m 0755 $(PROGS) $(CONFIG_SBINDIR)
install -s -o 0 -g 0 -m 0755 $(PROGS) $(DESTDIR)$(CONFIG_SBINDIR)
uninstall: rootperm
for i in $(PROGS) ; do rm -f $(CONFIG_SBINDIR)/$$i; done
for i in $(PROGS) ; do rm -f $(DESTDIR)$(CONFIG_SBINDIR)/$$i; done
clean:
rm -f *.o $(PROGS) *~

View File

@ -1,6 +1,6 @@
#
# ipppd makefile for Linux
# $Id: Makefile.in,v 1.10 1998/06/27 00:36:08 fritz Exp $
# $Id: Makefile.in,v 1.11 1998/09/26 18:28:10 akool Exp $
#
HAVE_LIBDES := @HAVE_LIBDES@
@ -48,22 +48,22 @@ all: ipppd
install-man: $(MANPAGES)
for i in $(MANPAGES) ; do \
MANSECT=`echo $$i | cut -d. -f2` ;\
$(INSTALL_DIR) $(MANDIR)/man$$MANSECT ;\
$(INSTALL_DATA) $$i $(MANDIR)/man$$MANSECT/$$i ;\
$(INSTALL_DIR) $(DESTDIR)$(MANDIR)/man$$MANSECT ;\
$(INSTALL_DATA) $$i $(DESTDIR)$(MANDIR)/man$$MANSECT/$$i ;\
done
uninstall-man:
for i in $(MANPAGES) ; do \
MANSECT=`echo $$i | cut -d. -f2` ;\
rm -f $(MANDIR)/man$$MANSECT/$$i ;\
rm -f $(DESTDIR)$(MANDIR)/man$$MANSECT/$$i ;\
done
uninstall: uninstall-man
rm -f $(SBINDIR)/ipppd
rm -f $(DESTDIR)$(SBINDIR)/ipppd
install: ipppd install-man
$(INSTALL_DIR) $(SBINDIR)
$(INSTALL_SBIN) ipppd $(SBINDIR)/ipppd
$(INSTALL_DIR) $(DESTDIR)$(SBINDIR)
$(INSTALL_SBIN) ipppd $(DESTDIR)$(SBINDIR)/ipppd
ifeq (.depend,$(wildcard .depend))
include .depend

View File

@ -1,6 +1,6 @@
#
# pppstats makefile
# $Id: Makefile.in,v 1.3 1998/03/15 22:36:39 tsbogend Exp $
# $Id: Makefile.in,v 1.4 1998/09/26 18:28:15 akool Exp $
#
SBINDIR = @CONFIG_SBINDIR@
MANDIR = @CONFIG_MANDIR@
@ -18,13 +18,13 @@ CFLAGS = -fomit-frame-pointer -O2 -I@CONFIG_KERNELDIR@/include
all: ipppstats
uninstall:
rm -f $(SBINDIR)/ipppstats $(MANDIR)/man8/ipppstats.8
rm -f $(DESTDIR)$(SBINDIR)/ipppstats $(DESTDIR)$(MANDIR)/man8/ipppstats.8
install: ipppstats ipppstats.man
$(INSTALL_DIR) $(SBINDIR)
$(INSTALL_DIR) $(MANDIR)/man8
$(INSTALL_SBIN) ipppstats $(SBINDIR)/ipppstats
$(INSTALL_DATA) ipppstats.man $(MANDIR)/man8/ipppstats.8
$(INSTALL_DIR) $(DESTDIR)$(SBINDIR)
$(INSTALL_DIR) $(DESTDIR)$(MANDIR)/man8
$(INSTALL_SBIN) ipppstats $(DESTDIR)$(SBINDIR)/ipppstats
$(INSTALL_DATA) ipppstats.man $(DESTDIR)$(MANDIR)/man8/ipppstats.8
ipppstats: Makefile $(PPPSTATSRCS)
$(CC) $(CFLAGS) -o ipppstats ipppstats.c

View File

@ -1,4 +1,4 @@
# $Id: Makefile.in,v 1.3 1997/10/26 23:10:42 fritz Exp $
# $Id: Makefile.in,v 1.4 1998/09/26 18:28:21 akool Exp $
#
# Makefile for iprofd
# (C) 1997 Fritz Elfert
@ -42,17 +42,17 @@ $(PROGRAM): $(MODULES)
$(CC) $(CFLAGS) $? $(LDFLAGS) -o $@
install-man: iprofd.man
mkdir -p $(MAN8DIR)
$(INSTALL_MAN) $< $(MAN8DIR)/$(MANPAGE)
mkdir -p $(DESTDIR)$(MAN8DIR)
$(INSTALL_MAN) $< $(DESTDIR)$(MAN8DIR)/$(MANPAGE)
install: $(PROGRAM) install-man
$(INSTALL_PROGRAM) $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL_PROGRAM) $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
install-strip: $(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
uninstall:
rm -f $(SBINDIR)/$(PROGRAM) $(MAN8DIR)/$(MANPAGE)
rm -f $(SBINDIR)/$(PROGRAM) $(DESTDIR)$(MAN8DIR)/$(MANPAGE)
clean:
rm -f *.o *~ $(PROGRAM)

View File

@ -1,4 +1,4 @@
# $Id: Makefile.in,v 1.10 1998/03/16 09:40:51 cal Exp $
# $Id: Makefile.in,v 1.11 1998/09/26 18:28:25 akool Exp $
#
# Makefile for isdnctrl
# (C) 1997 Fritz Elfert
@ -64,20 +64,20 @@ $(PROGRAM): $(MODULES)
$(CC) $(CFLAGS) $(MODULES) $(LDFLAGS) -o $@
install-man: $(MANPAGES)
$(INSTALL) -d $(MAN8DIR)
$(INSTALL_MAN) $^ $(MAN8DIR)
$(INSTALL) -d $(DESTDIR)$(MAN8DIR)
$(INSTALL_MAN) $^ $(DESTDIR)$(MAN8DIR)
install: $(PROGRAM) install-man
$(INSTALL) -d $(SBINDIR)
$(INSTALL_PROGRAM) $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL) -d $(DESTDIR)$(SBINDIR)
$(INSTALL_PROGRAM) $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
install-strip: $(PROGRAM)
$(INSTALL) -d $(SBINDIR)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL) -d $(DESTDIR)$(SBINDIR)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
uninstall:
rm -f $(SBINDIR)/$(PROGRAM)
for i in $(MANPAGES) ; do rm $(MAN8DIR)/$$i ; done
rm -f $(DESTDIR)$(SBINDIR)/$(PROGRAM)
for i in $(MANPAGES) ; do rm $(DESTDIR)$(MAN8DIR)/$$i ; done
clean:
rm -f *.o *~ $(PROGRAM) *.man *.8 .*.man .*.8

View File

@ -19,6 +19,7 @@ if [ "$CONFIG_ISDNLOG_MYSQLDB" = "y" ]; then
fi
choice 'Country specific chargeinfo support' \
"DE CONFIG_ISDN_LOG_DE \
AT CONFIG_ISDN_LOG_AT \
NL CONFIG_ISDN_LOG_NL \
CH CONFIG_ISDN_LOG_CH" DE
endmenu

View File

@ -1,4 +1,4 @@
## $Id: Makefile.in,v 1.40 1998/06/14 15:33:42 akool Exp $
## $Id: Makefile.in,v 1.41 1998/09/26 18:28:32 akool Exp $
##
## ISDN accounting for isdn4linux.
##
@ -19,6 +19,29 @@
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
## $Log: Makefile.in,v $
## Revision 1.41 1998/09/26 18:28:32 akool
## - quick and dirty Call-History in "-m" Mode (press "h" for more info) added
## - eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
## - Support for tesion)) Baden-Wuerttemberg Tarif
## - more Providers
## - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
## - better zone-info support in "tools/isdnconf.c"
## - buffer-overrun in "isdntools.c" fixed
## - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
## - added $(DESTDIR) in any "Makefile.in"
## - new Configure-Switches "ISDN_AT" and "ISDN_DE"
## - splitted "takt.c" and "tools.c" into
## "takt_at.c" / "takt_de.c" ...
## "tools_at.c" / "takt_de.c" ...
## - new feature
## CALLFILE = /var/log/caller.log
## CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
## in "isdn.conf"
## - ATTENTION:
## 1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
## 2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
## should be fixed soon
##
## Revision 1.40 1998/06/14 15:33:42 akool
## AVM B1 support (Layer 3)
## Telekom's new currency DEM 0,121 supported
@ -265,6 +288,8 @@ USERFILE := @USERFILE@
DEFS :=
SUBDIRS :=
NATION := @NATION@
export LOGFILE := @LOGFILE@
export COUNTRYCODE := @COUNTRYCODE@
export COUNTRYPREFIX := @COUNTRYPREFIX@
@ -297,7 +322,7 @@ endif
CC = $(_CC)
INCLUDE = -I./connect -I./tools -I$(PREFIXDIR) -I$(LIBISDNDIR) -I@CONFIG_KERNELDIR@/include
INCLUDE = -I./isdnlog -I./connect -I./tools -I$(PREFIXDIR) -I$(LIBISDNDIR) -I@CONFIG_KERNELDIR@/include
LIB = $(DBMLIB)
@ -311,7 +336,7 @@ SERVICEFILE = /etc/services
# DON'T EDIT BELOW THIS LINE
######################################################################
VERSION = 2.99.30
VERSION = 2.99.31
ifeq ($(POSTGRES),1)
DEFS += -DPOSTGRES
@ -333,6 +358,7 @@ endif
DEFS += \
-DVERSION=\"$(VERSION)\" \
-DI4LVERSION=\"$(I4LVERSION)\" \
-DISDN_DE=1 \
$(INCLUDE)
%.o: %.c
@ -342,7 +368,8 @@ ISDNLOG_OBJS = isdnlog/isdnlog.o isdnlog/processor.o isdnlog/functions.o \
isdnlog/server.o isdnlog/start_prog.o isdnlog/messages.o \
connect/connect.o connect/socket.o tools/tools.o \
connect/conv_address.o isdnlog/user_access.o \
isdnrep/cheap.o isdnrep/gebuehr.o tools/isdnconf.o isdnlog/takt.o \
isdnrep/cheap.o isdnrep/gebuehr.o tools/isdnconf.o \
tools/tools_$(NATION).o isdnlog/takt_$(NATION).o \
$(LIBISDNDIR)/libisdn.a
@ -361,9 +388,11 @@ endif
ISDNREP_OBJS = isdnrep/rep_main.o isdnrep/cheap.o tools/tools.o \
tools/isdnconf.o isdnlog/messages.o isdnrep/isdnrep.o \
isdnrep/gebuehr.o \
tools/tools_$(NATION).o \
$(LIBISDNDIR)/libisdn.a
ISDNCONF_OBJS= isdnconf/isdnconf.o tools/tools.o tools/isdnconf.o \
tools/tools_$(NATION).o \
$(LIBISDNDIR)/libisdn.a
ISDNLOG = bin/isdnlog
@ -404,31 +433,35 @@ rootperm:
uninstall: rootperm
if ps -x | fgrep $(ISDNLOG) >/dev/null; then kill `cat $(RUNDIR)/isdnlog.pid` 2>/dev/null; fi
rm -f $(SBINDIR)/$(ISDNLOG) $(BINDIR)/$(ISDNREP) $(BINDIR)/$(ISDNCONF)
rm -f $(MAN8DIR)/isdnlog.8 $(MAN1DIR)/isdnrep.1
rm -f $(DESTDIR)$(SBINDIR)/$(ISDNLOG) $(DESTDIR)$(BINDIR)/$(ISDNREP) $(DESTDIR)$(BINDIR)/$(ISDNCONF)
rm -f $(DESTDIR)$(MAN8DIR)/isdnlog.8 $(DESTDIR)$(MAN1DIR)/isdnrep.1
installdirs: rootperm
$(INSTALL_DIR) $(I4LCONFDIR)
$(INSTALL_DIR) $(BINDIR)
$(INSTALL_DIR) $(SBINDIR)
# $(INSTALL_DIR) $(MAN1DIR)
# $(INSTALL_DIR) $(MAN8DIR)
$(INSTALL_DIR) $(DESTDIR)$(I4LCONFDIR)
$(INSTALL_DIR) $(DESTDIR)$(BINDIR)
$(INSTALL_DIR) $(DESTDIR)$(SBINDIR)
$(INSTALL_DIR) $(DESTDIR)$(MAN1DIR)
$(INSTALL_DIR) $(DESTDIR)$(MAN8DIR)
install: all rootperm installdirs
@echo "Killing running isdnlog!"
-@if ps -x | fgrep $(ISDNLOG) >/dev/null; then kill `cat $(RUNDIR)/isdnlog.pid 2>/dev/null`; fi
-@test ! -d $(OLDCONFDIR) || cp -auv $(OLDCONFDIR)/$(USERFILE) $(I4LCONFDIR)
-@test ! -d $(OLDCONFDIR) || (cp -auv $(OLDCONFDIR)/$(OLDCONFFILE) $(I4LCONFDIR) \
-@test ! -d $(DESTDIR)$(OLDCONFDIR) || cp -auv $(DESTDIR)$(OLDCONFDIR)/$(USERFILE) $(DESTDIR)$(I4LCONFDIR)
-@test ! -d $(DESTDIR)$(OLDCONFDIR) || (cp -auv $(DESTDIR)$(OLDCONFDIR)/$(OLDCONFFILE) $(DESTDIR)$(I4LCONFDIR) \
&& $(ISDNREP) 1>/dev/null 2>&1) \
&& mv $(I4LCONFDIR)/$(OLDCONFFILE) $(I4LCONFDIR)/$(OLDCONFFILE).old
$(GENCONF) $(I4LCONFDIR)/$(CONFFILE) $(I4LCONFDIR)/$(CALLERIDFILE)
&& mv $(DESTDIR)$(I4LCONFDIR)/$(OLDCONFFILE) $(DESTDIR)$(I4LCONFDIR)/$(OLDCONFFILE).old
@if [ -n "$(DESTDIR)" ]; then
$(GENCONF) $(DESTDIR)$(I4LCONFDIR)/$(CONFFILE).new $(DESTDIR)$(I4LCONFDIR)/$(CALLERIDFILE).new
else
$(GENCONF) $(DESTDIR)$(I4LCONFDIR)/$(CONFFILE) $(DESTDIR)$(I4LCONFDIR)/$(CALLERIDFILE)
fi
@echo "Generate config files. Wait a moment..."
-@$(ISDNCONF) -c 040 1>/dev/null 2>&1 || echo "Can not read areacode/avon lib."
$(INSTALL_BIN) $(ISDNLOG) $(SBINDIR)
$(INSTALL_BIN) $(ISDNREP) $(BINDIR)
$(INSTALL_BIN) $(ISDNCONF) $(BINDIR)
# $(INSTALL_DATA) isdnlog/isdnlog.8 $(MAN8DIR)
# $(INSTALL_DATA) isdnrep/isdnrep.1 $(MAN1DIR)
$(INSTALL_BIN) $(ISDNLOG) $(DESTDIR)$(SBINDIR)
$(INSTALL_BIN) $(ISDNREP) $(DESTDIR)$(BINDIR)
$(INSTALL_BIN) $(ISDNCONF) $(DESTDIR)$(BINDIR)
$(INSTALL_DATA) isdnlog/isdnlog.8 $(DESTDIR)$(MAN8DIR)
$(INSTALL_DATA) isdnrep/isdnrep.1 $(DESTDIR)$(MAN1DIR)
@echo ""
@echo "Don't forget to create $(I4LCONFDIR)/$(USERFILE)"
@echo ""

View File

@ -380,6 +380,7 @@ und die ueber das Menue konfiguriert werden:
-DISDN_NL - Gebuehrenauswertung Niederlande (anstelle Deutschland)
-DISDN_CH - Gebuehrenauswertung Schweiz (anstelle Deutschland)
-DISDN_AT - Gebuehrenauswertung Oesterreich (anstelle Deutschland)
I4LCONFDIR (/etc/isdn)
Wo liegen die "isdn.conf" sowie die "avon" (falls verwendet!)

View File

@ -134,21 +134,21 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
install-dataDATA: $(data_DATA)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(datadir)
$(mkinstalldirs) $(DESTDIR)$(datadir)
@list='$(data_DATA)'; for p in $$list; do \
if test -f $(srcdir)/$$p; then \
echo " $(INSTALL_DATA) $(srcdir)/$$p $(datadir)/$$p"; \
$(INSTALL_DATA) $(srcdir)/$$p $(datadir)/$$p; \
echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(datadir)/$$p"; \
$(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(datadir)/$$p; \
else if test -f $$p; then \
echo " $(INSTALL_DATA) $$p $(datadir)/$$p"; \
$(INSTALL_DATA) $$p $(datadir)/$$p; \
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(datadir)/$$p"; \
$(INSTALL_DATA) $$p $(DESTDIR)$(datadir)/$$p; \
fi; fi; \
done
uninstall-dataDATA:
$(NORMAL_UNINSTALL)
list='$(data_DATA)'; for p in $$list; do \
rm -f $(datadir)/$$p; \
rm -f $(DESTDIR)$(datadir)/$$p; \
done
tags: TAGS
TAGS:
@ -225,13 +225,13 @@ maintainer-clean-generic clean mostlyclean distclean maintainer-clean
install-data-local:
$(mkinstalldirs) $(appsdir)
$(INSTALL_DATA) kisdnlog.xpm $(kde_icondir)/kisdnlog.xpm
$(INSTALL_DATA) isdnlog.xpm $(kde_datadir)/kisdnlog/isdnlog.xpm
$(mkinstalldirs) $(DESTDIR)$(appsdir)
$(INSTALL_DATA) kisdnlog.xpm $(DESTDIR)$(kde_icondir)/kisdnlog.xpm
$(INSTALL_DATA) isdnlog.xpm $(DESTDIR)$(kde_datadir)/kisdnlog/isdnlog.xpm
uninstall-local:
rm -f $(kde_icondir)/kisdnlog.xpm
rm -f $(kde_datadir)/kisdnlog/isdnlog.xpm
rm -f $(DESTDIR)$(kde_icondir)/kisdnlog.xpm
rm -f $(DESTDIR)$(kde_datadir)/kisdnlog/isdnlog.xpm
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.

View File

@ -3,10 +3,10 @@ data_DATA = isdnlog.xpm
datadir = $(prefix)/share/apps/@PACKAGE@/pics
install-data-local:
$(mkinstalldirs) $(appsdir)
$(INSTALL_DATA) @PACKAGE@.xpm $(kde_icondir)/@PACKAGE@.xpm
$(INSTALL_DATA) isdnlog.xpm $(kde_datadir)/@PACKAGE@/isdnlog.xpm
$(mkinstalldirs) $(DESTDIR)$(appsdir)
$(INSTALL_DATA) @PACKAGE@.xpm $(DESTDIR)$(kde_icondir)/@PACKAGE@.xpm
$(INSTALL_DATA) isdnlog.xpm $(DESTDIR)$(kde_datadir)/@PACKAGE@/isdnlog.xpm
uninstall-local:
rm -f $(kde_icondir)/@PACKAGE@.xpm
rm -f $(kde_datadir)/@PACKAGE@/isdnlog.xpm
rm -f $(DESTDIR)$(kde_icondir)/@PACKAGE@.xpm
rm -f $(DESTDIR)$(kde_datadir)/@PACKAGE@/isdnlog.xpm

View File

@ -134,21 +134,21 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
install-dataDATA: $(data_DATA)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(datadir)
$(mkinstalldirs) $(DESTDIR)$(datadir)
@list='$(data_DATA)'; for p in $$list; do \
if test -f $(srcdir)/$$p; then \
echo " $(INSTALL_DATA) $(srcdir)/$$p $(datadir)/$$p"; \
$(INSTALL_DATA) $(srcdir)/$$p $(datadir)/$$p; \
echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(datadir)/$$p"; \
$(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(datadir)/$$p; \
else if test -f $$p; then \
echo " $(INSTALL_DATA) $$p $(datadir)/$$p"; \
$(INSTALL_DATA) $$p $(datadir)/$$p; \
echo " $(INSTALL_DATA) $$p $(DESTDIR)$(datadir)/$$p"; \
$(INSTALL_DATA) $$p $(DESTDIR)$(datadir)/$$p; \
fi; fi; \
done
uninstall-dataDATA:
$(NORMAL_UNINSTALL)
list='$(data_DATA)'; for p in $$list; do \
rm -f $(datadir)/$$p; \
rm -f $(DESTDIR)$(datadir)/$$p; \
done
tags: TAGS
TAGS:
@ -190,7 +190,7 @@ all: Makefile $(DATA)
install-strip:
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
installdirs:
$(mkinstalldirs) $(datadir)
$(mkinstalldirs) $(DESTDIR)$(datadir)
mostlyclean-generic:

View File

@ -380,12 +380,12 @@ messages:
# don't install a list of file. Just one file per install.
# if you have more of them, create a subdirectory with an extra Makefile
install-data-local:
$(mkinstalldirs) $(APPSDIR)
$(INSTALL_DATA) Kisdnlog.kdelnk $(APPSDIR)
$(mkinstalldirs) $(DESTDIR)$(APPSDIR)
$(INSTALL_DATA) Kisdnlog.kdelnk $(DESTDIR)$(APPSDIR)
# remove ALL you have installed in install-data-local or install-exec-local
uninstall-local:
-rm -f $(APPSDIR)/Kisdnlog.kdelnk
-rm -f $(DESTDIR)$(APPSDIR)/Kisdnlog.kdelnk
# add a dependency for every moc file to be full portable
# I've added a key binding to emacs for this.

View File

@ -49,12 +49,12 @@ messages:
# don't install a list of file. Just one file per install.
# if you have more of them, create a subdirectory with an extra Makefile
install-data-local:
$(mkinstalldirs) $(APPSDIR)
$(INSTALL_DATA) Kisdnlog.kdelnk $(APPSDIR)
$(mkinstalldirs) $(DESTDIR)$(APPSDIR)
$(INSTALL_DATA) Kisdnlog.kdelnk $(DESTDIR)$(APPSDIR)
# remove ALL you have installed in install-data-local or install-exec-local
uninstall-local:
-rm -f $(APPSDIR)/Kisdnlog.kdelnk
-rm -f $(DESTDIR)$(APPSDIR)/Kisdnlog.kdelnk
# add a dependency for every moc file to be full portable
# I've added a key binding to emacs for this.

View File

@ -204,18 +204,18 @@ maintainer-clean-binPROGRAMS:
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(bindir)
$(mkinstalldirs) $(DESTDIR)$(bindir)
@list='$(bin_PROGRAMS)'; for p in $$list; do \
if test -f $$p; then \
echo " $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`"; \
$(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`; \
echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
$(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
else :; fi; \
done
uninstall-binPROGRAMS:
$(NORMAL_UNINSTALL)
list='$(bin_PROGRAMS)'; for p in $$list; do \
rm -f $(bindir)/`echo $$p|sed '$(transform)'`; \
rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
done
.c.o:

17
isdnlog/configure vendored
View File

@ -633,13 +633,29 @@ cat >> confdefs.h <<EOF
#define REBOOTCMD "$REBOOTCMD"
EOF
if test "$CONFIG_ISDN_LOG_DE" = "y" ; then
NATION="de"
cat >> confdefs.h <<\EOF
#define ISDN_DE 1
EOF
fi
if test "$CONFIG_ISDN_LOG_AT" = "y" ; then
NATION="at"
cat >> confdefs.h <<\EOF
#define ISDN_AT 1
EOF
fi
if test "$CONFIG_ISDN_LOG_CH" = "y" ; then
NATION="ch"
cat >> confdefs.h <<\EOF
#define ISDN_CH 1
EOF
fi
if test "$CONFIG_ISDN_LOG_NL" = "y" ; then
NATION="nl"
cat >> confdefs.h <<\EOF
#define ISDN_NL 1
EOF
@ -2415,6 +2431,7 @@ s%@COUNTRYCODE@%$COUNTRYCODE%g
s%@COUNTRYPREFIX@%$COUNTRYPREFIX%g
s%@AREACODE@%$AREACODE%g
s%@AREAPREFIX@%$AREAPREFIX%g
s%@NATION@%$NATION%g
CEOF
EOF

View File

@ -75,10 +75,20 @@ AC_DEFINE_UNQUOTED(CHARGEFILE,"$CHARGEFILE")
AC_DEFINE_UNQUOTED(RELOADCMD,"$RELOADCMD")
AC_DEFINE_UNQUOTED(STOPCMD,"$STOPCMD")
AC_DEFINE_UNQUOTED(REBOOTCMD,"$REBOOTCMD")
if test "$CONFIG_ISDN_LOG_DE" = "y" ; then
NATION="de"
AC_DEFINE(ISDN_DE,1)
fi
if test "$CONFIG_ISDNLOG_AT" = "y" ; then
NATION="at"
AC_DEFINE(ISDN_AT,1)
fi
if test "$CONFIG_ISDN_LOG_CH" = "y" ; then
NATION="ch"
AC_DEFINE(ISDN_CH,1)
fi
if test "$CONFIG_ISDN_LOG_NL" = "y" ; then
NATION="nl"
AC_DEFINE(ISDN_NL,1)
fi

View File

@ -1,4 +1,4 @@
/* $Id: isdnlog.c,v 1.21 1998/06/21 11:52:46 akool Exp $
/* $Id: isdnlog.c,v 1.22 1998/09/26 18:29:07 akool Exp $
*
* ISDN accounting for isdn4linux. (log-module)
*
@ -19,6 +19,29 @@
* along with this program; if not, write to the Free Software
*
* $Log: isdnlog.c,v $
* Revision 1.22 1998/09/26 18:29:07 akool
* - quick and dirty Call-History in "-m" Mode (press "h" for more info) added
* - eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
* - Support for tesion)) Baden-Wuerttemberg Tarif
* - more Providers
* - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
* - better zone-info support in "tools/isdnconf.c"
* - buffer-overrun in "isdntools.c" fixed
* - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
* - added $(DESTDIR) in any "Makefile.in"
* - new Configure-Switches "ISDN_AT" and "ISDN_DE"
* - splitted "takt.c" and "tools.c" into
* "takt_at.c" / "takt_de.c" ...
* "tools_at.c" / "takt_de.c" ...
* - new feature
* CALLFILE = /var/log/caller.log
* CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
* in "isdn.conf"
* - ATTENTION:
* 1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
* 2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
* should be fixed soon
*
* Revision 1.21 1998/06/21 11:52:46 akool
* First step to let isdnlog generate his own AOCD messages
*
@ -121,6 +144,7 @@
#define _ISDNLOG_C_
#include <linux/limits.h>
#include <termio.h>
#include "isdnlog.h"
#ifdef POSTGRES
@ -317,6 +341,9 @@ static void loop(void)
(void)morectrl(0);
else if (X_FD_ISSET(sockets[ISDNCTRL2].descriptor, &readmask))
(void)morectrl(1);
else if (X_FD_ISSET(sockets[STDIN].descriptor, &readmask))
(void)morekbd();
} /* else */
} /* while */
} /* loop */
@ -796,6 +823,28 @@ static void restoreCharge()
/*****************************************************************************/
void raw_mode(int state)
{
static struct termio newterminfo, oldterminfo;
if (state) {
ioctl(fileno(stdin), TCGETA, &oldterminfo);
newterminfo = oldterminfo;
newterminfo.c_iflag &= ~(INLCR | ICRNL | IUCLC | ISTRIP);
newterminfo.c_lflag &= ~(ICANON | ECHO);
newterminfo.c_cc[VMIN] = 1;
newterminfo.c_cc[VTIME] = 1;
ioctl(fileno(stdin), TCSETAF, &newterminfo);
}
else
ioctl(fileno(stdin), TCSETA, &oldterminfo);
} /* raw_mode */
/*****************************************************************************/
int main(int argc, char *argv[], char *envp[])
{
register char *p;
@ -862,7 +911,8 @@ int main(int argc, char *argv[], char *envp[])
if (add_socket(&sockets, -1) || /* reserviert fuer isdnctrl */
add_socket(&sockets, -1) || /* reserviert fuer isdnctrl2 */
add_socket(&sockets, -1) ) /* reserviert fuer isdninfo */
add_socket(&sockets, -1) || /* reserviert fuer isdninfo */
add_socket(&sockets, -1) ) /* reserviert fuer stdin */
Exit(19);
if (replay) {
@ -982,6 +1032,11 @@ int main(int argc, char *argv[], char *envp[])
if (replay || ((sockets[ISDNINFO].descriptor = open(INFO, O_RDONLY | O_NONBLOCK)) >= 0)) {
if (!isdaemon) {
raw_mode(1);
sockets[STDIN].descriptor = dup(fileno(stdin));
} /* if */
now();
#ifdef Q931
@ -1028,6 +1083,11 @@ int main(int argc, char *argv[], char *envp[])
close(sockets[ISDNCTRL].descriptor);
if (*isdnctrl2)
close(sockets[ISDNCTRL2].descriptor);
if (!isdaemon) {
raw_mode(0);
close(sockets[STDIN].descriptor);
} /* if */
}
else {
print_msg(PRT_ERR, msg1, myshortname, isdnctrl, strerror(errno));

View File

@ -1,4 +1,4 @@
/* $Id: isdnlog.h,v 1.9 1998/06/21 11:52:47 akool Exp $
/* $Id: isdnlog.h,v 1.10 1998/09/26 18:29:10 akool Exp $
*
* ISDN accounting for isdn4linux.
*
@ -20,6 +20,29 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: isdnlog.h,v $
* Revision 1.10 1998/09/26 18:29:10 akool
* - quick and dirty Call-History in "-m" Mode (press "h" for more info) added
* - eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
* - Support for tesion)) Baden-Wuerttemberg Tarif
* - more Providers
* - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
* - better zone-info support in "tools/isdnconf.c"
* - buffer-overrun in "isdntools.c" fixed
* - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
* - added $(DESTDIR) in any "Makefile.in"
* - new Configure-Switches "ISDN_AT" and "ISDN_DE"
* - splitted "takt.c" and "tools.c" into
* "takt_at.c" / "takt_de.c" ...
* "tools_at.c" / "takt_de.c" ...
* - new feature
* CALLFILE = /var/log/caller.log
* CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
* in "isdn.conf"
* - ATTENTION:
* 1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
* 2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
* should be fixed soon
*
* Revision 1.9 1998/06/21 11:52:47 akool
* First step to let isdnlog generate his own AOCD messages
*
@ -151,9 +174,10 @@
#define ISDNCTRL 0
#define ISDNCTRL2 1
#define ISDNINFO 2
#define IN_PORT 3
#define STDIN 3
#define IN_PORT 4
#define FIRST_DESCR 3
#define FIRST_DESCR 4
/****************************************************************************/
@ -300,6 +324,7 @@ _EXTERN IO io[ISDN_MAX_CHANNELS];
_EXTERN void dotrace(void);
_EXTERN int morectrl(int card);
_EXTERN void moreinfo(void);
_EXTERN void morekbd(void);
_EXTERN void processcint(void);
_EXTERN void processrate(void);
_EXTERN void clearchan(int chan, int total);

View File

@ -1,4 +1,4 @@
/* $Id: processor.c,v 1.24 1998/09/22 20:59:15 luethje Exp $
/* $Id: processor.c,v 1.25 1998/09/26 18:29:15 akool Exp $
*
* ISDN accounting for isdn4linux. (log-module)
*
@ -19,6 +19,29 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: processor.c,v $
* Revision 1.25 1998/09/26 18:29:15 akool
* - quick and dirty Call-History in "-m" Mode (press "h" for more info) added
* - eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
* - Support for tesion)) Baden-Wuerttemberg Tarif
* - more Providers
* - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
* - better zone-info support in "tools/isdnconf.c"
* - buffer-overrun in "isdntools.c" fixed
* - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
* - added $(DESTDIR) in any "Makefile.in"
* - new Configure-Switches "ISDN_AT" and "ISDN_DE"
* - splitted "takt.c" and "tools.c" into
* "takt_at.c" / "takt_de.c" ...
* "tools_at.c" / "takt_de.c" ...
* - new feature
* CALLFILE = /var/log/caller.log
* CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
* in "isdn.conf"
* - ATTENTION:
* 1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
* 2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
* should be fixed soon
*
* Revision 1.24 1998/09/22 20:59:15 luethje
* isdnrep: -fixed wrong provider report
* -fixed wrong html output for provider report
@ -352,7 +375,9 @@
extern double cheap96(time_t when, int zone, int *zeit);
static int HiSax = 0, hexSeen = 0;
extern double taktlaenge(int chan, char *description);
static int HiSax = 0, hexSeen = 0, uid = -1;
static char *asnp, *asnm;
#ifdef Q931
static int lfd = 0;
@ -554,6 +579,7 @@ static void buildnumber(char *num, int oc3, int oc3a, char *result, int version,
strcpy(n, num);
strcpy(result, "");
#ifdef ISDN_DE
if (!memcmp(num, "010", 3)) { /* Provider */
char c = num[5];
num[5] = 0;
@ -570,6 +596,7 @@ static void buildnumber(char *num, int oc3, int oc3a, char *result, int version,
} /* if */
#endif
} /* if */
#endif
if ((*sondernummer = is_sondernummer(num)) == -1)
@ -1820,7 +1847,7 @@ static void decode(int chan, register char *p, int type, int version)
break;
#if !defined(ISDN_NL) && !defined(ISDN_CH)
#ifdef ISDN_DE
case 0x28 : /* DISPLAY ... z.b. Makelweg, AOC-E ... */
#ifdef Q931
if (q931dmp) {
@ -1881,15 +1908,15 @@ static void decode(int chan, register char *p, int type, int version)
; /* info(chan, PRT_SHOWAOCD, STATE_AOCD, asnm); */
#if 0
else if (!memcmp(call[chan].provider, "01019", 5) ||
!memcmp(call[chan].provider, "01070", 5)) {
!memcmp(call[chan].provider, "01070", 5)) {
if (type != FACILITY) { /* "AOC-E" Meldung */
if (!memcmp(call[chan].provider, "01019", 5)) { /* Mobilcom */
tx = cur_time - call[chan].connect;
call[chan].aoce = (int)((tx + 59) / 60);
call[chan].pay = call[chan].aoce * 0.19;
if (tx)
sprintf(s, "%s %s (%s)",
currency,
@ -1899,7 +1926,7 @@ static void decode(int chan, register char *p, int type, int version)
sprintf(s, "%s %s",
currency,
double2str(call[chan].pay, 6, 2, DEB));
info(chan, PRT_SHOWAOCD, STATE_AOCD, s);
} /* if */
} /* if */
@ -2317,6 +2344,13 @@ static void decode(int chan, register char *p, int type, int version)
call[chan].screening = (oc3a & 3);
#ifdef ISDN_AT
/* in Österreich wird + als 00 signalisiert */
if ((oc3 & 0x10) && s[0]=='0' && s[1]=='0') {
s[0]='+';
memmove (s+1, s+2, strlen(s+1));
}
#endif
strcpy(call[chan].onum[CALLING], s);
buildnumber(s, oc3, oc3a, call[chan].num[CALLING], version, &call[chan].provider, &call[chan].sondernummer);
@ -2334,6 +2368,18 @@ static void decode(int chan, register char *p, int type, int version)
Q931dump(TYPE_STRING, -2, s, version);
} /* if */
#endif
/* Fixme: what is short for 'Calling Party Number'? */
sprintf(s1, "CPN %s", call[chan].num[CALLING]);
info(chan, PRT_SHOWNUMBERS, STATE_RING, s1);
if (callfile && call[chan].dialin) {
FILE *cl = fopen (callfile, "a");
if (cl != NULL) {
iprintf (s1, chan, callfmt);
fprintf (cl, "%s\n", s1);
fclose (cl);
}
}
if (warn) {
sprintf(s1, "CLIP %s", call[chan].vnum[CLIP]);
@ -3167,7 +3213,7 @@ static void huptime(int chan, int bchan)
register int c = call[chan].confentry[OTHER];
auto isdn_net_ioctl_cfg cfg;
auto int oldchargeint = 0, newchargeint = 0;
auto int oldhuptimeout, newhuptimeout, zeit;
auto int oldhuptimeout, newhuptimeout;
auto char sx[BUFSIZ], why[BUFSIZ];
@ -3185,13 +3231,12 @@ static void huptime(int chan, int bchan)
if (!oldhuptimeout) {
sprintf(sx, "HUPTIMEOUT %s is *disabled* - unchanged", known[c]->interface);
info(chan, PRT_SHOWNUMBERS, STATE_HUPTIMEOUT, sx);
return;
return;
} /* if */
newchargeint = (int)cheap96(cur_time, known[c]->zone, &zeit);
sprintf(why, "%s, %s", z2s(known[c]->zone), t2tz(zeit));
newchargeint = taktlaenge(chan, why);
#ifdef ISDN_DE
if (call[chan].provider == 19) { /* Mobilcom 60/60 Takt */
newchargeint = 60;
sprintf(why, "via %s", Providername(call[chan].provider));
@ -3216,6 +3261,7 @@ static void huptime(int chan, int bchan)
newchargeint = 1;
sprintf(why, "via %s", Providername(call[chan].provider));
} /* else */
#endif
#if NET_DV >= NETDV_CHARGEINT
if (net_dv >= NETDV_CHARGEINT) {
@ -3248,13 +3294,11 @@ static void huptime(int chan, int bchan)
info(chan, PRT_INFO, STATE_HUPTIMEOUT, sx);
if (oldhuptimeout != newhuptimeout) {
sprintf(sx, "HUPTIMEOUT %s %d (was %d)",
known[c]->interface, newhuptimeout, oldhuptimeout);
info(chan, PRT_INFO, STATE_HUPTIMEOUT, sx);
} /* if */
} /* if */
}
else {
sprintf(sx, "CHARGEINT %s still %d - %s", known[c]->interface,
@ -3475,7 +3519,7 @@ static void processinfo(char *s)
#else
int my_net_dv = 0;
#endif
tty_dv = version & 0xff;
version = version >> 8;
net_dv = version & 0xff;
@ -3680,8 +3724,11 @@ static void how_expensive(int chan)
if (call[chan].sondernummer != -1) {
switch (SN[call[chan].sondernummer].tarif) {
case -1 : if (!strcmp(call[chan].num[1] + 3, "11833")) /* Sonderbedingung Auskunft Inland */
case -1 :
#ifdef ISDN_DE
if (!strcmp(call[chan].num[1] + 3, "11833")) /* Sonderbedingung Auskunft Inland */
dur -= 30;
#endif
pay2 = SN[call[chan].sondernummer].grund1 * currency_factor;
pay2 += (dur / SN[call[chan].sondernummer].takt1) * currency_factor;
break;
@ -3720,7 +3767,7 @@ static void how_expensive(int chan)
call[chan].pay = call[chan].aoce * currency_factor;
else {
if (zone > 0) {
#ifdef ISDN_DE
if (zone == 1)
pro2 = 33; /* CityCall :: Telekom */
else if (zone == 2)
@ -3780,9 +3827,11 @@ static void how_expensive(int chan)
info(chan, PRT_SHOWHANGUP, STATE_HANGUP, sx);
} /* if */
} /* if */
#endif
} /* if */
} /* else */
#ifdef ISDN_DE
if ((dur > 600) && (zone > 1) && ((call[chan].aoce > 0) || (pro == 33))) {
onesec = call[chan].pay / dur;
pay2 = (dur - 600) * onesec * 0.30;
@ -3796,6 +3845,7 @@ static void how_expensive(int chan)
info(chan, PRT_SHOWHANGUP, STATE_HANGUP, sx);
} /* if */
#endif
}
else
call[chan].pay = pay2;
@ -3803,6 +3853,109 @@ static void how_expensive(int chan)
} /* how_expensive */
static void dumpme()
{
register int chan;
auto char s[BUFSIZ];
for (chan = 0; chan < MAXCHAN; chan++) {
sprintf(s, "^CHAN[%d]: %s -> %s\n",
chan,
call[chan].vnum[0],
call[chan].vnum[1]);
print_msg(PRT_SHOWNUMBERS, "%s", s);
} /* for */
} /* dumpme */
/* mode :: 0 = Add new entry, 1 = change existing entry, 2 = Terminate entry, 3 = dump */
static void addlist(int chan, int type, int mode)
{
#define MAXLIST 1000
typedef struct {
int state;
char *vnum[2];
int si;
time_t connect;
time_t disconnect;
int cause;
int uid;
} LIST;
static LIST list[MAXLIST];
static int lp = -1;
register int i;
register char *p;
auto struct tm *tm;
auto char s[BUFSIZ], s1[BUFSIZ];
if (((chan == -1) || call[chan].dialin)) {
if (mode == 0) {
if (++lp == MAXLIST)
lp = 0;
list[lp].state = SETUP;
list[lp].vnum[0] = strdup(call[chan].vnum[CALLING]);
list[lp].vnum[1] = strdup(call[chan].vnum[CALLED]);
list[lp].si = call[chan].si1;
list[lp].connect = call[chan].connect;
list[lp].uid = call[chan].uid;
}
else if ((mode == 1) || (mode == 2)) {
for (i = lp; i >= 0; i--) {
if (call[chan].uid == list[i].uid) {
switch (mode) {
case 1 : list[i].state = CONNECT;
break;
case 2 : list[i].cause = call[chan].cause;
list[i].state = RELEASE;
list[i].disconnect = call[chan].disconnect;
break;
} /* switch */
break;
} /* if */
} /* if */
}
else if (mode == 3) {
for (i = 0; i <= lp; i++) {
tm = localtime(&list[i].connect);
strftime(s1, 64, "%a %b %d %X", tm);
if (!list[i].disconnect)
list[i].disconnect = cur_time;
switch (list[i].si) {
case 1 : p = "Speech"; break;
case 2 : p = "Fax G3"; break;
case 3 : p = "Data"; break;
case 4 : p = "Fax G4"; break;
case 7 : p = "Data"; break;
default : p = ""; break;
} /* switch */
sprintf(s, "%s %s(%s) -> %s %ds %s",
s1,
list[i].vnum[0],
p,
list[i].vnum[1],
(int)(list[i].disconnect - list[i].connect),
qmsg(TYPE_CAUSE, VERSION_EDSS1, list[i].cause));
print_msg(PRT_SHOWNUMBERS, "%s\n", s);
} /* for */
} /* else */
} /* if */
} /* addlist */
static void processctrl(int card, char *s)
{
register char *ps = s, *p;
@ -4103,6 +4256,7 @@ static void processctrl(int card, char *s)
call[chan].dialin = dialin;
call[chan].tei = tei;
call[chan].card = card;
call[chan].uid = ++uid;
decode(chan, ps, type, version);
if (call[chan].channel) { /* Aha, Kanal war dabei, dann nehmen wir den gleich */
@ -4129,6 +4283,8 @@ static void processctrl(int card, char *s)
call[chan].dialin ? " IN" : "OUT",
net ? "NET" : "USR");
addlist(chan, type, 0);
goto endhex;
} /* if SETUP */
@ -4165,6 +4321,8 @@ static void processctrl(int card, char *s)
decode(chan, ps, type, version);
/* dumpme(); */
if (call[chan].channel) { /* jetzt muesste einer da sein */
chan = call[chan].channel - 1;
@ -4172,6 +4330,7 @@ static void processctrl(int card, char *s)
/* nicht --channel, channel muss unveraendert bleiben! */
memcpy((char *)&call[chan], (char *)&call[5], sizeof(CALL));
Change_Channel(5, chan);
addlist(chan, type, 1);
clearchan(5, 1);
}
else
@ -4277,8 +4436,6 @@ static void processctrl(int card, char *s)
if (!call[chan].dialin) {
auto char s[BUFSIZ], sx[BUFSIZ];
extern float taktlaenge(int chan, char *description);
if ((call[chan].cint = taktlaenge(chan, s)) > 1) {
call[chan].cinth = hour;
@ -4309,6 +4466,7 @@ doppelt:break;
wegchan = (call[2].state) ? 3 : 2;
memcpy((char *)&call[wegchan], (char *)&call[chan], sizeof(CALL));
Change_Channel(chan, wegchan);
addlist(wegchan, type, 1);
clearchan(chan, 1);
call[wegchan].state = MAKEL_ACKNOWLEDGE;
info(wegchan, PRT_SHOWHANGUP, STATE_HANGUP, "MAKEL");
@ -4320,6 +4478,7 @@ doppelt:break;
call[call[chan].channel - 1].channel = chan; /* den alten merken */
Change_Channel(chan, call[chan].channel - 1);
chan = call[chan].channel - 1; /* chan setzen */
addlist(chan, type, 1);
clearchan(call[chan].channel, 1);
call[chan].channel = chan + 1; /* in Ordnung bringen */
call[chan].state = CONNECT;
@ -4365,6 +4524,7 @@ doppelt:break;
memcpy((char *)&call[4], (char *)&call[chan], sizeof(CALL));
Change_Channel(chan, 4);
chan = 4;
addlist(chan, type, 1);
call[chan].tei = tei;
call[chan].card = card;
} /* if */
@ -4415,6 +4575,8 @@ doppelt:break;
#endif
logger(chan);
addlist(chan, type, 2);
if (call[chan].dialog || any) {
if (call[chan].ibytes + call[chan].obytes) {
sprintf(s2, " I=%s O=%s",
@ -4461,6 +4623,7 @@ doppelt:break;
info(chan, PRT_SHOWHANGUP, STATE_HANGUP, sx);
if (chargemax != 0.0) {
if (!call[chan].dialin && ((c = call[chan].confentry[OTHER]) > -1)) {
sprintf(sx, "CHARGEMAX total=%s %s today=%s %s remaining=%s %s",
currency,
@ -4470,6 +4633,7 @@ doppelt:break;
currency,
double2str((chargemax - known[c]->charge), 6, 2, DEB));
info(chan, PRT_SHOWCHARGEMAX, STATE_HANGUP, sx);
}
if (connectmax != 0.0) {
if (connectmaxmode == 1)
@ -4701,14 +4865,65 @@ void moreinfo()
/*****************************************************************************/
void morekbd()
{
auto char s[BIGBUFSIZ * 2];
auto char *ps = s;
auto int n, chan;
if ((n = read(sockets[STDIN].descriptor, ps, BIGBUFSIZ)) > 0) {
ps += n;
*ps = 0;
switch (*s) {
case 'l' : print_msg(PRT_SHOWNUMBERS, "Recent caller's:\n");
addlist(-1, SETUP, 3);
break;
case 'h' : print_msg(PRT_SHOWNUMBERS, "\n\t*** s)tatus, l)ist, u)p, d)own ***\n");
break;
case 'u' : /* huptime(0, 0); */
break;
case 'd' : /* huptime(0, 0); */
break;
case 's' : now();
print_msg(PRT_SHOWNUMBERS, "\n\t*** %s\n", stl);
for (chan = 0; chan < MAXCHAN; chan++) {
if (call[chan].bchan == -1)
sprintf(s, "\t*** BCHAN#%d : FREE ***\n", chan + 1);
else {
sprintf(s, "\t*** BCHAN#%d : %d %s %s %s ***\n",
chan + 1,
call[chan].bchan,
call[chan].vnum[0],
call[chan].dialin ? "<-" : "->",
call[chan].vnum[1]);
} /* else */
print_msg(PRT_SHOWNUMBERS, "%s", s);
} /* for */
break;
} /* switch */
} /* if */
} /* morekbd */
/*****************************************************************************/
void processcint()
{
register int chan;
auto char s[BUFSIZ], sx[BUFSIZ];
auto float newcint;
auto double newcint;
auto double exp;
auto int dur;
extern float taktlaenge(int chan, char *description);
extern double pay(time_t ts, int dauer, int tarifz, int pro);
@ -4718,19 +4933,14 @@ void processcint()
dur = cur_time - call[chan].connect;
if ((call[chan].cinth != hour) && ((hour == 5) ||
(hour == 9) ||
(hour == 12) ||
(hour == 18) ||
(hour == 21) ||
(hour == 2))) { /* Moeglicherweise Taktwechsel */
if (call[chan].cinth != hour) { /* Moeglicherweise Taktwechsel */
newcint = taktlaenge(chan, s);
if (newcint != call[chan].cint) {
call[chan].cint = newcint;
sprintf(sx, "NEXT CHARGEINT %sIN %s (%s)", (newcint == call[chan].cint) ? "STILL " : "", double2clock((double)call[chan].cint), s);
sprintf(sx, "NEXT CHARGEINT IN %s (%s)", double2clock((double)call[chan].cint), s);
info(chan, PRT_SHOWCONNECT, STATE_CONNECT, sx);
}
} /* if */
call[chan].cinth = hour;
@ -4738,12 +4948,15 @@ void processcint()
if (1 /* message & PRT_SHOWTICKS */) {
#ifdef ISDN_DE
if ((call[chan].provider == -1) || (call[chan].provider == 33))
exp = call[chan].ctakt * currency_factor;
else
/* call pay() with duration + 1 to get the charge for the _next_ chargeint! */
exp = pay(call[chan].connect, dur + 1, call[chan].zone, call[chan].provider);
#else
exp = call[chan].ctakt * currency_factor;
#endif
sprintf(sx, "START %d.CHARGEINT %s %s (%s)",
call[chan].ctakt,
currency,

319
isdnlog/isdnlog/takt_at.c Normal file
View File

@ -0,0 +1,319 @@
/* $Id: takt_at.c,v 1.1 1998/09/26 18:29:22 akool Exp $
*
* ISDN accounting for isdn4linux. (log-module)
*
* Copyright 1995, 1998 by Andreas Kool (akool@Kool.f.UUnet.de)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: takt_at.c,v $
* Revision 1.1 1998/09/26 18:29:22 akool
* - quick and dirty Call-History in "-m" Mode (press "h" for more info) added
* - eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
* - Support for tesion)) Baden-Wuerttemberg Tarif
* - more Providers
* - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
* - better zone-info support in "tools/isdnconf.c"
* - buffer-overrun in "isdntools.c" fixed
* - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
* - added $(DESTDIR) in any "Makefile.in"
* - new Configure-Switches "ISDN_AT" and "ISDN_DE"
* - splitted "takt.c" and "tools.c" into
* "takt_at.c" / "takt_de.c" ...
* "tools_at.c" / "takt_de.c" ...
* - new feature
* CALLFILE = /var/log/caller.log
* CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
* in "isdn.conf"
* - ATTENTION:
* 1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
* 2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
* should be fixed soon
*
*/
#define _TAKT_C_
#include "isdnlog.h"
#define KARF 4
#define OST1 5
#define OST2 6
#define CHRI 7
#define PFI1 8
#define PFI2 9
#define FRON 10
#define A_FEI 16
struct w_ftag {
char tag;
char monat;
char telekom; /* TRUE, wenn auch fuer die PTA ein Feiertag (siehe Telefonbuch!) */
char *bez;
};
static struct {
int tag;
int monat;
int jahr;
int tgind;
} _datum;
static char tab_tage[2][12] = {{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }};
static struct w_ftag t_ftag[A_FEI] = {
{ 1, 1, 1, "Neujahr" },
{ 6, 1, 0, "Hl. Drei Könige" },
{ 1, 5, 1, "1. Mai" },
{ 0, 0, 1, "Muttertag" },
{ 0, 0, 1, "Karfreitag" },
{ 0, 0, 1, "Ostersonntag" },
{ 0, 0, 1, "Ostermontag" },
{ 0, 0, 1, "Christi Himmelfahrt" },
{ 0, 0, 1, "Pfingstsonntag" },
{ 0, 0, 1, "Pfingstmontag" },
{ 0, 0, 0, "Fronleichnam" },
{ 26, 10, 1, "Nationalfeiertag" },
{ 15, 8, 0, "Maria Himmelfahrt" },
{ 1, 11, 0, "Allerheiligen" },
{ 25, 12, 1, "Christtag" },
{ 26, 12, 1, "2. Weihnachtstag" }};
static int schalt(register int j)
{
return(((j % 4 == 0) && (j % 100 != 0)) || (j % 400 == 0));
} /* schalt */
static int tag_num(register int t, register int m, register int j)
{
register char *tm = tab_tage[schalt(j)];
while (--m)
t += *tm++;
return(t);
} /* tag_num */
static void num_tag(int jahr, int lfd)
{
register int i;
register char *t;
while (lfd < 1)
lfd += tag_num(31, 12, --jahr);
t = tab_tage[schalt(jahr)];
for (i = 1; lfd > *t && i < 13; i++)
lfd -= *t++;
if (i > 12)
num_tag(++jahr, lfd);
else {
_datum.monat = i;
_datum.tag = lfd;
_datum.jahr = jahr;
} /* else */
} /* num_tag */
static void comp_feier_tage(int jj)
{
static struct w_ftag t_stag[A_FEI];
static int firsttime = 1;
static int l_jj = -1;
register int mm, tt, i, j, a, b;
if (jj == l_jj)
return;
l_jj = jj;
if (firsttime) {
for (i = 0; i < A_FEI; i++)
t_stag[i] = t_ftag[i];
firsttime = 0;
}
else
for (i = 0; i < A_FEI; i++)
t_ftag[i] = t_stag[i];
/* Berechnung von Ostern nach C.F.Gauss */
i = jj / 100 - jj / 400 + 4;
j = i - jj / 300 + 11;
a = (((jj % 19) * 19) + j) % 30;
b = (((jj % 4) * 2 + (4 * jj) + (6 * a) + i) % 7) + a - 9;
if (b < 1) {
tt = 31 + b;
mm = 3;
}
else {
if ((b == 26) || ((a == 28) && (b == 25) && ((11 * (j + 1) % 30) < 19)))
b -= 7;
tt = b;
mm = 4;
} /* else */
num_tag(jj, tag_num(tt, mm, jj));
t_ftag[OST1].monat = _datum.monat; t_ftag[OST1].tag = _datum.tag;
num_tag(jj, 1 + tag_num(_datum.tag, _datum.monat, jj));
t_ftag[OST2].monat = _datum.monat; t_ftag[OST2].tag = _datum.tag;
num_tag(jj, - 3 + tag_num(_datum.tag, _datum.monat, jj));
t_ftag[KARF].monat = _datum.monat; t_ftag[KARF].tag = _datum.tag;
/* Pfingsten */
num_tag(jj, 51 + tag_num(_datum.tag, _datum.monat, jj));
t_ftag[PFI1].monat = _datum.monat; t_ftag[PFI1].tag = _datum.tag;
num_tag(jj, 1 + tag_num(_datum.tag, _datum.monat, jj));
t_ftag[PFI2].monat = _datum.monat; t_ftag[PFI2].tag = _datum.tag;
/* Himmelfahrt */
num_tag(jj, -10 + tag_num(t_ftag[PFI1].tag, t_ftag[PFI1].monat, jj));
t_ftag[CHRI].monat = _datum.monat; t_ftag[CHRI].tag = _datum.tag;
/* Fronleichnam */
num_tag(jj, 11 + tag_num(t_ftag[PFI1].tag, t_ftag[PFI1].monat, jj));
t_ftag[FRON].monat = _datum.monat; t_ftag[FRON].tag = _datum.tag;
} /* comp_feier_tage */
#define WT 0 /* Werktag */
#define FR 1 /* Freitag */
#define WE 2 /* Wochenende */
/*
* 0 .. Tageszeit 1: Mo-Fr 08-12 Mo-Do 13-16
* 1 .. Tageszeit 2: Mo-Do 12-13 Mo-Do 16-18 Fr 12-18
* 2 .. Sparzeit: Mo-Fr 06-08 Mo-Fr 18-20 Sa+So+Feiertag 06-20
* 3 .. Supersparzeit: täglich 06-20
*/
static int zeitzone [3][24] = {{ 3, 3, 3, 3, 3, 3, 2, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 2, 2, 3, 3, 3, 3 }, /* Werktag */
{ 3, 3, 3, 3, 3, 3, 2, 2, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3 }, /* Freitag */
{ 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3 }}; /* Wochenende */
static int tarifzeit(struct tm *tm, char *why)
{
int i;
comp_feier_tage(tm->tm_year + 1900);
for (i = 0; i < A_FEI; i++)
if ((t_ftag[i].monat == tm->tm_mon + 1) &&
(t_ftag[i].tag == tm->tm_mday) &&
t_ftag[i].telekom) {
sprintf(why, "Feiertag (%s)", t_ftag[i].bez);
return(WE); /* Feiertag wie Wochenende */
}
if (tm->tm_wday == 0 || tm->tm_wday == 6) {
strcpy(why, "Wochenende");
return(WE);
}
if (tm->tm_wday == 5) {
strcpy(why, "Freitag");
return(FR);
}
strcpy(why, "Werktag");
return(WT);
}
/* Einheiten in 72 sec */
static double faktor [30][4] = {{ 1.25, 1.00, 0.66, 0.45 }, /* Regionalzone bis 50 km */
{ 3.60, 2.88, 1.44, 1.00 }, /* Fernzone 1 bis 200 km */
{ 4.80, 3.75, 1.80, 1.44 }, /* Fernzone 2 über 200 km */
{ 0.60, 0.60, 0.20, 0.20 }, /* Online-Tarif */
{ 6.00, 6.00, 3.75, 3.75 }, /* Mobilfunk */
{ 6.00, 6.00, 5.00, 5.00 }, /* Ausland Zone 1 */
{ 8.00, 8.00, 6.00, 6.00 }, /* Ausland Zone 2 */
{ 11.00, 11.00, 9.00, 9.00 }, /* Ausland Zone 3 */
{ 14.00, 14.00, 12.00, 12.00 }, /* Ausland Zone 4 */
{ 17.00, 17.00, 15.00, 15.00 }, /* Ausland Zone 5 */
{ 20.00, 20.00, 17.00, 17.00 }, /* Ausland Zone 6 */
{ 23.00, 23.00, 20.00, 20.00 }, /* Ausland Zone 7 */
{ 26.00, 26.00, 24.00, 24.00 }, /* Ausland Zone 8 */
{ 30.00, 30.00, 28.00, 28.00 }, /* Ausland Zone 9 */
{ 34.00, 34.00, 32.00, 32.00 }, /* Ausland Zone 10 */
{ 39.00, 39.00, 36.00, 36.00 }, /* Ausland Zone 11 */
{ 44.00, 44.00, 40.00, 40.00 }, /* Ausland Zone 12 */
{ 59.00, 59.00, 53.00, 53.00 }, /* Ausland Zone 13 */
{ 9.00, 9.00, 8.00, 8.00 }, /* Ausland Zone 14 */
{ 8.00, 8.00, 10.00, 10.00 }, /* Ausland Zone 15 */
{ 0.00, 0.00, 0.00, 0.00 }, /* Handvermittelter Verkehr */
{ 4.00, 4.00, 3.00, 3.00 }, /* Grenznahverkehr */
{ 6.67, 6.67, 6.67, 6.67 }, /* Teleinfo 04570 */
{ 10.00, 10.00, 10.00, 10.00 }, /* Teleinfo 04500 */
{ 16.00, 16.00, 16.00, 16.00 }, /* Telebusiness 04590 */
{ 26.67, 26.67, 26.67, 26.67 }, /* Teleinfo 04580 */
{ 1.25, 1.00, 0.66, 0.45 }, /* Businessline 0711x */
{ 2.25, 2.25, 2.25, 2.25 }, /* Businessline 0713x */
{ 4.80, 4.80, 4.80, 4.80 }, /* Businessline 0714x */
{ 4.80, 4.80, 4.80, 4.80 }}; /* Votingline 0717x */
double taktlaenge(int chan, char *description)
{
int c;
struct tm *tm;
char why[BUFSIZ];
int provider, zone, fenster;
time_t connect;
double takt;
zone = -1;
if (description) description[0] = '\0';
provider = call[chan].provider;
connect = call[chan].connect;
tm = localtime(&connect);
if (call[chan].dialin)
return -1;
if (*call[chan].num[1] == '\0')
return -1;
if ((c = call[chan].confentry[OTHER]) > -1)
zone = known[c]->zone;
if (zone < 1 || zone > 30)
return -1;
call[chan].zone = zone;
fenster = zeitzone[tarifzeit(tm, why)][tm->tm_hour];
takt = 72.0/faktor[zone-1][fenster];
if (description) sprintf(description, "%s, %s, %s", z2s(zone), why, t2tz(fenster));
return (takt);
}

View File

@ -1,4 +1,4 @@
/* $Id: takt.c,v 1.4 1998/09/22 20:59:42 luethje Exp $
/* $Id: takt_ch.c,v 1.1 1998/09/26 18:29:41 akool Exp $
*
* ISDN accounting for isdn4linux. (log-module)
*
@ -276,7 +276,7 @@ static int tarifzeit(struct tm *tm, char *why)
| | | +----- 1=CityCall, 2=RegioCall, 3=GermanCall
| | +------------ 1=Werktag, 2=Wochenende, 3=27.12. - 30.12., 4=Feiertag
| +-------------------- 1=05:00 .. 09:00, 2=09:00 .. 12:00, 3=12:00 .. 18:00, 4=18:00 .. 21:00, 5=21:00 .. 02:00, 6=02:00 .. 05:00
+------------------------------ 1=DTAG, 2=Mobilcom
+------------------------------ 1=DTAG, 2=Mobilcom, 3=Tele2
*/
static int zeit[24] = { 4, 4, 5, 5, 5, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4 };

491
isdnlog/isdnlog/takt_de.c Normal file
View File

@ -0,0 +1,491 @@
/* $Id: takt_de.c,v 1.1 1998/09/26 18:29:42 akool Exp $
*
* ISDN accounting for isdn4linux. (log-module)
*
* Copyright 1995, 1998 by Andreas Kool (akool@Kool.f.UUnet.de)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#define _TAKT_C_
#include "isdnlog.h"
#define DTAG 0
#define MOBILCOM 1
#define TELE 2
#define CITYCALL 0
#define REGIOCALL 1
#define GERMANCALL 2
#define DTAG_PREIS 0.121
#define MOBILCOM_PREIS 0.19
#define WT 0 /* Werktag */
#define WE 1 /* Wochenende */
#define FE 2 /* Feiertag */
#define ZJ 3 /* Werktag 27. .. 30.12. */
#define MUTT 3
#define KARF 4
#define OST1 5
#define OST2 6
#define CHRI 7
#define PFI1 8
#define PFI2 9
#define FRON 10
#define EINH 11
#define MARI 12
#define ALLE 13
#define BUSS 14
#define A_FEI 17
struct w_ftag {
char tag;
char monat;
char telekom; /* TRUE, wenn auch fuer die Deutsche Telekom ein Feiertag (siehe Telefonbuch!) */
char *bez;
};
static struct {
int tag;
int monat;
int jahr;
int tgind;
} _datum;
static char tab_tage[2][12] = {{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }};
static struct w_ftag t_ftag[A_FEI] = {
#ifdef ISDN_NL
{ 1, 1, 0, "Neujahr" },
{ 6, 1, 0, "Erscheinungsfest" }, /* nur Baden-Wuerttemberg und Bayern */
{ 1, 5, 0, "Maifeiertag" },
{ 0, 0, 0, "Muttertag" },
{ 0, 0, 0, "Karfreitag" },
{ 0, 0, 0, "Ostersonntag" },
{ 0, 0, 0, "Ostermontag" },
{ 0, 0, 0, "Christi Himmelfahrt" },
{ 0, 0, 0, "Pfingstsonntag" },
{ 0, 0, 0, "Pfingstmontag" },
{ 0, 0, 0, "Fronleichnam" }, /* nur in Baden-Wuerttemberg, Bayern, Hessen, Nordrhein-Westfalen, Rheinland-Pfalz und im Saarland */
{ 3, 10, 0, "Tag der deutschen Einheit" }, /* vor 1990 am 17.6. */
{ 15, 8, 0, "Maria Himmelfahrt" }, /* nur Saarland und ueberwiegend katholischen Gemeinden Bayerns */
{ 1, 11, 0, "Allerheiligen" }, /* nur Baden-Wuerttemberg, Bayern, Nordrhein-Westfalen, Rheinland-Pfalz und im Saarland */
{ 0, 0, 0, "Buss- und Bettag" }, /* nur bis incl. 1994 (wg. Pflegeversicherung abgeschafft) */
{ 25, 12, 0, "1. Weihnachtsfeiertag" },
{ 26, 12, 0, "2. Weihnachtsfeiertag" }};
#else
{ 1, 1, 1, "Neujahr" },
{ 6, 1, 0, "Erscheinungsfest" }, /* nur Baden-Wuerttemberg und Bayern */
{ 1, 5, 1, "Maifeiertag" },
{ 0, 0, 1, "Muttertag" },
{ 0, 0, 1, "Karfreitag" },
{ 0, 0, 1, "Ostersonntag" },
{ 0, 0, 1, "Ostermontag" },
{ 0, 0, 1, "Christi Himmelfahrt" },
{ 0, 0, 1, "Pfingstsonntag" },
{ 0, 0, 1, "Pfingstmontag" },
{ 0, 0, 0, "Fronleichnam" }, /* nur in Baden-Wuerttemberg, Bayern, Hessen, Nordrhein-Westfalen, Rheinland-Pfalz und im Saarland */
{ 3, 10, 1, "Tag der deutschen Einheit" }, /* vor 1990 am 17.6. */
{ 15, 8, 0, "Maria Himmelfahrt" }, /* nur Saarland und ueberwiegend katholischen Gemeinden Bayerns */
{ 1, 11, 0, "Allerheiligen" }, /* nur Baden-Wuerttemberg, Bayern, Nordrhein-Westfalen, Rheinland-Pfalz und im Saarland */
{ 0, 0, 0, "Buss- und Bettag" }, /* nur bis incl. 1994 (wg. Pflegeversicherung abgeschafft) */
{ 25, 12, 1, "1. Weihnachtsfeiertag" },
{ 26, 12, 1, "2. Weihnachtsfeiertag" }};
#endif
static int schalt(register int j)
{
return(((j % 4 == 0) && (j % 100 != 0)) || (j % 400 == 0));
} /* schalt */
static int tag_num(register int t, register int m, register int j)
{
register char *tm = tab_tage[schalt(j)];
while (--m)
t += *tm++;
return(t);
} /* tag_num */
static void num_tag(int jahr, int lfd)
{
register int i;
register char *t;
while (lfd < 1)
lfd += tag_num(31, 12, --jahr);
t = tab_tage[schalt(jahr)];
for (i = 1; lfd > *t && i < 13; i++)
lfd -= *t++;
if (i > 12)
num_tag(++jahr, lfd);
else {
_datum.monat = i;
_datum.tag = lfd;
_datum.jahr = jahr;
} /* else */
} /* num_tag */
static void comp_feier_tage(int jj)
{
static struct w_ftag t_stag[A_FEI];
static int firsttime = 1;
static int l_jj = -1;
register int mm, tt, i, j, a, b;
if (jj == l_jj)
return;
l_jj = jj;
if (firsttime) {
for (i = 0; i < A_FEI; i++)
t_stag[i] = t_ftag[i];
firsttime = 0;
}
else
for (i = 0; i < A_FEI; i++)
t_ftag[i] = t_stag[i];
/* Berechnung von Ostern nach C.F.Gauss */
i = jj / 100 - jj / 400 + 4;
j = i - jj / 300 + 11;
a = (((jj % 19) * 19) + j) % 30;
b = (((jj % 4) * 2 + (4 * jj) + (6 * a) + i) % 7) + a - 9;
if (b < 1) {
tt = 31 + b;
mm = 3;
}
else {
if ((b == 26) || ((a == 28) && (b == 25) && ((11 * (j + 1) % 30) < 19)))
b -= 7;
tt = b;
mm = 4;
} /* else */
num_tag(jj, tag_num(tt, mm, jj));
t_ftag[OST1].monat = _datum.monat; t_ftag[OST1].tag = _datum.tag;
num_tag(jj, 1 + tag_num(_datum.tag, _datum.monat, jj));
t_ftag[OST2].monat = _datum.monat; t_ftag[OST2].tag = _datum.tag;
num_tag(jj, - 3 + tag_num(_datum.tag, _datum.monat, jj));
t_ftag[KARF].monat = _datum.monat; t_ftag[KARF].tag = _datum.tag;
/* Pfingsten */
num_tag(jj, 51 + tag_num(_datum.tag, _datum.monat, jj));
t_ftag[PFI1].monat = _datum.monat; t_ftag[PFI1].tag = _datum.tag;
num_tag(jj, 1 + tag_num(_datum.tag, _datum.monat, jj));
t_ftag[PFI2].monat = _datum.monat; t_ftag[PFI2].tag = _datum.tag;
/* Himmelfahrt */
num_tag(jj, -10 + tag_num(t_ftag[PFI1].tag, t_ftag[PFI1].monat, jj));
t_ftag[CHRI].monat = _datum.monat; t_ftag[CHRI].tag = _datum.tag;
/* Fronleichnam */
num_tag(jj, 11 + tag_num(t_ftag[PFI1].tag, t_ftag[PFI1].monat, jj));
t_ftag[FRON].monat = _datum.monat; t_ftag[FRON].tag = _datum.tag;
} /* comp_feier_tage */
static int tarifzeit(struct tm *tm, char *why)
{
register int i;
#ifndef ISDN_NL
if ((tm->tm_mday == 24) && (tm->tm_mon == 11)) {
strcpy(why, "Feiertag (Heilig-Abend)");
return(FE);
} /* if */
if ((tm->tm_mday == 31) && (tm->tm_mon == 11)) {
strcpy(why, "Feiertag (Sylvester)");
return(FE);
} /* if */
if ((tm->tm_mday > 26) && (tm->tm_mon == 11)) {
strcpy(why, "Jahresende (27. .. 30.12.)");
return(ZJ);
} /* if */
comp_feier_tage(tm->tm_year + 1900);
for (i = 0; i < A_FEI; i++)
if ((t_ftag[i].monat == tm->tm_mon + 1) &&
(t_ftag[i].tag == tm->tm_mday) &&
t_ftag[i].telekom) {
sprintf(why, "Feiertag (%s)", t_ftag[i].bez);
return(FE);
} /* if */
#endif
if (tm->tm_wday == 6) {
strcpy(why, "Wochenende (Samstag)");
return(WE);
} /* if */
if (tm->tm_wday == 0) {
strcpy(why, "Wochenende (Sonntag)");
return(WE);
} /* if */
strcpy(why, "Werktag");
return(WT);
} /* tarifzeit */
/*
[Provider][Uhrzeit][Tarif][Zone]
| | | |
| | | +----- 1=CityCall, 2=RegioCall, 3=GermanCall
| | +------------ 1=Werktag, 2=Wochenende, 3=27.12. - 30.12., 4=Feiertag
| +-------------------- 1=05:00 .. 09:00, 2=09:00 .. 12:00, 3=12:00 .. 18:00, 4=18:00 .. 21:00, 5=21:00 .. 02:00, 6=02:00 .. 05:00
+------------------------------ 1=DTAG, 2=Mobilcom, 3=Tele2
*/
static int zeit[24] = { 4, 4, 5, 5, 5, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4 };
static char *zeiten[6] = { "Freizeit", "Vormittag", "Nachmittag", "Freizeit", "Mondschein", "Nacht" };
static char *zonen[4] = { "CityCall", "RegioCall", "GermanCall", "GlobalCall" };
static float gebuehr[2][6][4][3] =
{{{{ 150.0, 45.0, 22.5 }, /* DTAG */
{ 150.0, 45.0, 30.0 },
{ 150.0, 45.0, 36.0 },
{ 150.0, 45.0, 36.0 }},
{{ 90.0, 26.0, 13.0 },
{ 150.0, 45.0, 30.0 },
{ 90.0, 36.0, 36.0 },
{ 150.0, 45.0, 36.0 }},
{{ 90.0, 30.0, 14.0 },
{ 150.0, 45.0, 30.0 },
{ 90.0, 36.0, 36.0 },
{ 150.0, 45.0, 36.0 }},
{{ 150.0, 45.0, 22.5 },
{ 150.0, 45.0, 30.0 },
{ 150.0, 45.0, 36.0 },
{ 150.0, 45.0, 36.0 }},
{{ 240.0, 60.0, 36.0 },
{ 240.0, 60.0, 36.0 },
{ 240.0, 60.0, 36.0 },
{ 240.0, 60.0, 36.0 }},
{{ 240.0, 120.0, 120.0 },
{ 240.0, 60.0, 36.0 },
{ 240.0, 120.0, 120.0 },
{ 240.0, 60.0, 36.0 }}},
{{{ -1.0, 60.0, 60.0 }, /* Mobilcom */
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 }},
{{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 }},
{{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 }},
{{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 }},
{{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 }},
{{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 }}}};
float taktlaenge(int chan, char *description)
{
register int c;
auto struct tm *tm;
auto char why[BUFSIZ];
auto int provider = call[chan].provider;
auto time_t connect = call[chan].connect;
auto int zone = -1, zone2 = -1;
auto float takt;
*description = 0;
if (!call[chan].dialin && *call[chan].num[1]) {
if ((provider == 11) || /* o.tel.o */
(provider == 13) || /* Tele2 */
(provider == 14) || /* EWE TEL */
(provider == 15) || /* */
(provider == 23) || /* Tesion */
(provider == 24) || /* TelePassport */
(provider == 30) || /* TelDaFax */
(provider == 39) || /* tesion */
(provider == 41) || /* HanseNet */
(provider == 46) || /* KomTel */
(provider == 49) || /* ACC */
(provider == 66) || /* Interoute */
(provider == 70) || /* Arcor */
(provider == 79) || /* Viatel */
(provider == 90) || /* Viag Interkom */
(provider == 98)) /* STAR Telecom */
return(1);
if (provider == 18) /* Debitel */
return(30);
if ((provider == 36) || /* Hutchison Telekom */
(provider == 50)) /* Talkline */
return(10);
if (provider == 43) /* Hutchison Telekom */
return(60);
if (provider == 9) /* ECONOphone - mindestens jedoch 30 Sekunden! */
return(6);
tm = localtime(&connect);
if (call[chan].sondernummer != -1) {
switch (SN[call[chan].sondernummer].tarif) {
case 0 : sprintf(description, "FreeCall"); /* Free of charge */
return(60 * 60 * 24); /* one day should be enough ;-) */
case 1 : zone = 1; /* CityCall */
break;
case -1 : if ((tm->tm_wday > 0) && (tm->tm_wday < 6)) {
if ((tm->tm_hour > 8) && (tm->tm_hour < 18))
takt = SN[call[chan].sondernummer].takt1; /* Werktag 9-18 Uhr */
else
takt = SN[call[chan].sondernummer].takt2; /* Restliche Zeit */
}
else
takt = SN[call[chan].sondernummer].takt2;
strcpy(description, SN[call[chan].sondernummer].sinfo);
return(takt);
break;
} /* switch */
} /* if */
if (zone == -1) {
zone2 = area_diff(NULL, call[chan].num[1]);
if ((zone2 == -1) && (c = call[chan].confentry[OTHER]) > -1)
zone = known[c]->zone;
else
zone = zone2;
} /* if */
if (zone != -1) {
if (provider == -1)
provider = 33;
call[chan].zone = zone;
zone--;
if ((zone < 0) || (zone > 3))
return(-1);
if ((provider == 19) || (provider == 33)) {
takt = gebuehr[(provider == 33) ? DTAG : MOBILCOM][zeit[tm->tm_hour]][tarifzeit(tm, why)][zone];
sprintf(description, "%s, %s, %s", zeiten[zeit[tm->tm_hour]], why, zonen[zone]);
return(takt);
}
else
return(-1);
}
else
return(-1);
}
else
return(-1);
} /* taktlaenge */
float preis(int chan)
{
auto int duration;
auto float pay, minpr;
auto char why[BUFSIZ];
auto int tz;
auto struct tm *tm;
if (call[chan].provider == 13) { /* Tele 2 */
if (call[chan].zone == CITYCALL) /* not possible with Tele 2 */
return(-1.0);
tm = localtime(&call[chan].connect);
tz = tarifzeit(tm, why);
if ((tz == WE) || (tz == FE))
minpr = 0.10;
else {
if ((tm->tm_hour > 8) && (tm->tm_hour < 18))
minpr = 0.20;
else
minpr = 0.15;
} /* else */
duration = call[chan].disconnect - call[chan].connect;
pay = minpr / 60 * duration;
return(pay);
} /* if */
return 0;
} /* preis */

491
isdnlog/isdnlog/takt_nl.c Normal file
View File

@ -0,0 +1,491 @@
/* $Id: takt_nl.c,v 1.1 1998/09/26 18:29:44 akool Exp $
*
* ISDN accounting for isdn4linux. (log-module)
*
* Copyright 1995, 1998 by Andreas Kool (akool@Kool.f.UUnet.de)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#define _TAKT_C_
#include "isdnlog.h"
#define DTAG 0
#define MOBILCOM 1
#define TELE 2
#define CITYCALL 0
#define REGIOCALL 1
#define GERMANCALL 2
#define DTAG_PREIS 0.121
#define MOBILCOM_PREIS 0.19
#define WT 0 /* Werktag */
#define WE 1 /* Wochenende */
#define FE 2 /* Feiertag */
#define ZJ 3 /* Werktag 27. .. 30.12. */
#define MUTT 3
#define KARF 4
#define OST1 5
#define OST2 6
#define CHRI 7
#define PFI1 8
#define PFI2 9
#define FRON 10
#define EINH 11
#define MARI 12
#define ALLE 13
#define BUSS 14
#define A_FEI 17
struct w_ftag {
char tag;
char monat;
char telekom; /* TRUE, wenn auch fuer die Deutsche Telekom ein Feiertag (siehe Telefonbuch!) */
char *bez;
};
static struct {
int tag;
int monat;
int jahr;
int tgind;
} _datum;
static char tab_tage[2][12] = {{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }};
static struct w_ftag t_ftag[A_FEI] = {
#ifdef ISDN_NL
{ 1, 1, 0, "Neujahr" },
{ 6, 1, 0, "Erscheinungsfest" }, /* nur Baden-Wuerttemberg und Bayern */
{ 1, 5, 0, "Maifeiertag" },
{ 0, 0, 0, "Muttertag" },
{ 0, 0, 0, "Karfreitag" },
{ 0, 0, 0, "Ostersonntag" },
{ 0, 0, 0, "Ostermontag" },
{ 0, 0, 0, "Christi Himmelfahrt" },
{ 0, 0, 0, "Pfingstsonntag" },
{ 0, 0, 0, "Pfingstmontag" },
{ 0, 0, 0, "Fronleichnam" }, /* nur in Baden-Wuerttemberg, Bayern, Hessen, Nordrhein-Westfalen, Rheinland-Pfalz und im Saarland */
{ 3, 10, 0, "Tag der deutschen Einheit" }, /* vor 1990 am 17.6. */
{ 15, 8, 0, "Maria Himmelfahrt" }, /* nur Saarland und ueberwiegend katholischen Gemeinden Bayerns */
{ 1, 11, 0, "Allerheiligen" }, /* nur Baden-Wuerttemberg, Bayern, Nordrhein-Westfalen, Rheinland-Pfalz und im Saarland */
{ 0, 0, 0, "Buss- und Bettag" }, /* nur bis incl. 1994 (wg. Pflegeversicherung abgeschafft) */
{ 25, 12, 0, "1. Weihnachtsfeiertag" },
{ 26, 12, 0, "2. Weihnachtsfeiertag" }};
#else
{ 1, 1, 1, "Neujahr" },
{ 6, 1, 0, "Erscheinungsfest" }, /* nur Baden-Wuerttemberg und Bayern */
{ 1, 5, 1, "Maifeiertag" },
{ 0, 0, 1, "Muttertag" },
{ 0, 0, 1, "Karfreitag" },
{ 0, 0, 1, "Ostersonntag" },
{ 0, 0, 1, "Ostermontag" },
{ 0, 0, 1, "Christi Himmelfahrt" },
{ 0, 0, 1, "Pfingstsonntag" },
{ 0, 0, 1, "Pfingstmontag" },
{ 0, 0, 0, "Fronleichnam" }, /* nur in Baden-Wuerttemberg, Bayern, Hessen, Nordrhein-Westfalen, Rheinland-Pfalz und im Saarland */
{ 3, 10, 1, "Tag der deutschen Einheit" }, /* vor 1990 am 17.6. */
{ 15, 8, 0, "Maria Himmelfahrt" }, /* nur Saarland und ueberwiegend katholischen Gemeinden Bayerns */
{ 1, 11, 0, "Allerheiligen" }, /* nur Baden-Wuerttemberg, Bayern, Nordrhein-Westfalen, Rheinland-Pfalz und im Saarland */
{ 0, 0, 0, "Buss- und Bettag" }, /* nur bis incl. 1994 (wg. Pflegeversicherung abgeschafft) */
{ 25, 12, 1, "1. Weihnachtsfeiertag" },
{ 26, 12, 1, "2. Weihnachtsfeiertag" }};
#endif
static int schalt(register int j)
{
return(((j % 4 == 0) && (j % 100 != 0)) || (j % 400 == 0));
} /* schalt */
static int tag_num(register int t, register int m, register int j)
{
register char *tm = tab_tage[schalt(j)];
while (--m)
t += *tm++;
return(t);
} /* tag_num */
static void num_tag(int jahr, int lfd)
{
register int i;
register char *t;
while (lfd < 1)
lfd += tag_num(31, 12, --jahr);
t = tab_tage[schalt(jahr)];
for (i = 1; lfd > *t && i < 13; i++)
lfd -= *t++;
if (i > 12)
num_tag(++jahr, lfd);
else {
_datum.monat = i;
_datum.tag = lfd;
_datum.jahr = jahr;
} /* else */
} /* num_tag */
static void comp_feier_tage(int jj)
{
static struct w_ftag t_stag[A_FEI];
static int firsttime = 1;
static int l_jj = -1;
register int mm, tt, i, j, a, b;
if (jj == l_jj)
return;
l_jj = jj;
if (firsttime) {
for (i = 0; i < A_FEI; i++)
t_stag[i] = t_ftag[i];
firsttime = 0;
}
else
for (i = 0; i < A_FEI; i++)
t_ftag[i] = t_stag[i];
/* Berechnung von Ostern nach C.F.Gauss */
i = jj / 100 - jj / 400 + 4;
j = i - jj / 300 + 11;
a = (((jj % 19) * 19) + j) % 30;
b = (((jj % 4) * 2 + (4 * jj) + (6 * a) + i) % 7) + a - 9;
if (b < 1) {
tt = 31 + b;
mm = 3;
}
else {
if ((b == 26) || ((a == 28) && (b == 25) && ((11 * (j + 1) % 30) < 19)))
b -= 7;
tt = b;
mm = 4;
} /* else */
num_tag(jj, tag_num(tt, mm, jj));
t_ftag[OST1].monat = _datum.monat; t_ftag[OST1].tag = _datum.tag;
num_tag(jj, 1 + tag_num(_datum.tag, _datum.monat, jj));
t_ftag[OST2].monat = _datum.monat; t_ftag[OST2].tag = _datum.tag;
num_tag(jj, - 3 + tag_num(_datum.tag, _datum.monat, jj));
t_ftag[KARF].monat = _datum.monat; t_ftag[KARF].tag = _datum.tag;
/* Pfingsten */
num_tag(jj, 51 + tag_num(_datum.tag, _datum.monat, jj));
t_ftag[PFI1].monat = _datum.monat; t_ftag[PFI1].tag = _datum.tag;
num_tag(jj, 1 + tag_num(_datum.tag, _datum.monat, jj));
t_ftag[PFI2].monat = _datum.monat; t_ftag[PFI2].tag = _datum.tag;
/* Himmelfahrt */
num_tag(jj, -10 + tag_num(t_ftag[PFI1].tag, t_ftag[PFI1].monat, jj));
t_ftag[CHRI].monat = _datum.monat; t_ftag[CHRI].tag = _datum.tag;
/* Fronleichnam */
num_tag(jj, 11 + tag_num(t_ftag[PFI1].tag, t_ftag[PFI1].monat, jj));
t_ftag[FRON].monat = _datum.monat; t_ftag[FRON].tag = _datum.tag;
} /* comp_feier_tage */
static int tarifzeit(struct tm *tm, char *why)
{
register int i;
#ifndef ISDN_NL
if ((tm->tm_mday == 24) && (tm->tm_mon == 11)) {
strcpy(why, "Feiertag (Heilig-Abend)");
return(FE);
} /* if */
if ((tm->tm_mday == 31) && (tm->tm_mon == 11)) {
strcpy(why, "Feiertag (Sylvester)");
return(FE);
} /* if */
if ((tm->tm_mday > 26) && (tm->tm_mon == 11)) {
strcpy(why, "Jahresende (27. .. 30.12.)");
return(ZJ);
} /* if */
comp_feier_tage(tm->tm_year + 1900);
for (i = 0; i < A_FEI; i++)
if ((t_ftag[i].monat == tm->tm_mon + 1) &&
(t_ftag[i].tag == tm->tm_mday) &&
t_ftag[i].telekom) {
sprintf(why, "Feiertag (%s)", t_ftag[i].bez);
return(FE);
} /* if */
#endif
if (tm->tm_wday == 6) {
strcpy(why, "Wochenende (Samstag)");
return(WE);
} /* if */
if (tm->tm_wday == 0) {
strcpy(why, "Wochenende (Sonntag)");
return(WE);
} /* if */
strcpy(why, "Werktag");
return(WT);
} /* tarifzeit */
/*
[Provider][Uhrzeit][Tarif][Zone]
| | | |
| | | +----- 1=CityCall, 2=RegioCall, 3=GermanCall
| | +------------ 1=Werktag, 2=Wochenende, 3=27.12. - 30.12., 4=Feiertag
| +-------------------- 1=05:00 .. 09:00, 2=09:00 .. 12:00, 3=12:00 .. 18:00, 4=18:00 .. 21:00, 5=21:00 .. 02:00, 6=02:00 .. 05:00
+------------------------------ 1=DTAG, 2=Mobilcom, 3=Tele2
*/
static int zeit[24] = { 4, 4, 5, 5, 5, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4 };
static char *zeiten[6] = { "Freizeit", "Vormittag", "Nachmittag", "Freizeit", "Mondschein", "Nacht" };
static char *zonen[4] = { "CityCall", "RegioCall", "GermanCall", "GlobalCall" };
static float gebuehr[2][6][4][3] =
{{{{ 150.0, 45.0, 22.5 }, /* DTAG */
{ 150.0, 45.0, 30.0 },
{ 150.0, 45.0, 36.0 },
{ 150.0, 45.0, 36.0 }},
{{ 90.0, 26.0, 13.0 },
{ 150.0, 45.0, 30.0 },
{ 90.0, 36.0, 36.0 },
{ 150.0, 45.0, 36.0 }},
{{ 90.0, 30.0, 14.0 },
{ 150.0, 45.0, 30.0 },
{ 90.0, 36.0, 36.0 },
{ 150.0, 45.0, 36.0 }},
{{ 150.0, 45.0, 22.5 },
{ 150.0, 45.0, 30.0 },
{ 150.0, 45.0, 36.0 },
{ 150.0, 45.0, 36.0 }},
{{ 240.0, 60.0, 36.0 },
{ 240.0, 60.0, 36.0 },
{ 240.0, 60.0, 36.0 },
{ 240.0, 60.0, 36.0 }},
{{ 240.0, 120.0, 120.0 },
{ 240.0, 60.0, 36.0 },
{ 240.0, 120.0, 120.0 },
{ 240.0, 60.0, 36.0 }}},
{{{ -1.0, 60.0, 60.0 }, /* Mobilcom */
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 }},
{{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 }},
{{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 }},
{{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 }},
{{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 }},
{{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 },
{ -1.0, 60.0, 60.0 }}}};
float taktlaenge(int chan, char *description)
{
register int c;
auto struct tm *tm;
auto char why[BUFSIZ];
auto int provider = call[chan].provider;
auto time_t connect = call[chan].connect;
auto int zone = -1, zone2 = -1;
auto float takt;
*description = 0;
if (!call[chan].dialin && *call[chan].num[1]) {
if ((provider == 11) || /* o.tel.o */
(provider == 13) || /* Tele2 */
(provider == 14) || /* EWE TEL */
(provider == 15) || /* */
(provider == 23) || /* Tesion */
(provider == 24) || /* TelePassport */
(provider == 30) || /* TelDaFax */
(provider == 39) || /* tesion */
(provider == 41) || /* HanseNet */
(provider == 46) || /* KomTel */
(provider == 49) || /* ACC */
(provider == 66) || /* Interoute */
(provider == 70) || /* Arcor */
(provider == 79) || /* Viatel */
(provider == 90) || /* Viag Interkom */
(provider == 98)) /* STAR Telecom */
return(1);
if (provider == 18) /* Debitel */
return(30);
if ((provider == 36) || /* Hutchison Telekom */
(provider == 50)) /* Talkline */
return(10);
if (provider == 43) /* Hutchison Telekom */
return(60);
if (provider == 9) /* ECONOphone - mindestens jedoch 30 Sekunden! */
return(6);
tm = localtime(&connect);
if (call[chan].sondernummer != -1) {
switch (SN[call[chan].sondernummer].tarif) {
case 0 : sprintf(description, "FreeCall"); /* Free of charge */
return(60 * 60 * 24); /* one day should be enough ;-) */
case 1 : zone = 1; /* CityCall */
break;
case -1 : if ((tm->tm_wday > 0) && (tm->tm_wday < 6)) {
if ((tm->tm_hour > 8) && (tm->tm_hour < 18))
takt = SN[call[chan].sondernummer].takt1; /* Werktag 9-18 Uhr */
else
takt = SN[call[chan].sondernummer].takt2; /* Restliche Zeit */
}
else
takt = SN[call[chan].sondernummer].takt2;
strcpy(description, SN[call[chan].sondernummer].sinfo);
return(takt);
break;
} /* switch */
} /* if */
if (zone == -1) {
zone2 = area_diff(NULL, call[chan].num[1]);
if ((zone2 == -1) && (c = call[chan].confentry[OTHER]) > -1)
zone = known[c]->zone;
else
zone = zone2;
} /* if */
if (zone != -1) {
if (provider == -1)
provider = 33;
call[chan].zone = zone;
zone--;
if ((zone < 0) || (zone > 3))
return(-1);
if ((provider == 19) || (provider == 33)) {
takt = gebuehr[(provider == 33) ? DTAG : MOBILCOM][zeit[tm->tm_hour]][tarifzeit(tm, why)][zone];
sprintf(description, "%s, %s, %s", zeiten[zeit[tm->tm_hour]], why, zonen[zone]);
return(takt);
}
else
return(-1);
}
else
return(-1);
}
else
return(-1);
} /* taktlaenge */
float preis(int chan)
{
auto int duration;
auto float pay, minpr;
auto char why[BUFSIZ];
auto int tz;
auto struct tm *tm;
if (call[chan].provider == 13) { /* Tele 2 */
if (call[chan].zone == CITYCALL) /* not possible with Tele 2 */
return(-1.0);
tm = localtime(&call[chan].connect);
tz = tarifzeit(tm, why);
if ((tz == WE) || (tz == FE))
minpr = 0.10;
else {
if ((tm->tm_hour > 8) && (tm->tm_hour < 18))
minpr = 0.20;
else
minpr = 0.15;
} /* else */
duration = call[chan].disconnect - call[chan].connect;
pay = minpr / 60 * duration;
return(pay);
} /* if */
return 0;
} /* preis */

View File

@ -1,4 +1,4 @@
/* $Id: isdnrep.c,v 1.42 1998/09/22 21:06:50 luethje Exp $
/* $Id: isdnrep.c,v 1.43 1998/09/26 18:29:55 akool Exp $
*
* ISDN accounting for isdn4linux. (Report-module)
*
@ -24,6 +24,29 @@
*
*
* $Log: isdnrep.c,v $
* Revision 1.43 1998/09/26 18:29:55 akool
* - quick and dirty Call-History in "-m" Mode (press "h" for more info) added
* - eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
* - Support for tesion)) Baden-Wuerttemberg Tarif
* - more Providers
* - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
* - better zone-info support in "tools/isdnconf.c"
* - buffer-overrun in "isdntools.c" fixed
* - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
* - added $(DESTDIR) in any "Makefile.in"
* - new Configure-Switches "ISDN_AT" and "ISDN_DE"
* - splitted "takt.c" and "tools.c" into
* "takt_at.c" / "takt_de.c" ...
* "tools_at.c" / "takt_de.c" ...
* - new feature
* CALLFILE = /var/log/caller.log
* CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
* in "isdn.conf"
* - ATTENTION:
* 1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
* 2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
* should be fixed soon
*
* Revision 1.42 1998/09/22 21:06:50 luethje
* isdnrep: simple fix
*
@ -812,6 +835,8 @@ int read_logfile(char *myname)
einheit = 0.0011; /* cost of one second local tariff during office hours */
#elif defined(ISDN_CH)
einheit = 0.01;
#elif defined(ISDN_AT)
einheit = 1.056;
#else
einheit = Tarif96 ? 0.121 : 0.23;
#endif

View File

@ -87,6 +87,9 @@
/* Define if you have Swiss charge info */
#undef ISDN_CH
/* Define if you have Austrian charge info */
#undef ISDN_AT
/* Define if you have Netherlands charge info */
#undef ISDN_NL

View File

@ -1,4 +1,4 @@
/* $Id: isdnconf.c,v 1.18 1998/06/14 15:34:35 akool Exp $
/* $Id: isdnconf.c,v 1.19 1998/09/26 18:30:08 akool Exp $
*
* ISDN accounting for isdn4linux. (Utilities)
*
@ -20,6 +20,29 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: isdnconf.c,v $
* Revision 1.19 1998/09/26 18:30:08 akool
* - quick and dirty Call-History in "-m" Mode (press "h" for more info) added
* - eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
* - Support for tesion)) Baden-Wuerttemberg Tarif
* - more Providers
* - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
* - better zone-info support in "tools/isdnconf.c"
* - buffer-overrun in "isdntools.c" fixed
* - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
* - added $(DESTDIR) in any "Makefile.in"
* - new Configure-Switches "ISDN_AT" and "ISDN_DE"
* - splitted "takt.c" and "tools.c" into
* "takt_at.c" / "takt_de.c" ...
* "tools_at.c" / "takt_de.c" ...
* - new feature
* CALLFILE = /var/log/caller.log
* CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
* in "isdn.conf"
* - ATTENTION:
* 1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
* 2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
* should be fixed soon
*
* Revision 1.18 1998/06/14 15:34:35 akool
* AVM B1 support (Layer 3)
* Telekom's new currency DEM 0,121 supported
@ -826,6 +849,8 @@ void setDefaults()
currency = "NLG";
#elif defined(ISDN_CH)
currency = "SFR";
#elif defined(ISDN_AT)
currency = "ATS";
#else
currency = "DM";
#endif
@ -838,6 +863,8 @@ void setDefaults()
currency_factor = 0.15;
#elif defined(ISDN_CH)
currency_factor = 0.01;
#elif defined(ISDN_AT)
currency_factor = 1.056;
#else
currency_factor = 0.121;
#endif
@ -969,6 +996,8 @@ static int _readconfig(char *_myname)
stopcmd = STOPCMD;
rebootcmd = REBOOTCMD;
logfile = LOGFILE;
callfile = NULL;
callfmt = NULL;
start_procs.infoargs = NULL;
start_procs.flags = 0;
conf_dat = NULL;
@ -1102,6 +1131,12 @@ static int Set_Globals(section *SPtr)
if ((CEPtr = Get_Entry(Ptr->entries,CONF_ENT_LOGFILE)) != NULL)
logfile = CEPtr->value;
if ((CEPtr = Get_Entry(Ptr->entries,CONF_ENT_CALLFILE)) != NULL)
callfile = CEPtr->value;
if ((CEPtr = Get_Entry(Ptr->entries,CONF_ENT_CALLFMT)) != NULL)
callfmt = CEPtr->value;
if ((CEPtr = Get_Entry(Ptr->entries,CONF_ENT_CW)) != NULL)
CityWeekend = toupper(*(CEPtr->value)) == 'Y'?1:0;
@ -1195,12 +1230,12 @@ static int Set_Globals(section *SPtr)
_print_msg("%s: WARNING: Variable `%s' is not set!\n", Myname, CONF_ENT_AREA);
myarea = "";
}
#if 0
if (chargemax == 0)
{
_print_msg("%s: WARNING: Variable `%s' is not set, \nperforming no action when chargemax-overflow\n", Myname, CONF_ENT_CHARGE);
}
#endif
return 0;
}
@ -1373,8 +1408,11 @@ static int Set_Numbers(section *SPtr, char *Section, int msn)
{
if (msn < 0)
{
if((known[Index]->zone=area_diff(NULL, num))<1)
{
_print_msg("%s: WARNING: There is no variable `%s' for number `%s'!\n", Myname, CONF_ENT_ZONE, num);
known[Index]->zone = 4;
}
}
else
known[Index]->zone = 1;

View File

@ -1,4 +1,4 @@
/* $Id: tools.c,v 1.13 1998/06/21 11:53:23 akool Exp $
/* $Id: tools.c,v 1.14 1998/09/26 18:30:14 akool Exp $
*
* ISDN accounting for isdn4linux. (Utilities)
*
@ -19,6 +19,29 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: tools.c,v $
* Revision 1.14 1998/09/26 18:30:14 akool
* - quick and dirty Call-History in "-m" Mode (press "h" for more info) added
* - eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
* - Support for tesion)) Baden-Wuerttemberg Tarif
* - more Providers
* - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
* - better zone-info support in "tools/isdnconf.c"
* - buffer-overrun in "isdntools.c" fixed
* - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
* - added $(DESTDIR) in any "Makefile.in"
* - new Configure-Switches "ISDN_AT" and "ISDN_DE"
* - splitted "takt.c" and "tools.c" into
* "takt_at.c" / "takt_de.c" ...
* "tools_at.c" / "takt_de.c" ...
* - new feature
* CALLFILE = /var/log/caller.log
* CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
* in "isdn.conf"
* - ATTENTION:
* 1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
* 2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
* should be fixed soon
*
* Revision 1.13 1998/06/21 11:53:23 akool
* First step to let isdnlog generate his own AOCD messages
*
@ -641,44 +664,6 @@ static char *ltoa(register unsigned long num, register char *p, register int rad
/****************************************************************************/
char *Providername(int number)
{
switch (number) {
case 11 : return("o.tel.o");
case 13 : return("Tele2");
case 14 : return("EWE TEL");
case 15 : return("???");
case 18 : return("Debitel");
case 19 : return("Mobilcom");
case 20 : return("Isis");
case 22 : return("NetCologne");
case 23 : return("Tesion");
case 24 : return("TelePassport");
case 25 : return("Citykom Muenster");
case 30 : return("TelDaFax");
case 33 : return("Telekom");
case 36 : return("Hutchison Telekom");
case 39 : return("tesion))");
case 41 : return("HanseNet");
case 43 : return("???");
case 46 : return("KomTel");
case 49 : return("ACC");
case 50 : return("Talkline");
case 55 : return("Esprit");
case 66 : return("Interoute");
case 70 : return("Arcor");
case 79 : return("Viatel");
case 85 : return("WESTCom");
case 88 : return("WorldCom");
case 90 : return("Viag Interkom");
case 98 : return("STAR Telecom");
case 99 : return("ECONOphone/Telco");
default : return("UNKNOWN Provider");
} /* switch */
} /* Providername */
/****************************************************************************/
int iprintf(char *obuf, int chan, register char *fmt, ...)
{
register char *p, *s;
@ -934,47 +919,3 @@ int print_version(char *myname)
/****************************************************************************/
char *t2tz(int zeit)
{
switch (zeit) {
case 0 : return("Vormittag"); break;
case 1 : return("Nachmittag"); break;
case 2 : return("Freizeit"); break;
case 3 : return("Mondschein"); break;
case 4 : return("Nacht"); break;
case 5 : return("Standard"); break;
case 6 : return("Spartarif"); break;
case 7 : return("City Weekend"); break;
case 8 : return("City Plus"); break;
case 9 : return("Feiertag"); break;
default : return(""); break;
} /* switch */
} /* t2tz */
/****************************************************************************/
char *z2s(int zone)
{
switch (zone) {
case 1 : return("CityCall"); break;
case 2 : return("RegioCall"); break;
case 3 : return("GermanCall"); break;
case 4 : return("GermanCall"); break;
case 5 : return("GlobalCall"); break;
case 6 : return("Vis1"); break;
case 7 : return("Vis2"); break;
case 8 : return("Vis3"); break;
case 9 : return("Welt1"); break;
case 10 : return("Welt2"); break;
case 11 : return("Welt3"); break;
case 12 : return("T-Online"); break;
case 13 : return("KONF"); break;
case 14 : return("Inmar"); break;
case 15 : return("C-Box"); break;
case 16 : return("T-Box"); break;
case 21 : return("City"); break; /* City Plus */
default : return(""); break;
} /* switch */
} /* z2s */
/****************************************************************************/

View File

@ -1,4 +1,4 @@
/* $Id: tools.h,v 1.19 1998/06/21 11:53:27 akool Exp $
/* $Id: tools.h,v 1.20 1998/09/26 18:30:18 akool Exp $
*
* ISDN accounting for isdn4linux.
*
@ -20,6 +20,29 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: tools.h,v $
* Revision 1.20 1998/09/26 18:30:18 akool
* - quick and dirty Call-History in "-m" Mode (press "h" for more info) added
* - eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
* - Support for tesion)) Baden-Wuerttemberg Tarif
* - more Providers
* - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
* - better zone-info support in "tools/isdnconf.c"
* - buffer-overrun in "isdntools.c" fixed
* - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
* - added $(DESTDIR) in any "Makefile.in"
* - new Configure-Switches "ISDN_AT" and "ISDN_DE"
* - splitted "takt.c" and "tools.c" into
* "takt_at.c" / "takt_de.c" ...
* "tools_at.c" / "takt_de.c" ...
* - new feature
* CALLFILE = /var/log/caller.log
* CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
* in "isdn.conf"
* - ATTENTION:
* 1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
* 2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
* should be fixed soon
*
* Revision 1.19 1998/06/21 11:53:27 akool
* First step to let isdnlog generate his own AOCD messages
*
@ -461,6 +484,9 @@
#define CONF_ENT_REPFMT "REPFMT"
#define CONF_ENT_CALLFILE "CALLFILE"
#define CONF_ENT_CALLFMT "CALLFMT"
#define CONF_ENT_VBOXVER "VBOXVERSION"
#define CONF_ENT_VBOXPATH "VBOXPATH"
#define CONF_ENT_VBOXCMD1 "VBOXCMD1"
@ -564,6 +590,7 @@ typedef struct {
int cinth;
int ctakt;
int zone;
int uid;
} CALL;
/****************************************************************************/
@ -732,6 +759,8 @@ _EXTERN char* reloadcmd = RELOADCMD;
_EXTERN char* stopcmd = STOPCMD;
_EXTERN char* rebootcmd = REBOOTCMD;
_EXTERN char* logfile = LOGFILE;
_EXTERN char* callfile = NULL;
_EXTERN char* callfmt = NULL;
_EXTERN int (*_print_msg)(const char *, ...) = printf;
_EXTERN int use_new_config = 1;
_EXTERN char ***lineformats = NULL;
@ -748,6 +777,8 @@ _EXTERN char* reloadcmd;
_EXTERN char* stopcmd;
_EXTERN char* rebootcmd;
_EXTERN char* logfile;
_EXTERN char* callfile;
_EXTERN char* callfmt;
_EXTERN int (*_print_msg)(const char *, ...);
_EXTERN int use_new_config;
_EXTERN char ***lineformats;

112
isdnlog/tools/tools_at.c Normal file
View File

@ -0,0 +1,112 @@
/* $Id: tools_at.c,v 1.1 1998/09/26 18:30:21 akool Exp $
*
* ISDN accounting for isdn4linux. (Utilities)
*
* Copyright 1995, 1998 by Andreas Kool (akool@Kool.f.UUnet.de)
*
* splitting into nations 1998 by Michael Reinelt (reinelt@eunet.at)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: tools_at.c,v $
* Revision 1.1 1998/09/26 18:30:21 akool
* - quick and dirty Call-History in "-m" Mode (press "h" for more info) added
* - eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
* - Support for tesion)) Baden-Wuerttemberg Tarif
* - more Providers
* - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
* - better zone-info support in "tools/isdnconf.c"
* - buffer-overrun in "isdntools.c" fixed
* - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
* - added $(DESTDIR) in any "Makefile.in"
* - new Configure-Switches "ISDN_AT" and "ISDN_DE"
* - splitted "takt.c" and "tools.c" into
* "takt_at.c" / "takt_de.c" ...
* "tools_at.c" / "takt_de.c" ...
* - new feature
* CALLFILE = /var/log/caller.log
* CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
* in "isdn.conf"
* - ATTENTION:
* 1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
* 2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
* should be fixed soon
*
*
*/
#include <isdnlog.h>
char *Providername(int number)
{
switch (number) {
default : return("PTA");
} /* switch */
} /* Providername */
/****************************************************************************/
char *t2tz(int zeit)
{
switch (zeit) {
case 0 : return("Tageszeit 1"); break;
case 1 : return("Tageszeit 2"); break;
case 2 : return("Sparzeit"); break;
case 3 : return("Supersparzeit"); break;
default : return("");
} /* switch */
} /* t2tz */
/****************************************************************************/
char *z2s(int zone)
{
switch (zone) {
case 1 : return("Regionalzone"); break;
case 2 : return("Fernzone 1"); break;
case 3 : return("Fernzone 2"); break;
case 4 : return("Online"); break;
case 5 : return("Mobilfunk"); break;
case 6 : return("Ausland Zone 1"); break;
case 7 : return("Ausland Zone 2"); break;
case 8 : return("Ausland Zone 3"); break;
case 9 : return("Ausland Zone 4"); break;
case 10 : return("Ausland Zone 5"); break;
case 11 : return("Ausland Zone 6"); break;
case 12 : return("Ausland Zone 7"); break;
case 13 : return("Ausland Zone 8"); break;
case 14 : return("Ausland Zone 9"); break;
case 15 : return("Ausland Zone 10"); break;
case 16 : return("Ausland Zone 11"); break;
case 17 : return("Ausland Zone 12"); break;
case 18 : return("Ausland Zone 13"); break;
case 19 : return("Ausland Zone 14"); break;
case 20 : return("Ausland Zone 15"); break;
case 21 : return("Handvermittelter Verkehr"); break;
case 22 : return("Grenznahverkehr");break;
case 23 : return("Teleinfo 04570"); break;
case 24 : return("Teleinfo 04500"); break;
case 25 : return("Telebusiness 04590"); break;
case 26 : return("Teleinfo 04580"); break;
case 27 : return("Businessline 0711x"); break;
case 28 : return("Businessline 0713x"); break;
case 29 : return("Businessline 0714x"); break;
case 30 : return("Votingline 0717x"); break;
default : return("");
} /* switch */
} /* z2s */
/****************************************************************************/

71
isdnlog/tools/tools_ch.c Normal file
View File

@ -0,0 +1,71 @@
/* $Id: tools_ch.c,v 1.1 1998/09/26 18:30:24 akool Exp $
*
* ISDN accounting for isdn4linux. (Utilities)
*
* Copyright 1995, 1998 by Andreas Kool (akool@Kool.f.UUnet.de)
*
* splitting into nations 1998 by Michael Reinelt (reinelt@eunet.at)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: tools_ch.c,v $
* Revision 1.1 1998/09/26 18:30:24 akool
* - quick and dirty Call-History in "-m" Mode (press "h" for more info) added
* - eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
* - Support for tesion)) Baden-Wuerttemberg Tarif
* - more Providers
* - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
* - better zone-info support in "tools/isdnconf.c"
* - buffer-overrun in "isdntools.c" fixed
* - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
* - added $(DESTDIR) in any "Makefile.in"
* - new Configure-Switches "ISDN_AT" and "ISDN_DE"
* - splitted "takt.c" and "tools.c" into
* "takt_at.c" / "takt_de.c" ...
* "tools_at.c" / "takt_de.c" ...
* - new feature
* CALLFILE = /var/log/caller.log
* CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
* in "isdn.conf"
* - ATTENTION:
* 1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
* 2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
* should be fixed soon
*
*
*/
#include <isdnlog.h>
char *Providername(int number)
{
return("");
} /* Providername */
/****************************************************************************/
char *t2tz(int zeit)
{
return("");
} /* t2tz */
/****************************************************************************/
char *z2s(int zone)
{
return("");
} /* z2s */
/****************************************************************************/

141
isdnlog/tools/tools_de.c Normal file
View File

@ -0,0 +1,141 @@
/* $Id: tools_de.c,v 1.1 1998/09/26 18:30:24 akool Exp $
*
* ISDN accounting for isdn4linux. (Utilities)
*
* Copyright 1995, 1998 by Andreas Kool (akool@Kool.f.UUnet.de)
*
* splitting into nations 1998 by Michael Reinelt (reinelt@eunet.at)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: tools_de.c,v $
* Revision 1.1 1998/09/26 18:30:24 akool
* - quick and dirty Call-History in "-m" Mode (press "h" for more info) added
* - eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
* - Support for tesion)) Baden-Wuerttemberg Tarif
* - more Providers
* - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
* - better zone-info support in "tools/isdnconf.c"
* - buffer-overrun in "isdntools.c" fixed
* - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
* - added $(DESTDIR) in any "Makefile.in"
* - new Configure-Switches "ISDN_AT" and "ISDN_DE"
* - splitted "takt.c" and "tools.c" into
* "takt_at.c" / "takt_de.c" ...
* "tools_at.c" / "takt_de.c" ...
* - new feature
* CALLFILE = /var/log/caller.log
* CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
* in "isdn.conf"
* - ATTENTION:
* 1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
* 2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
* should be fixed soon
*
*
*/
#include <isdnlog.h>
char *Providername(int number)
{
switch (number) {
case 01 : return("Alpha");
case 11 : return("o.tel.o");
case 13 : return("Tele 2");
case 14 : return("EWE Tel");
case 15 : return("RSL COM");
case 18 : return("Debitel");
case 19 : return("MobilCom");
case 20 : return("Isis");
case 22 : return("NetCologne");
case 23 : return("tesion ))");
case 24 : return("TelePassport");
case 25 : return("Citykom Muenster");
case 28 : return("COLT/Telebridge/Global Comm.");
case 30 : return("TelDaFax");
case 33 : return("Telekom");
case 36 : return("Hutchison Telekom");
case 39 : return("F.T.");
case 40 : return("Plusnet");
case 41 : return("HanseNet");
case 43 : return("KielNet");
case 44 : return("VEW TELNET");
case 46 : return("KomTel");
case 49 : return("ACC Telecom");
case 50 : return("Talkline");
case 55 : return("Esprit");
case 57 : return("Mox");
case 63 : return("KDD-Conos");
case 66 : return("Interoute");
case 70 : return("Arcor");
case 72 : return("d2privat");
case 79 : return("Viatel");
case 85 : return("WESTCom");
case 88 : return("WorldCom");
case 90 : return("VIAG Interkom");
case 98 : return("STAR Telecom");
case 99 : return("ECONOphone/Telco");
default : return("UNKNOWN Provider");
} /* switch */
} /* Providername */
/****************************************************************************/
char *t2tz(int zeit)
{
switch (zeit) {
case 0 : return("Vormittag"); break;
case 1 : return("Nachmittag"); break;
case 2 : return("Freizeit"); break;
case 3 : return("Mondschein"); break;
case 4 : return("Nacht"); break;
case 5 : return("Standard"); break;
case 6 : return("Spartarif"); break;
case 7 : return("City Weekend"); break;
case 8 : return("City Plus"); break;
case 9 : return("Feiertag"); break;
default : return(""); break;
} /* switch */
} /* t2tz */
/****************************************************************************/
char *z2s(int zone)
{
switch (zone) {
case 1 : return("CityCall"); break;
case 2 : return("RegioCall"); break;
case 3 : return("GermanCall"); break;
case 4 : return("GermanCall"); break;
case 5 : return("GlobalCall"); break;
case 6 : return("Vis1"); break;
case 7 : return("Vis2"); break;
case 8 : return("Vis3"); break;
case 9 : return("Welt1"); break;
case 10 : return("Welt2"); break;
case 11 : return("Welt3"); break;
case 12 : return("T-Online"); break;
case 13 : return("KONF"); break;
case 14 : return("Inmar"); break;
case 15 : return("C-Box"); break;
case 16 : return("T-Box"); break;
case 21 : return("City"); break; /* City Plus */
default : return(""); break;
} /* switch */
} /* z2s */
/****************************************************************************/

71
isdnlog/tools/tools_nl.c Normal file
View File

@ -0,0 +1,71 @@
/* $Id: tools_nl.c,v 1.1 1998/09/26 18:30:25 akool Exp $
*
* ISDN accounting for isdn4linux. (Utilities)
*
* Copyright 1995, 1998 by Andreas Kool (akool@Kool.f.UUnet.de)
*
* splitting into nations 1998 by Michael Reinelt (reinelt@eunet.at)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: tools_nl.c,v $
* Revision 1.1 1998/09/26 18:30:25 akool
* - quick and dirty Call-History in "-m" Mode (press "h" for more info) added
* - eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
* - Support for tesion)) Baden-Wuerttemberg Tarif
* - more Providers
* - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
* - better zone-info support in "tools/isdnconf.c"
* - buffer-overrun in "isdntools.c" fixed
* - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
* - added $(DESTDIR) in any "Makefile.in"
* - new Configure-Switches "ISDN_AT" and "ISDN_DE"
* - splitted "takt.c" and "tools.c" into
* "takt_at.c" / "takt_de.c" ...
* "tools_at.c" / "takt_de.c" ...
* - new feature
* CALLFILE = /var/log/caller.log
* CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
* in "isdn.conf"
* - ATTENTION:
* 1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
* 2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
* should be fixed soon
*
*
*/
#include <isdnlog.h>
char *Providername(int number)
{
return("");
} /* Providername */
/****************************************************************************/
char *t2tz(int zeit)
{
return("");
} /* t2tz */
/****************************************************************************/
char *z2s(int zone)
{
return("");
} /* z2s */
/****************************************************************************/

View File

@ -40,7 +40,7 @@ CC = $(_CC)
INSTALL =install
INSTALL_DIR := $(INSTALL) -m 0755 -o 0 -g 0 -d
INSTALL_AVON := $(INSTALL) -m 0644 $(AVON) $(I4LCONFDIR)
INSTALL_AVON := $(INSTALL) -m 0644 $(AVON) $(DESTDIR)$(I4LCONFDIR)
#CFLAGS = -I$(PREFIXDIR)
@ -59,13 +59,13 @@ distclean: clean
install: depend all
ifneq ($(CONFIG_LIB_AREACODE),y)
-$(INSTALL_DIR) $(I4LCONFDIR)
-test $(AVON) -ot $(I4LCONFDIR)/$(AVON) || ( $(INSTALL_AVON) )
-@rm -f $(I4LCONFDIR)/$(AVON).pag $(I4LCONFDIR)/$(AVON).dir
-$(INSTALL_DIR) $(DESTDIR)$(I4LCONFDIR)
-test $(AVON) -ot $(DESTDIR)$(I4LCONFDIR)/$(AVON) || ( $(INSTALL_AVON) )
-@rm -f $(DESTDIR)$(I4LCONFDIR)/$(AVON).pag $(DESTDIR)$(I4LCONFDIR)/$(AVON).dir
endif
deinstall: distclean
-rm -f $(I4LCONFDIR)/$(AVON)*
-rm -f $(DESTDIR)$(I4LCONFDIR)/$(AVON)*
createDB.o: createDB.c createDB.h

View File

@ -1,4 +1,4 @@
/* $Id: isdntools.c,v 1.21 1998/06/07 21:03:26 akool Exp $
/* $Id: isdntools.c,v 1.22 1998/09/26 18:30:30 akool Exp $
*
* ISDN accounting for isdn4linux. (Utilities)
*
@ -19,6 +19,29 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: isdntools.c,v $
* Revision 1.22 1998/09/26 18:30:30 akool
* - quick and dirty Call-History in "-m" Mode (press "h" for more info) added
* - eat's one more socket, Stefan: sockets[3] now is STDIN, FIRST_DESCR=4 !!
* - Support for tesion)) Baden-Wuerttemberg Tarif
* - more Providers
* - Patches from Wilfried Teiken <wteiken@terminus.cl-ki.uni-osnabrueck.de>
* - better zone-info support in "tools/isdnconf.c"
* - buffer-overrun in "isdntools.c" fixed
* - big Austrian Patch from Michael Reinelt <reinelt@eunet.at>
* - added $(DESTDIR) in any "Makefile.in"
* - new Configure-Switches "ISDN_AT" and "ISDN_DE"
* - splitted "takt.c" and "tools.c" into
* "takt_at.c" / "takt_de.c" ...
* "tools_at.c" / "takt_de.c" ...
* - new feature
* CALLFILE = /var/log/caller.log
* CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
* in "isdn.conf"
* - ATTENTION:
* 1. "isdnrep" dies with an seg-fault, if not HTML-Mode (Stefan?)
* 2. "isdnlog/Makefile.in" now has hardcoded "ISDN_DE" in "DEFS"
* should be fixed soon
*
* Revision 1.21 1998/06/07 21:03:26 akool
* Renamed old to new zone-names (CityCall, RegioCall, GermanCall, GlobalCall)
*
@ -1038,8 +1061,8 @@ const char* area_diff_string(char* number1, char* number2)
int area_diff(char* _code, char *_diffcode)
{
FILE *fp = NULL;
char code[15];
char diffcode[15];
char code[40];
char diffcode[40];
char value[15];
int index;
int number;

View File

@ -1,4 +1,4 @@
# $Id: Makefile.in,v 1.2 1998/06/27 00:36:27 fritz Exp $
# $Id: Makefile.in,v 1.3 1998/09/26 18:30:42 akool Exp $
#
# Makefile for loopctrl
# (C) 1997 Fritz Elfert
@ -52,17 +52,17 @@ $(PROGRAM): $(MODULES)
$(CC) $(CFLAGS) $(INCLUDES) $(DEFS) $? $(LDFLAGS) -o $@
install-man: $(PROGRAM).man
mkdir -p $(MAN8DIR)
$(INSTALL_MAN) $< $(MAN8DIR)/$(MANPAGE)
mkdir -p $(DESTDIR)$(MAN8DIR)
$(INSTALL_MAN) $< $(DESTDIR)$(MAN8DIR)/$(MANPAGE)
install: $(PROGRAM) install-man
$(INSTALL_PROGRAM) $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL_PROGRAM) $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
install-strip: $(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
uninstall:
rm -f $(SBINDIR)/$(PROGRAM) $(MAN8DIR)/$(MANPAGE)
rm -f $(DESTDIR)$(SBINDIR)/$(PROGRAM) $(DESTDIR)$(MAN8DIR)/$(MANPAGE)
clean:
rm -f *.o *~ $(PROGRAM)

View File

@ -1,4 +1,4 @@
# $Id: Makefile.in,v 1.7 1998/03/01 20:36:29 keil Exp $
# $Id: Makefile.in,v 1.8 1998/09/26 18:30:48 akool Exp $
#
# Makefile for pcbitctl
# (C) 1997 Fritz Elfert
@ -40,18 +40,18 @@ config.status: configure
$(PROGRAM): $(MODULES)
$(CC) $(CFLAGS) $? $(LDFLAGS) -o $@
#install-man: $(PROGRAM).man
# mkdir -p $(MAN8DIR)
# $(INSTALL_MAN) $< $(MAN8DIR)/$(MANPAGE)
install-man: $(PROGRAM).man
mkdir -p $(DESTDIR)$(MAN8DIR)
$(INSTALL_MAN) $< $(DESTDIR)$(MAN8DIR)/$(MANPAGE)
install: $(PROGRAM) #install-man
$(INSTALL_PROGRAM) $(PROGRAM) $(SBINDIR)/$(PROGRAM)
install: $(PROGRAM) install-man
$(INSTALL_PROGRAM) $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
install-strip: $(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(SBINDIR)/$(PROGRAM)
install-strip: $(PROGRAM) install-man
$(INSTALL_PROGRAM) -s $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
uninstall:
rm -f $(SBINDIR)/$(PROGRAM) #$(MAN8DIR)/$(MANPAGE)
rm -f $(DESTDIR)$(SBINDIR)/$(PROGRAM) $(DESTDIR)$(MAN8DIR)/$(MANPAGE)
clean:
rm -f *.o *~ $(PROGRAM)

View File

@ -38,13 +38,13 @@ $(PROGRAM): $(MODULES)
$(CC) $(CFLAGS) $(INCLUDES) $(DEFS) $? $(LDFLAGS) -o $@
install: $(PROGRAM)
$(INSTALL_PROGRAM) $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL_PROGRAM) $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
install-strip: $(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(SBINDIR)/$(PROGRAM)
$(INSTALL_PROGRAM) -s $(PROGRAM) $(DESTDIR)$(SBINDIR)/$(PROGRAM)
uninstall:
rm -f $(SBINDIR)/$(PROGRAM)
rm -f $(DESTDIR)$(SBINDIR)/$(PROGRAM)
clean:
rm -f *.o *~ $(PROGRAM)

View File

@ -1,4 +1,4 @@
# $Id: Makefile.in,v 1.6 1997/10/26 23:20:51 fritz Exp $
# $Id: Makefile.in,v 1.7 1998/09/26 18:30:58 akool Exp $
#
# Makefile for telesctrl
# (C) 1997 Fritz Elfert
@ -46,23 +46,23 @@ hisaxctrl: $(MODULES)
$(CC) $(CFLAGS) $? $(LDFLAGS) -o $@
install: $(PROGRAMS) $(MANPAGES)
mkdir -p $(SBINDIR)
$(INSTALL_PROGRAM) $(PROGRAMS) $(SBINDIR)
mkdir -p $(MAN8DIR)
$(INSTALL_MAN) $(MANPAGES) $(MAN8DIR)
mkdir -p $(DESTDIR)$(SBINDIR)
$(INSTALL_PROGRAM) $(PROGRAMS) $(DESTDIR)$(SBINDIR)
mkdir -p $(DESTDIR)$(MAN8DIR)
$(INSTALL_MAN) $(MANPAGES) $(DESTDIR)$(MAN8DIR)
install-strip: $(PROGRAMS) $(MANPAGES)
mkdir -p $(SBINDIR)
$(INSTALL_PROGRAM) -s $(PROGRAMS) $(SBINDIR)
mkdir -p $(MAN8DIR)
$(INSTALL_MAN) $(MANPAGES) $(MAN8DIR)
mkdir -p $(DESTDIR)$(SBINDIR)
$(INSTALL_PROGRAM) -s $(PROGRAMS) $(DESTDIR)$(SBINDIR)
mkdir -p $(DESTDIR)$(MAN8DIR)
$(INSTALL_MAN) $(MANPAGES) $(DESTDIR)$(MAN8DIR)
uninstall:
@for i in `echo $(PROGRAMS)` ; do \
rm -f $(SBINDIR)/$$i ; \
rm -f $(DESTDIR)$(SBINDIR)/$$i ; \
done
@for i in `echo $(MANPAGES)` ; do \
rm -f $(MAN8DIR)/$$i ; \
rm -f $(DESTDIR)$(MAN8DIR)/$$i ; \
done
clean:

View File

@ -1,5 +1,5 @@
#
# $Id: Makefile.in,v 1.15 1997/10/26 23:42:00 fritz Exp $
# $Id: Makefile.in,v 1.16 1998/09/26 18:31:03 akool Exp $
#----------------------------------------------------------------------------#
# Things you can change to personalize the Makefile for your own site. Some #
@ -163,35 +163,35 @@ programs-d: ignore
done
programs-i: ignore
@echo "Installing '$(sbindir)/vboxgetty'..."
@$(INSTALL_SBIN) $(TOPDIR)/src/vboxgetty $(sbindir)/vboxgetty
@echo "Installing '$(sbindir)/vboxd'..."
@$(INSTALL_SBIN) $(TOPDIR)/src/vboxd $(sbindir)/vboxd
@echo "Installing '$(bindir)/vboxcnvt'..."
@$(INSTALL_BIN) $(TOPDIR)/src/vboxconvert $(bindir)/vboxcnvt
@cd $(bindir); \
@echo "Installing '$(DESTDIR)$(sbindir)/vboxgetty'..."
@$(INSTALL_SBIN) $(TOPDIR)/src/vboxgetty $(DESTDIR)$(sbindir)/vboxgetty
@echo "Installing '$(DESTDIR)$(sbindir)/vboxd'..."
@$(INSTALL_SBIN) $(TOPDIR)/src/vboxd $(DESTDIR)$(sbindir)/vboxd
@echo "Installing '$(DESTDIR)$(bindir)/vboxcnvt'..."
@$(INSTALL_BIN) $(TOPDIR)/src/vboxconvert $(DESTDIR)$(bindir)/vboxcnvt
@cd $(DESTDIR)$(bindir); \
$(LN) -f vboxcnvt vboxtoau; \
$(LN) -f vboxcnvt autovbox; \
$(LN) -f vboxcnvt vboxmode
@echo "Installing '$(bindir)/vboxctrl'..."
@$(INSTALL_BIN) $(TOPDIR)/src/vboxctrl $(bindir)/vboxctrl
@echo "Installing '$(bindir)/vboxbeep'..."
@$(INSTALL_UBIN) $(TOPDIR)/src/vboxbeep $(bindir)/vboxbeep
@echo "Installing '$(bindir)/vbox'..."
@$(INSTALL_BIN) $(TOPDIR)/src/vbox $(bindir)/vbox
@set -e; if [ -f $(sysconfdir)/vboxgetty.conf ]; then \
echo "Installing '$(sysconfdir)/vboxgetty.conf.new'..."; \
$(INSTALL_SYSCONF) $(TOPDIR)/examples/vboxgetty.conf.example $(sysconfdir)/vboxgetty.conf.new; \
@echo "Installing '$(DESTDIR)$(bindir)/vboxctrl'..."
@$(INSTALL_BIN) $(TOPDIR)/src/vboxctrl $(DESTDIR)$(bindir)/vboxctrl
@echo "Installing '$(DESTDIR)$(bindir)/vboxbeep'..."
@$(INSTALL_UBIN) $(TOPDIR)/src/vboxbeep $(DESTDIR)$(bindir)/vboxbeep
@echo "Installing '$(DESTDIR)$(bindir)/vbox'..."
@$(INSTALL_BIN) $(TOPDIR)/src/vbox $(DESTDIR)$(bindir)/vbox
@set -e; if [ -n "$(DESTDIR)" -o -f $(DESTDIR)$(sysconfdir)/vboxgetty.conf ]; then \
echo "Installing '$(DESTDIR)$(sysconfdir)/vboxgetty.conf.new'..."; \
$(INSTALL_SYSCONF) $(TOPDIR)/examples/vboxgetty.conf.example $(DESTDIR)$(sysconfdir)/vboxgetty.conf.new; \
else \
echo "Installing '$(sysconfdir)/vboxgetty.conf'..."; \
$(INSTALL_SYSCONF) $(TOPDIR)/examples/vboxgetty.conf.example $(sysconfdir)/vboxgetty.conf; \
echo "Installing '$(DESTDIR)$(sysconfdir)/vboxgetty.conf'..."; \
$(INSTALL_SYSCONF) $(TOPDIR)/examples/vboxgetty.conf.example $(DESTDIR)$(sysconfdir)/vboxgetty.conf; \
fi
@set -e; if [ -f $(sysconfdir)/vboxd.conf ]; then \
echo "Installing '$(sysconfdir)/vboxd.conf.new'..."; \
$(INSTALL_SYSCONF) $(TOPDIR)/examples/vboxd.conf.example $(sysconfdir)/vboxd.conf.new; \
@set -e; if [ -n "$(DESTDIR)" -o -f $(DESTDIR)$(sysconfdir)/vboxd.conf ]; then \
echo "Installing '$(DESTDIR)$(sysconfdir)/vboxd.conf.new'..."; \
$(INSTALL_SYSCONF) $(TOPDIR)/examples/vboxd.conf.example $(DESTDIR)$(sysconfdir)/vboxd.conf.new; \
else \
echo "Installing '$(sysconfdir)/vboxd.conf'..."; \
$(INSTALL_SYSCONF) $(TOPDIR)/examples/vboxd.conf.example $(sysconfdir)/vboxd.conf; \
echo "Installing '$(DESTDIR)$(sysconfdir)/vboxd.conf'..."; \
$(INSTALL_SYSCONF) $(TOPDIR)/examples/vboxd.conf.example $(DESTDIR)$(sysconfdir)/vboxd.conf; \
fi
#----------------------------------------------------------------------------#
@ -213,7 +213,7 @@ DIRECTORIES_I = $(prefix) \
directories-i: ignore
@set -e; for i in `echo $(DIRECTORIES_I)`; do \
if [ ! -d $$i ]; then \
$(INSTALL_DIRS) $$i; \
$(INSTALL_DIRS) $(DESTDIR)$$i; \
fi; \
done
@ -270,10 +270,10 @@ scripts-d: ignore
done
scripts-i: ignore
@echo "Installing '$(bindir)/vboxmail'..."
@$(INSTALL_SHBIN) $(TOPDIR)/utils/vboxmail $(bindir)/vboxmail
@echo "Installing '$(bindir)/vboxplay'..."
@$(INSTALL_SHBIN) $(TOPDIR)/utils/vboxplay $(bindir)/vboxplay
@echo "Installing '$(DESTDIR)$(bindir)/vboxmail'..."
@$(INSTALL_SHBIN) $(TOPDIR)/utils/vboxmail $(DESTDIR)$(bindir)/vboxmail
@echo "Installing '$(DESTDIR)$(bindir)/vboxplay'..."
@$(INSTALL_SHBIN) $(TOPDIR)/utils/vboxplay $(DESTDIR)$(bindir)/vboxplay
#----------------------------------------------------------------------------#
# #

View File

@ -7,11 +7,11 @@
EDEF=$(CFLAGS)
ifeq (../.config,$(wildcard ../.config))
include ../.config
MAN1DIROPT = MANDIR=$(CONFIG_MANDIR)/man1
MAN3DIROPT = LIBMANDIR=$(CONFIG_MANDIR)/man3
MAN5DIROPT = FILEMANDIR=$(CONFIG_MANDIR)/man5
MAN1DIROPT = MANDIR=$(DESTDIR)$(CONFIG_MANDIR)/man1
MAN3DIROPT = LIBMANDIR=$(DESTDIR)$(CONFIG_MANDIR)/man3
MAN5DIROPT = FILEMANDIR=$(DESTDIR)$(CONFIG_MANDIR)/man5
MANDIROPTS = $(MAN1DIROPT) $(MAN3DIROPT) $(MAN5DIROPT)
BINDIROPT = BINDIR=$(CONFIG_BINDIR)
BINDIROPT = BINDIR=$(DESTDIR)$(CONFIG_BINDIR)
endif
all: xisdnload
@ -36,5 +36,5 @@ install: xisdnload install-man
$(MAKE) -f Makefile $(BINDIROPT) install
uninstall:
rm -f $(CONFIG_BINDIR)/xisdnload
find $(CONFIG_MANDIR) -name "xisdnload.*" -exec rm -f {} \;
rm -f $(DESTDIR)$(CONFIG_BINDIR)/xisdnload
find $(DESTDIR)$(CONFIG_MANDIR) -name "xisdnload.*" -exec rm -f {} \;

View File

@ -18,11 +18,11 @@ ifeq (../.config,$(wildcard ../.config))
ifneq ($(CONFIG_XMONISDN_DOWNCMD),"")
I4LU_DEFINES += -DNETDOWN_COMMAND=\\\"$(shell echo $(CONFIG_XMONISDN_DOWNCMD))\\\"
endif
MAN1DIROPT = MANDIR=$(CONFIG_MANDIR)/man1
MAN3DIROPT = LIBMANDIR=$(CONFIG_MANDIR)/man3
MAN5DIROPT = FILEMANDIR=$(CONFIG_MANDIR)/man5
MAN1DIROPT = MANDIR=$(DESTDIR)$(CONFIG_MANDIR)/man1
MAN3DIROPT = LIBMANDIR=$(DESTDIR)$(CONFIG_MANDIR)/man3
MAN5DIROPT = FILEMANDIR=$(DESTDIR)$(CONFIG_MANDIR)/man5
MANDIROPTS = $(MAN1DIROPT) $(MAN3DIROPT) $(MAN5DIROPT)
BINDIROPT = BINDIR=$(CONFIG_BINDIR)
BINDIROPT = BINDIR=$(DESTDIR)$(CONFIG_BINDIR)
endif
all: xmonisdn
@ -57,5 +57,5 @@ install: xmonisdn install-man
$(MAKE) -f Makefile $(BINDIROPT) install.all
uninstall:
rm -f $(CONFIG_BINDIR)/xmonisdn
find $(CONFIG_MANDIR) -name "xmonisdn.*" -exec rm -f {} \;
rm -f $(DESTDIR)$(CONFIG_BINDIR)/xmonisdn
find $(DESTDIR)$(CONFIG_MANDIR) -name "xmonisdn.*" -exec rm -f {} \;