From 284eac759552d65083fce3e6debc0a5c5e787af0 Mon Sep 17 00:00:00 2001 From: akool Date: Sun, 14 Mar 1999 12:15:56 +0000 Subject: [PATCH] - isdnlog Version 3.04 - general cleanup - new layout for "rate-xx.dat" and "holiday-xx.dat" files from Michael Reinelt unused by now - it's a work-in-progress ! - bugfix for Wolfgang Siefert The Agfeo AS 40 (Software release 2.1b) uses AOC_AMOUNT, not AOC_UNITS - bugfix for Ralf G. R. Bergs - 0800/xxx numbers are free of charge ;-) - tarif.dat V 1.08 - new mobil-rates DTAG --- isdnlog/Makefile.in | 16 +- isdnlog/holiday-at.dat | 23 + isdnlog/holiday-ch.dat | 21 + isdnlog/holiday-de.dat | 23 + isdnlog/holiday-nl.dat | 19 + isdnlog/isdnlog/processor.c | 79 ++- isdnlog/rate-at.conf | 7 + isdnlog/rate-at.dat | 1071 +++++++++++++++++++++++++++++++++++ isdnlog/tarif.dat | 15 +- isdnlog/tools/holiday.c | 304 ++++++++++ isdnlog/tools/holiday.h | 53 ++ isdnlog/tools/rate-pta.c | 104 ++++ isdnlog/tools/rate.c | 508 +++++++++++++++++ isdnlog/tools/rate.h | 44 ++ isdnlog/tools/tools.c | 22 +- 15 files changed, 2255 insertions(+), 54 deletions(-) create mode 100644 isdnlog/holiday-at.dat create mode 100644 isdnlog/holiday-ch.dat create mode 100644 isdnlog/holiday-de.dat create mode 100644 isdnlog/holiday-nl.dat create mode 100644 isdnlog/rate-at.conf create mode 100644 isdnlog/rate-at.dat create mode 100644 isdnlog/tools/holiday.c create mode 100644 isdnlog/tools/holiday.h create mode 100644 isdnlog/tools/rate-pta.c create mode 100644 isdnlog/tools/rate.c create mode 100644 isdnlog/tools/rate.h diff --git a/isdnlog/Makefile.in b/isdnlog/Makefile.in index 022e7f66..61e96178 100644 --- a/isdnlog/Makefile.in +++ b/isdnlog/Makefile.in @@ -1,4 +1,4 @@ -## $Id: Makefile.in,v 1.56 1999/03/11 09:21:58 paul Exp $ +## $Id: Makefile.in,v 1.57 1999/03/14 12:15:56 akool Exp $ ## ## ISDN accounting for isdn4linux. ## @@ -19,6 +19,18 @@ ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ## ## $Log: Makefile.in,v $ +## Revision 1.57 1999/03/14 12:15:56 akool +## - isdnlog Version 3.04 +## - general cleanup +## - new layout for "rate-xx.dat" and "holiday-xx.dat" files from +## Michael Reinelt +## unused by now - it's a work-in-progress ! +## - bugfix for Wolfgang Siefert +## The Agfeo AS 40 (Software release 2.1b) uses AOC_AMOUNT, not AOC_UNITS +## - bugfix for Ralf G. R. Bergs - 0800/xxx numbers +## are free of charge ;-) +## - tarif.dat V 1.08 - new mobil-rates DTAG +## ## Revision 1.56 1999/03/11 09:21:58 paul ## fixed problems with yesterday's commit ## @@ -436,7 +448,7 @@ SERVICEFILE = /etc/services # DON'T EDIT BELOW THIS LINE ###################################################################### -VERSION = 3.03 +VERSION = 3.04 MANPAGES = isdnlog/callerid.conf.5 isdnlog/isdn.conf.5 isdnlog/isdnformat.5 isdnlog/isdnlog.5 isdnlog/isdnlog.8 isdnlog/isdnlog.users.5 isdnrep/isdnrep.1 isdnconf/isdnconf.1 diff --git a/isdnlog/holiday-at.dat b/isdnlog/holiday-at.dat new file mode 100644 index 00000000..3ba2ecc7 --- /dev/null +++ b/isdnlog/holiday-at.dat @@ -0,0 +1,23 @@ +W:1 Montag +W:2 Dienstag +W:3 Mittwoch +W:4 Donnerstag +W:5 Freitag +W:6 Samstag +W:7 Sonntag + +D:1.1 Neujahr +D:6.1 Hl. Drei Könige +D:easter Ostersonntag +D:easter+1 Ostermontag +D:1.5 1. Mai +D:easter+39 Christi Himmelfahrt +D:easter+49 Pfingstsonntag +D:easter+50 Pfingstmontag +#D:easter+60 Fronleichnam +#D:15.8 Maria Himmelfahrt +D:26.10 Nationalfeiertag +D:1.11 Allerheiligen +D:8.12 Maria Empfängnis +D:25.12 Christtag +D:26.12 2. Weihnachtstag diff --git a/isdnlog/holiday-ch.dat b/isdnlog/holiday-ch.dat new file mode 100644 index 00000000..a94e9030 --- /dev/null +++ b/isdnlog/holiday-ch.dat @@ -0,0 +1,21 @@ +W:1 Montag +W:2 Dienstag +W:3 Mittwoch +W:4 Donnerstag +W:5 Freitag +W:6 Samstag +W:7 Sonntag + +D:1.1 Neujahr +D:easter Ostersonntag +D:easter+1 Ostermontag +D:1.5 Maifeiertag +D:easter+39 Christi Himmelfahrt +D:easter+49 Pfingstsonntag +D:easter+50 Pfingstmontag +#D:easter+60 Fronleichnam +D:1.8 Bundesfeiertag +#D:15.8 Maria Himmelfahrt +#D:1.11 Allerheiligen +D:25.12 1. Weihnachtsfeiertag +D:26.12 2. Weihnachtsfeiertag diff --git a/isdnlog/holiday-de.dat b/isdnlog/holiday-de.dat new file mode 100644 index 00000000..9f7063a4 --- /dev/null +++ b/isdnlog/holiday-de.dat @@ -0,0 +1,23 @@ +W:1 Montag +W:2 Dienstag +W:3 Mittwoch +W:4 Donnerstag +W:5 Freitag +W:6 Samstag +W:7 Sonntag + +D:1.1 Neujahr +#D:6.1 Erscheinungsfest +D:1.5 Maifeiertag +D:easter-2 Karfreitag +D:easter Ostersonntag +D:easter+1 Ostermontag +D:easter+39 Christi Himmelfahrt +D:easter+49 Pfingstsonntag +D:easter+50 Pfingstmontag +#D:easter+60 Fronleichnam +#D:15.8 Maria Himmelfahrt +D:3.10 Tag der deutschen Einheit +#D:1.11 Allerheiligen +D:25.12 1. Weihnachtsfeiertag +D:26.12 2. Weihnachtsfeiertag diff --git a/isdnlog/holiday-nl.dat b/isdnlog/holiday-nl.dat new file mode 100644 index 00000000..619edeb3 --- /dev/null +++ b/isdnlog/holiday-nl.dat @@ -0,0 +1,19 @@ +W:1 Mondag +W:2 Thuesdag +W:3 Wednesdag +W:4 Thursdag +W:5 Fridag +W:6 Saturdag +W:7 Sundag + +D:1.1 nieuwjaarsdag +D:easter-2 Goede Vrijdag +D:easter Pasen +D:easter+1 tweede Paasdag +D:30.4 Koninginnedag +D:5.5 Bevrijdingsdag +D:easter+39 Hemelvaart +D:easter+49 Pinksteren +D:easter+50 tweede Pinksterdag +D:25.12 Kerstmis +D:26.12 tweede Kerstdag diff --git a/isdnlog/isdnlog/processor.c b/isdnlog/isdnlog/processor.c index f26ea1a1..5f02d439 100644 --- a/isdnlog/isdnlog/processor.c +++ b/isdnlog/isdnlog/processor.c @@ -1,4 +1,4 @@ -/* $Id: processor.c,v 1.39 1999/03/07 18:18:55 akool Exp $ +/* $Id: processor.c,v 1.40 1999/03/14 12:16:08 akool Exp $ * * ISDN accounting for isdn4linux. (log-module) * @@ -19,6 +19,18 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Log: processor.c,v $ + * Revision 1.40 1999/03/14 12:16:08 akool + * - isdnlog Version 3.04 + * - general cleanup + * - new layout for "rate-xx.dat" and "holiday-xx.dat" files from + * Michael Reinelt + * unused by now - it's a work-in-progress ! + * - bugfix for Wolfgang Siefert + * The Agfeo AS 40 (Software release 2.1b) uses AOC_AMOUNT, not AOC_UNITS + * - bugfix for Ralf G. R. Bergs - 0800/xxx numbers + * are free of charge ;-) + * - tarif.dat V 1.08 - new mobil-rates DTAG + * * Revision 1.39 1999/03/07 18:18:55 akool * - new 01805 tarif of DTAG * - new March 1999 tarife @@ -1880,35 +1892,13 @@ static void decode(int chan, register char *p, int type, int version, int tei) Q931dump(TYPE_STRING, c, s, version); - ps = s + sprintf(s, "Location: "); - - switch (c & 0x0f) { - case 0x00 : sprintf(ps, "Nutzer"); break; - case 0x01 : sprintf(ps, "Privates Netz des Nutzers"); break; - case 0x02 : sprintf(ps, "Oeffentliches Netz des Nutzers"); break; - case 0x03 : sprintf(ps, "Transitnetz"); break; - case 0x04 : sprintf(ps, "Oeffentliches Netz beim fernen Nutzer"); break; - case 0x05 : sprintf(ps, "Privates Netz beim fernen Nutzer"); break; - case 0x07 : sprintf(ps, "Internationales Netz"); break; - case 0x0a : sprintf(ps, "Netzwerk jenseits des interworking point"); break; - default : sprintf(ps, "UNKNOWN #%d", c & 0x0f); break; - } /* switch */ + ps = s + sprintf(s, "Location: %s", location(c & 0x0f)); Q931dump(TYPE_STRING, -1, s, version); } /* if */ #endif - switch ((loc = (c & 0x0f))) { - case 0x00 : py = "User"; break; - case 0x01 : py = "Private network serving local user"; break; - case 0x02 : py = "Public network serving local user"; break; - case 0x03 : py = "Transit network"; break; - case 0x04 : py = "Public network serving remote user"; break; - case 0x05 : py = "Private network serving remote user"; break; - case 0x07 : py = "International network"; break; - case 0x0a : py = "Network beyond inter-working point"; break; - default : py = ""; break; - } /* switch */ + py = location(loc = (c & 0x0f)); c = strtol(p + 6, NIL, 16); cause = c & 0x7f; @@ -2057,11 +2047,17 @@ static void decode(int chan, register char *p, int type, int version, int tei) aoc_debug(-2, s); } /* if */ - if (n < 0) + if (n < 0) { + if (call[chan].aoce == -1) /* Firsttime */ + call[chan].aoce = 1; + else call[chan].aoce++; + } /* if */ call[chan].pay = pay; - call[chan].aoce = n; /* AK:08-May-98 */ + + if (currency_mode == AOC_UNITS) + call[chan].aoce = n; if (n < 0) sprintf(s, "aOC-D=%d", -n); @@ -2399,7 +2395,13 @@ static void decode(int chan, register char *p, int type, int version, int tei) else strcpy(call[chan].onum[CALLED], s); - buildnumber(s, oc3, oc3a, call[chan].num[CALLED], version, &call[chan].provider, &call[chan].sondernummer[CALLED], &call[chan].intern[CALLED], 0, 0); + /* bei "national" numbers evtl. fuehrende "0" davor */ + if (((oc3 & 0x70) == 0x20) && (*s != '0')) { + sprintf(s1, "0%s", s); + strcpy(s, s1); + } /* if */ + + buildnumber(s, oc3, oc3a, call[chan].num[CALLED], version, &call[chan].provider, &call[chan].sondernummer[CALLED], &call[chan].intern[CALLED], 0, CALLED); if (!dual) strcpy(call[chan].vnum[CALLED], vnum(chan, CALLED)); @@ -2999,16 +3001,7 @@ escape: for (c = 0; c <= sxp; c++) #ifdef Q931 if (!q931dmp) #endif - px += sprintf(px, "PROGRESS: "); - - switch (c) { - case 0x80 : px += sprintf(px, "Location: User"); break; - case 0x81 : px += sprintf(px, "Location: Local:private net"); break; - case 0x82 : px += sprintf(px, "Location: Local:public net"); break; - case 0x84 : px += sprintf(px, "Location: Remote:public net"); break; - case 0x85 : px += sprintf(px, "Location: Remote:private net"); break; - case 0x8a : px += sprintf(px, "Location: Interworking"); break; - } /* switch */ + px += sprintf(px, "PROGRESS: %s", location(c & 0x80)); if (l > 1) { px = sx[++sxp]; @@ -4216,7 +4209,7 @@ static void processctrl(int card, char *s) break; case 0xaa : version = VERSION_UNKNOWN; /* Euracom Frames */ - break; + return; default : version = VERSION_UNKNOWN; sprintf(sx, "Unexpected discriminator 0x%02x -- ignored!", i); @@ -4663,10 +4656,7 @@ doppelt:break; ((call[chan].pay == -1.0) ? "UNKNOWN" : double2str(call[chan].pay, 6, 2, DEB)), double2clock((double)(call[chan].disconnect - call[chan].connect)), s2); else - sprintf(sx, "HANGUP (%s%s) %s (%s)", - double2clock((double)(call[chan].disconnect - call[chan].connect)), s2, - qmsg(TYPE_CAUSE, version, call[chan].cause), - location(call[chan].loc)); + sprintf(sx, "HANGUP (%s%s)", double2clock((double)(call[chan].disconnect - call[chan].connect)), s2); } /* else */ if (!memcmp(sx, "HANGUP ( )", 17)) @@ -4675,7 +4665,8 @@ doppelt:break; if ((call[chan].cause != 0x10) && (call[chan].cause != 0x1f)) { /* "Normal call clearing", "Normal, unspecified" */ strcat(sx, " "); strcat(sx, qmsg(TYPE_CAUSE, version, call[chan].cause)); - if ((p = location(call[chan].loc))) { + + if (((p = location(call[chan].loc) != ""))) { strcat(sx, " ("); strcat(sx, location(call[chan].loc)); strcat(sx, ")"); diff --git a/isdnlog/rate-at.conf b/isdnlog/rate-at.conf new file mode 100644 index 00000000..0def51e6 --- /dev/null +++ b/isdnlog/rate-at.conf @@ -0,0 +1,7 @@ +# Tarifauswahl für PTA (Post & Telekom Austria) +# 1: Minimumtarif (ATS 1.116 je Impuls) +# 2: Standardtarif (ATS 1.056 je Impuls) +# 3: Geschäftstarif 1 (ATS 0.996 je Impuls) +# 4: Geschäftstarif 2 (ATS 0.936 je Impuls) +# 5: Geschäftstarif 3 (ATS 0.816 je Impuls) +P:00=2 diff --git a/isdnlog/rate-at.dat b/isdnlog/rate-at.dat new file mode 100644 index 00000000..733183fa --- /dev/null +++ b/isdnlog/rate-at.dat @@ -0,0 +1,1071 @@ +# created by rate-pta.c + +V:1.0-Austria [11-Mar-1999] + +P:00,1 PTA +C:Name: Post & Telekom Austria +C:Tarif: Minimumtarif (ATS 1.116 / Impuls) + +Z:1 Regionalzone +T:1-5/06-08,18-20=1.116/109.09 Sparzeit +T:1-5/08-12=1.116/57.6 Tageszeit 1 +T:1-4/13-16=1.116/57.6 Tageszeit 1 +T:1-4/12-13,16-18=1.116/72 Tageszeit 2 +T:5/12-18=1.116/72 Tageszeit 2 +T:E,H/06-20=1.116/109.09 Sparzeit +T:*/20-06=1.116/160 Supersparzeit + +Z:2 Fernzone 1 +T:1-5/06-08,18-20=1.116/50 Sparzeit +T:1-5/08-12=1.116/20 Tageszeit 1 +T:1-4/13-16=1.116/20 Tageszeit 1 +T:1-4/12-13,16-18=1.116/25 Tageszeit 2 +T:5/12-18=1.116/25 Tageszeit 2 +T:E,H/06-20=1.116/50 Sparzeit +T:*/20-06=1.116/72 Supersparzeit + +Z:3 Fernzone 2 +T:1-5/06-08,18-20=1.116/40 Sparzeit +T:1-5/08-12=1.116/15 Tageszeit 1 +T:1-4/13-16=1.116/15 Tageszeit 1 +T:1-4/12-13,16-18=1.116/19.2 Tageszeit 2 +T:5/12-18=1.116/19.2 Tageszeit 2 +T:E,H/06-20=1.116/40 Sparzeit +T:*/20-06=1.116/50 Supersparzeit + +Z:4 Online-Tarif +T:1-5/06-08,18-20=1.116/360 Sparzeit +T:1-5/08-12=1.116/120 Tageszeit 1 +T:1-4/13-16=1.116/120 Tageszeit 1 +T:1-4/12-13,16-18=1.116/120 Tageszeit 2 +T:5/12-18=1.116/120 Tageszeit 2 +T:E,H/06-20=1.116/360 Sparzeit +T:*/20-06=1.116/360 Supersparzeit + +Z:5 Mobilfunk +T:1-5/06-08,18-20=1.116/19.2 Sparzeit +T:1-5/08-12=1.116/12 Tageszeit 1 +T:1-4/13-16=1.116/12 Tageszeit 1 +T:1-4/12-13,16-18=1.116/12 Tageszeit 2 +T:5/12-18=1.116/12 Tageszeit 2 +T:E,H/06-20=1.116/19.2 Sparzeit +T:*/20-06=1.116/19.2 Supersparzeit + +Z:6 Ausland Zone 1 +T:1-5/06-08,18-20=1.116/14.4 Sparzeit +T:1-5/08-12=1.116/12 Tageszeit 1 +T:1-4/13-16=1.116/12 Tageszeit 1 +T:1-4/12-13,16-18=1.116/12 Tageszeit 2 +T:5/12-18=1.116/12 Tageszeit 2 +T:E,H/06-20=1.116/14.4 Sparzeit +T:*/20-06=1.116/14.4 Supersparzeit + +Z:7 Ausland Zone 2 +T:1-5/06-08,18-20=1.116/12 Sparzeit +T:1-5/08-12=1.116/9 Tageszeit 1 +T:1-4/13-16=1.116/9 Tageszeit 1 +T:1-4/12-13,16-18=1.116/9 Tageszeit 2 +T:5/12-18=1.116/9 Tageszeit 2 +T:E,H/06-20=1.116/12 Sparzeit +T:*/20-06=1.116/12 Supersparzeit + +Z:8 Ausland Zone 3 +T:1-5/06-08,18-20=1.116/8 Sparzeit +T:1-5/08-12=1.116/6.5455 Tageszeit 1 +T:1-4/13-16=1.116/6.5455 Tageszeit 1 +T:1-4/12-13,16-18=1.116/6.5455 Tageszeit 2 +T:5/12-18=1.116/6.5455 Tageszeit 2 +T:E,H/06-20=1.116/8 Sparzeit +T:*/20-06=1.116/8 Supersparzeit + +Z:9 Ausland Zone 4 +T:1-5/06-08,18-20=1.116/6 Sparzeit +T:1-5/08-12=1.116/5.1429 Tageszeit 1 +T:1-4/13-16=1.116/5.1429 Tageszeit 1 +T:1-4/12-13,16-18=1.116/5.1429 Tageszeit 2 +T:5/12-18=1.116/5.1429 Tageszeit 2 +T:E,H/06-20=1.116/6 Sparzeit +T:*/20-06=1.116/6 Supersparzeit + +Z:10 Ausland Zone 5 +T:1-5/06-08,18-20=1.116/4.8 Sparzeit +T:1-5/08-12=1.116/4.2353 Tageszeit 1 +T:1-4/13-16=1.116/4.2353 Tageszeit 1 +T:1-4/12-13,16-18=1.116/4.2353 Tageszeit 2 +T:5/12-18=1.116/4.2353 Tageszeit 2 +T:E,H/06-20=1.116/4.8 Sparzeit +T:*/20-06=1.116/4.8 Supersparzeit + +Z:11 Ausland Zone 6 +T:1-5/06-08,18-20=1.116/4.2353 Sparzeit +T:1-5/08-12=1.116/3.6 Tageszeit 1 +T:1-4/13-16=1.116/3.6 Tageszeit 1 +T:1-4/12-13,16-18=1.116/3.6 Tageszeit 2 +T:5/12-18=1.116/3.6 Tageszeit 2 +T:E,H/06-20=1.116/4.2353 Sparzeit +T:*/20-06=1.116/4.2353 Supersparzeit + +Z:12 Ausland Zone 7 +T:1-5/06-08,18-20=1.116/3.6 Sparzeit +T:1-5/08-12=1.116/3.1304 Tageszeit 1 +T:1-4/13-16=1.116/3.1304 Tageszeit 1 +T:1-4/12-13,16-18=1.116/3.1304 Tageszeit 2 +T:5/12-18=1.116/3.1304 Tageszeit 2 +T:E,H/06-20=1.116/3.6 Sparzeit +T:*/20-06=1.116/3.6 Supersparzeit + +Z:13 Ausland Zone 8 +T:1-5/06-08,18-20=1.116/3 Sparzeit +T:1-5/08-12=1.116/2.7692 Tageszeit 1 +T:1-4/13-16=1.116/2.7692 Tageszeit 1 +T:1-4/12-13,16-18=1.116/2.7692 Tageszeit 2 +T:5/12-18=1.116/2.7692 Tageszeit 2 +T:E,H/06-20=1.116/3 Sparzeit +T:*/20-06=1.116/3 Supersparzeit + +Z:14 Ausland Zone 9 +T:1-5/06-08,18-20=1.116/2.5714 Sparzeit +T:1-5/08-12=1.116/2.4 Tageszeit 1 +T:1-4/13-16=1.116/2.4 Tageszeit 1 +T:1-4/12-13,16-18=1.116/2.4 Tageszeit 2 +T:5/12-18=1.116/2.4 Tageszeit 2 +T:E,H/06-20=1.116/2.5714 Sparzeit +T:*/20-06=1.116/2.5714 Supersparzeit + +Z:15 Ausland Zone 10 +T:1-5/06-08,18-20=1.116/2.25 Sparzeit +T:1-5/08-12=1.116/2.1176 Tageszeit 1 +T:1-4/13-16=1.116/2.1176 Tageszeit 1 +T:1-4/12-13,16-18=1.116/2.1176 Tageszeit 2 +T:5/12-18=1.116/2.1176 Tageszeit 2 +T:E,H/06-20=1.116/2.25 Sparzeit +T:*/20-06=1.116/2.25 Supersparzeit + +Z:16 Ausland Zone 11 +T:1-5/06-08,18-20=1.116/2 Sparzeit +T:1-5/08-12=1.116/1.8462 Tageszeit 1 +T:1-4/13-16=1.116/1.8462 Tageszeit 1 +T:1-4/12-13,16-18=1.116/1.8462 Tageszeit 2 +T:5/12-18=1.116/1.8462 Tageszeit 2 +T:E,H/06-20=1.116/2 Sparzeit +T:*/20-06=1.116/2 Supersparzeit + +Z:17 Ausland Zone 12 +T:1-5/06-08,18-20=1.116/1.8 Sparzeit +T:1-5/08-12=1.116/1.6364 Tageszeit 1 +T:1-4/13-16=1.116/1.6364 Tageszeit 1 +T:1-4/12-13,16-18=1.116/1.6364 Tageszeit 2 +T:5/12-18=1.116/1.6364 Tageszeit 2 +T:E,H/06-20=1.116/1.8 Sparzeit +T:*/20-06=1.116/1.8 Supersparzeit + +Z:18 Ausland Zone 13 +T:1-5/06-08,18-20=1.116/1.3585 Sparzeit +T:1-5/08-12=1.116/1.2203 Tageszeit 1 +T:1-4/13-16=1.116/1.2203 Tageszeit 1 +T:1-4/12-13,16-18=1.116/1.2203 Tageszeit 2 +T:5/12-18=1.116/1.2203 Tageszeit 2 +T:E,H/06-20=1.116/1.3585 Sparzeit +T:*/20-06=1.116/1.3585 Supersparzeit + +Z:19 Ausland Zone 14 +T:1-5/06-08,18-20=1.116/9 Sparzeit +T:1-5/08-12=1.116/8 Tageszeit 1 +T:1-4/13-16=1.116/8 Tageszeit 1 +T:1-4/12-13,16-18=1.116/8 Tageszeit 2 +T:5/12-18=1.116/8 Tageszeit 2 +T:E,H/06-20=1.116/9 Sparzeit +T:*/20-06=1.116/9 Supersparzeit + +Z:20 Ausland Zone 15 +T:1-5/06-08,18-20=1.116/7.2 Sparzeit +T:1-5/08-12=1.116/9 Tageszeit 1 +T:1-4/13-16=1.116/9 Tageszeit 1 +T:1-4/12-13,16-18=1.116/9 Tageszeit 2 +T:5/12-18=1.116/9 Tageszeit 2 +T:E,H/06-20=1.116/7.2 Sparzeit +T:*/20-06=1.116/7.2 Supersparzeit + +Z:21 Handvermittelter Verkehr + +Z:22 Grenznahverkehr +T:1-5/06-08,18-20=1.116/24 Sparzeit +T:1-5/08-12=1.116/18 Tageszeit 1 +T:1-4/13-16=1.116/18 Tageszeit 1 +T:1-4/12-13,16-18=1.116/18 Tageszeit 2 +T:5/12-18=1.116/18 Tageszeit 2 +T:E,H/06-20=1.116/24 Sparzeit +T:*/20-06=1.116/24 Supersparzeit + +Z:23 Teleinfo 04570 +T:1-5/06-08,18-20=1.116/10.795 Sparzeit +T:1-5/08-12=1.116/10.795 Tageszeit 1 +T:1-4/13-16=1.116/10.795 Tageszeit 1 +T:1-4/12-13,16-18=1.116/10.795 Tageszeit 2 +T:5/12-18=1.116/10.795 Tageszeit 2 +T:E,H/06-20=1.116/10.795 Sparzeit +T:*/20-06=1.116/10.795 Supersparzeit + +Z:24 Teleinfo 04500 +T:1-5/06-08,18-20=1.116/7.2 Sparzeit +T:1-5/08-12=1.116/7.2 Tageszeit 1 +T:1-4/13-16=1.116/7.2 Tageszeit 1 +T:1-4/12-13,16-18=1.116/7.2 Tageszeit 2 +T:5/12-18=1.116/7.2 Tageszeit 2 +T:E,H/06-20=1.116/7.2 Sparzeit +T:*/20-06=1.116/7.2 Supersparzeit + +Z:25 Telebusiness 04590 +T:1-5/06-08,18-20=1.116/4.5 Sparzeit +T:1-5/08-12=1.116/4.5 Tageszeit 1 +T:1-4/13-16=1.116/4.5 Tageszeit 1 +T:1-4/12-13,16-18=1.116/4.5 Tageszeit 2 +T:5/12-18=1.116/4.5 Tageszeit 2 +T:E,H/06-20=1.116/4.5 Sparzeit +T:*/20-06=1.116/4.5 Supersparzeit + +Z:26 Teleinfo 04580 +T:1-5/06-08,18-20=1.116/2.6997 Sparzeit +T:1-5/08-12=1.116/2.6997 Tageszeit 1 +T:1-4/13-16=1.116/2.6997 Tageszeit 1 +T:1-4/12-13,16-18=1.116/2.6997 Tageszeit 2 +T:5/12-18=1.116/2.6997 Tageszeit 2 +T:E,H/06-20=1.116/2.6997 Sparzeit +T:*/20-06=1.116/2.6997 Supersparzeit + +Z:27 Businessline 0711x +T:1-5/06-08,18-20=1.116/109.09 Sparzeit +T:1-5/08-12=1.116/57.6 Tageszeit 1 +T:1-4/13-16=1.116/57.6 Tageszeit 1 +T:1-4/12-13,16-18=1.116/72 Tageszeit 2 +T:5/12-18=1.116/72 Tageszeit 2 +T:E,H/06-20=1.116/109.09 Sparzeit +T:*/20-06=1.116/160 Supersparzeit + +Z:28 Businessline 0713x +T:1-5/06-08,18-20=1.116/32 Sparzeit +T:1-5/08-12=1.116/32 Tageszeit 1 +T:1-4/13-16=1.116/32 Tageszeit 1 +T:1-4/12-13,16-18=1.116/32 Tageszeit 2 +T:5/12-18=1.116/32 Tageszeit 2 +T:E,H/06-20=1.116/32 Sparzeit +T:*/20-06=1.116/32 Supersparzeit + +Z:29 Businessline 0714x +T:1-5/06-08,18-20=1.116/15 Sparzeit +T:1-5/08-12=1.116/15 Tageszeit 1 +T:1-4/13-16=1.116/15 Tageszeit 1 +T:1-4/12-13,16-18=1.116/15 Tageszeit 2 +T:5/12-18=1.116/15 Tageszeit 2 +T:E,H/06-20=1.116/15 Sparzeit +T:*/20-06=1.116/15 Supersparzeit + +Z:30 Votingline 0717x +T:1-5/06-08,18-20=1.116/15 Sparzeit +T:1-5/08-12=1.116/15 Tageszeit 1 +T:1-4/13-16=1.116/15 Tageszeit 1 +T:1-4/12-13,16-18=1.116/15 Tageszeit 2 +T:5/12-18=1.116/15 Tageszeit 2 +T:E,H/06-20=1.116/15 Sparzeit +T:*/20-06=1.116/15 Supersparzeit + +P:00,2 PTA +C:Name: Post & Telekom Austria +C:Tarif: Standartarif (ATS 1.056 / Impuls) + +Z:1 Regionalzone +T:1-5/06-08,18-20=1.056/109.09 Sparzeit +T:1-5/08-12=1.056/57.6 Tageszeit 1 +T:1-4/13-16=1.056/57.6 Tageszeit 1 +T:1-4/12-13,16-18=1.056/72 Tageszeit 2 +T:5/12-18=1.056/72 Tageszeit 2 +T:E,H/06-20=1.056/109.09 Sparzeit +T:*/20-06=1.056/160 Supersparzeit + +Z:2 Fernzone 1 +T:1-5/06-08,18-20=1.056/50 Sparzeit +T:1-5/08-12=1.056/20 Tageszeit 1 +T:1-4/13-16=1.056/20 Tageszeit 1 +T:1-4/12-13,16-18=1.056/25 Tageszeit 2 +T:5/12-18=1.056/25 Tageszeit 2 +T:E,H/06-20=1.056/50 Sparzeit +T:*/20-06=1.056/72 Supersparzeit + +Z:3 Fernzone 2 +T:1-5/06-08,18-20=1.056/40 Sparzeit +T:1-5/08-12=1.056/15 Tageszeit 1 +T:1-4/13-16=1.056/15 Tageszeit 1 +T:1-4/12-13,16-18=1.056/19.2 Tageszeit 2 +T:5/12-18=1.056/19.2 Tageszeit 2 +T:E,H/06-20=1.056/40 Sparzeit +T:*/20-06=1.056/50 Supersparzeit + +Z:4 Online-Tarif +T:1-5/06-08,18-20=1.056/360 Sparzeit +T:1-5/08-12=1.056/120 Tageszeit 1 +T:1-4/13-16=1.056/120 Tageszeit 1 +T:1-4/12-13,16-18=1.056/120 Tageszeit 2 +T:5/12-18=1.056/120 Tageszeit 2 +T:E,H/06-20=1.056/360 Sparzeit +T:*/20-06=1.056/360 Supersparzeit + +Z:5 Mobilfunk +T:1-5/06-08,18-20=1.056/19.2 Sparzeit +T:1-5/08-12=1.056/12 Tageszeit 1 +T:1-4/13-16=1.056/12 Tageszeit 1 +T:1-4/12-13,16-18=1.056/12 Tageszeit 2 +T:5/12-18=1.056/12 Tageszeit 2 +T:E,H/06-20=1.056/19.2 Sparzeit +T:*/20-06=1.056/19.2 Supersparzeit + +Z:6 Ausland Zone 1 +T:1-5/06-08,18-20=1.056/14.4 Sparzeit +T:1-5/08-12=1.056/12 Tageszeit 1 +T:1-4/13-16=1.056/12 Tageszeit 1 +T:1-4/12-13,16-18=1.056/12 Tageszeit 2 +T:5/12-18=1.056/12 Tageszeit 2 +T:E,H/06-20=1.056/14.4 Sparzeit +T:*/20-06=1.056/14.4 Supersparzeit + +Z:7 Ausland Zone 2 +T:1-5/06-08,18-20=1.056/12 Sparzeit +T:1-5/08-12=1.056/9 Tageszeit 1 +T:1-4/13-16=1.056/9 Tageszeit 1 +T:1-4/12-13,16-18=1.056/9 Tageszeit 2 +T:5/12-18=1.056/9 Tageszeit 2 +T:E,H/06-20=1.056/12 Sparzeit +T:*/20-06=1.056/12 Supersparzeit + +Z:8 Ausland Zone 3 +T:1-5/06-08,18-20=1.056/8 Sparzeit +T:1-5/08-12=1.056/6.5455 Tageszeit 1 +T:1-4/13-16=1.056/6.5455 Tageszeit 1 +T:1-4/12-13,16-18=1.056/6.5455 Tageszeit 2 +T:5/12-18=1.056/6.5455 Tageszeit 2 +T:E,H/06-20=1.056/8 Sparzeit +T:*/20-06=1.056/8 Supersparzeit + +Z:9 Ausland Zone 4 +T:1-5/06-08,18-20=1.056/6 Sparzeit +T:1-5/08-12=1.056/5.1429 Tageszeit 1 +T:1-4/13-16=1.056/5.1429 Tageszeit 1 +T:1-4/12-13,16-18=1.056/5.1429 Tageszeit 2 +T:5/12-18=1.056/5.1429 Tageszeit 2 +T:E,H/06-20=1.056/6 Sparzeit +T:*/20-06=1.056/6 Supersparzeit + +Z:10 Ausland Zone 5 +T:1-5/06-08,18-20=1.056/4.8 Sparzeit +T:1-5/08-12=1.056/4.2353 Tageszeit 1 +T:1-4/13-16=1.056/4.2353 Tageszeit 1 +T:1-4/12-13,16-18=1.056/4.2353 Tageszeit 2 +T:5/12-18=1.056/4.2353 Tageszeit 2 +T:E,H/06-20=1.056/4.8 Sparzeit +T:*/20-06=1.056/4.8 Supersparzeit + +Z:11 Ausland Zone 6 +T:1-5/06-08,18-20=1.056/4.2353 Sparzeit +T:1-5/08-12=1.056/3.6 Tageszeit 1 +T:1-4/13-16=1.056/3.6 Tageszeit 1 +T:1-4/12-13,16-18=1.056/3.6 Tageszeit 2 +T:5/12-18=1.056/3.6 Tageszeit 2 +T:E,H/06-20=1.056/4.2353 Sparzeit +T:*/20-06=1.056/4.2353 Supersparzeit + +Z:12 Ausland Zone 7 +T:1-5/06-08,18-20=1.056/3.6 Sparzeit +T:1-5/08-12=1.056/3.1304 Tageszeit 1 +T:1-4/13-16=1.056/3.1304 Tageszeit 1 +T:1-4/12-13,16-18=1.056/3.1304 Tageszeit 2 +T:5/12-18=1.056/3.1304 Tageszeit 2 +T:E,H/06-20=1.056/3.6 Sparzeit +T:*/20-06=1.056/3.6 Supersparzeit + +Z:13 Ausland Zone 8 +T:1-5/06-08,18-20=1.056/3 Sparzeit +T:1-5/08-12=1.056/2.7692 Tageszeit 1 +T:1-4/13-16=1.056/2.7692 Tageszeit 1 +T:1-4/12-13,16-18=1.056/2.7692 Tageszeit 2 +T:5/12-18=1.056/2.7692 Tageszeit 2 +T:E,H/06-20=1.056/3 Sparzeit +T:*/20-06=1.056/3 Supersparzeit + +Z:14 Ausland Zone 9 +T:1-5/06-08,18-20=1.056/2.5714 Sparzeit +T:1-5/08-12=1.056/2.4 Tageszeit 1 +T:1-4/13-16=1.056/2.4 Tageszeit 1 +T:1-4/12-13,16-18=1.056/2.4 Tageszeit 2 +T:5/12-18=1.056/2.4 Tageszeit 2 +T:E,H/06-20=1.056/2.5714 Sparzeit +T:*/20-06=1.056/2.5714 Supersparzeit + +Z:15 Ausland Zone 10 +T:1-5/06-08,18-20=1.056/2.25 Sparzeit +T:1-5/08-12=1.056/2.1176 Tageszeit 1 +T:1-4/13-16=1.056/2.1176 Tageszeit 1 +T:1-4/12-13,16-18=1.056/2.1176 Tageszeit 2 +T:5/12-18=1.056/2.1176 Tageszeit 2 +T:E,H/06-20=1.056/2.25 Sparzeit +T:*/20-06=1.056/2.25 Supersparzeit + +Z:16 Ausland Zone 11 +T:1-5/06-08,18-20=1.056/2 Sparzeit +T:1-5/08-12=1.056/1.8462 Tageszeit 1 +T:1-4/13-16=1.056/1.8462 Tageszeit 1 +T:1-4/12-13,16-18=1.056/1.8462 Tageszeit 2 +T:5/12-18=1.056/1.8462 Tageszeit 2 +T:E,H/06-20=1.056/2 Sparzeit +T:*/20-06=1.056/2 Supersparzeit + +Z:17 Ausland Zone 12 +T:1-5/06-08,18-20=1.056/1.8 Sparzeit +T:1-5/08-12=1.056/1.6364 Tageszeit 1 +T:1-4/13-16=1.056/1.6364 Tageszeit 1 +T:1-4/12-13,16-18=1.056/1.6364 Tageszeit 2 +T:5/12-18=1.056/1.6364 Tageszeit 2 +T:E,H/06-20=1.056/1.8 Sparzeit +T:*/20-06=1.056/1.8 Supersparzeit + +Z:18 Ausland Zone 13 +T:1-5/06-08,18-20=1.056/1.3585 Sparzeit +T:1-5/08-12=1.056/1.2203 Tageszeit 1 +T:1-4/13-16=1.056/1.2203 Tageszeit 1 +T:1-4/12-13,16-18=1.056/1.2203 Tageszeit 2 +T:5/12-18=1.056/1.2203 Tageszeit 2 +T:E,H/06-20=1.056/1.3585 Sparzeit +T:*/20-06=1.056/1.3585 Supersparzeit + +Z:19 Ausland Zone 14 +T:1-5/06-08,18-20=1.056/9 Sparzeit +T:1-5/08-12=1.056/8 Tageszeit 1 +T:1-4/13-16=1.056/8 Tageszeit 1 +T:1-4/12-13,16-18=1.056/8 Tageszeit 2 +T:5/12-18=1.056/8 Tageszeit 2 +T:E,H/06-20=1.056/9 Sparzeit +T:*/20-06=1.056/9 Supersparzeit + +Z:20 Ausland Zone 15 +T:1-5/06-08,18-20=1.056/7.2 Sparzeit +T:1-5/08-12=1.056/9 Tageszeit 1 +T:1-4/13-16=1.056/9 Tageszeit 1 +T:1-4/12-13,16-18=1.056/9 Tageszeit 2 +T:5/12-18=1.056/9 Tageszeit 2 +T:E,H/06-20=1.056/7.2 Sparzeit +T:*/20-06=1.056/7.2 Supersparzeit + +Z:21 Handvermittelter Verkehr + +Z:22 Grenznahverkehr +T:1-5/06-08,18-20=1.056/24 Sparzeit +T:1-5/08-12=1.056/18 Tageszeit 1 +T:1-4/13-16=1.056/18 Tageszeit 1 +T:1-4/12-13,16-18=1.056/18 Tageszeit 2 +T:5/12-18=1.056/18 Tageszeit 2 +T:E,H/06-20=1.056/24 Sparzeit +T:*/20-06=1.056/24 Supersparzeit + +Z:23 Teleinfo 04570 +T:1-5/06-08,18-20=1.056/10.795 Sparzeit +T:1-5/08-12=1.056/10.795 Tageszeit 1 +T:1-4/13-16=1.056/10.795 Tageszeit 1 +T:1-4/12-13,16-18=1.056/10.795 Tageszeit 2 +T:5/12-18=1.056/10.795 Tageszeit 2 +T:E,H/06-20=1.056/10.795 Sparzeit +T:*/20-06=1.056/10.795 Supersparzeit + +Z:24 Teleinfo 04500 +T:1-5/06-08,18-20=1.056/7.2 Sparzeit +T:1-5/08-12=1.056/7.2 Tageszeit 1 +T:1-4/13-16=1.056/7.2 Tageszeit 1 +T:1-4/12-13,16-18=1.056/7.2 Tageszeit 2 +T:5/12-18=1.056/7.2 Tageszeit 2 +T:E,H/06-20=1.056/7.2 Sparzeit +T:*/20-06=1.056/7.2 Supersparzeit + +Z:25 Telebusiness 04590 +T:1-5/06-08,18-20=1.056/4.5 Sparzeit +T:1-5/08-12=1.056/4.5 Tageszeit 1 +T:1-4/13-16=1.056/4.5 Tageszeit 1 +T:1-4/12-13,16-18=1.056/4.5 Tageszeit 2 +T:5/12-18=1.056/4.5 Tageszeit 2 +T:E,H/06-20=1.056/4.5 Sparzeit +T:*/20-06=1.056/4.5 Supersparzeit + +Z:26 Teleinfo 04580 +T:1-5/06-08,18-20=1.056/2.6997 Sparzeit +T:1-5/08-12=1.056/2.6997 Tageszeit 1 +T:1-4/13-16=1.056/2.6997 Tageszeit 1 +T:1-4/12-13,16-18=1.056/2.6997 Tageszeit 2 +T:5/12-18=1.056/2.6997 Tageszeit 2 +T:E,H/06-20=1.056/2.6997 Sparzeit +T:*/20-06=1.056/2.6997 Supersparzeit + +Z:27 Businessline 0711x +T:1-5/06-08,18-20=1.056/109.09 Sparzeit +T:1-5/08-12=1.056/57.6 Tageszeit 1 +T:1-4/13-16=1.056/57.6 Tageszeit 1 +T:1-4/12-13,16-18=1.056/72 Tageszeit 2 +T:5/12-18=1.056/72 Tageszeit 2 +T:E,H/06-20=1.056/109.09 Sparzeit +T:*/20-06=1.056/160 Supersparzeit + +Z:28 Businessline 0713x +T:1-5/06-08,18-20=1.056/32 Sparzeit +T:1-5/08-12=1.056/32 Tageszeit 1 +T:1-4/13-16=1.056/32 Tageszeit 1 +T:1-4/12-13,16-18=1.056/32 Tageszeit 2 +T:5/12-18=1.056/32 Tageszeit 2 +T:E,H/06-20=1.056/32 Sparzeit +T:*/20-06=1.056/32 Supersparzeit + +Z:29 Businessline 0714x +T:1-5/06-08,18-20=1.056/15 Sparzeit +T:1-5/08-12=1.056/15 Tageszeit 1 +T:1-4/13-16=1.056/15 Tageszeit 1 +T:1-4/12-13,16-18=1.056/15 Tageszeit 2 +T:5/12-18=1.056/15 Tageszeit 2 +T:E,H/06-20=1.056/15 Sparzeit +T:*/20-06=1.056/15 Supersparzeit + +Z:30 Votingline 0717x +T:1-5/06-08,18-20=1.056/15 Sparzeit +T:1-5/08-12=1.056/15 Tageszeit 1 +T:1-4/13-16=1.056/15 Tageszeit 1 +T:1-4/12-13,16-18=1.056/15 Tageszeit 2 +T:5/12-18=1.056/15 Tageszeit 2 +T:E,H/06-20=1.056/15 Sparzeit +T:*/20-06=1.056/15 Supersparzeit + +P:00,3 PTA +C:Name: Post & Telekom Austria +C:Tarif: Geschäftstarif 1 (ATS 0.996 / Impuls) + +Z:1 Regionalzone +T:1-5/06-08,18-20=0.996/109.09 Sparzeit +T:1-5/08-12=0.996/57.6 Tageszeit 1 +T:1-4/13-16=0.996/57.6 Tageszeit 1 +T:1-4/12-13,16-18=0.996/72 Tageszeit 2 +T:5/12-18=0.996/72 Tageszeit 2 +T:E,H/06-20=0.996/109.09 Sparzeit +T:*/20-06=0.996/160 Supersparzeit + +Z:2 Fernzone 1 +T:1-5/06-08,18-20=0.996/50 Sparzeit +T:1-5/08-12=0.996/20 Tageszeit 1 +T:1-4/13-16=0.996/20 Tageszeit 1 +T:1-4/12-13,16-18=0.996/25 Tageszeit 2 +T:5/12-18=0.996/25 Tageszeit 2 +T:E,H/06-20=0.996/50 Sparzeit +T:*/20-06=0.996/72 Supersparzeit + +Z:3 Fernzone 2 +T:1-5/06-08,18-20=0.996/40 Sparzeit +T:1-5/08-12=0.996/15 Tageszeit 1 +T:1-4/13-16=0.996/15 Tageszeit 1 +T:1-4/12-13,16-18=0.996/19.2 Tageszeit 2 +T:5/12-18=0.996/19.2 Tageszeit 2 +T:E,H/06-20=0.996/40 Sparzeit +T:*/20-06=0.996/50 Supersparzeit + +Z:4 Online-Tarif +T:1-5/06-08,18-20=0.996/360 Sparzeit +T:1-5/08-12=0.996/120 Tageszeit 1 +T:1-4/13-16=0.996/120 Tageszeit 1 +T:1-4/12-13,16-18=0.996/120 Tageszeit 2 +T:5/12-18=0.996/120 Tageszeit 2 +T:E,H/06-20=0.996/360 Sparzeit +T:*/20-06=0.996/360 Supersparzeit + +Z:5 Mobilfunk +T:1-5/06-08,18-20=0.996/19.2 Sparzeit +T:1-5/08-12=0.996/12 Tageszeit 1 +T:1-4/13-16=0.996/12 Tageszeit 1 +T:1-4/12-13,16-18=0.996/12 Tageszeit 2 +T:5/12-18=0.996/12 Tageszeit 2 +T:E,H/06-20=0.996/19.2 Sparzeit +T:*/20-06=0.996/19.2 Supersparzeit + +Z:6 Ausland Zone 1 +T:1-5/06-08,18-20=0.996/14.4 Sparzeit +T:1-5/08-12=0.996/12 Tageszeit 1 +T:1-4/13-16=0.996/12 Tageszeit 1 +T:1-4/12-13,16-18=0.996/12 Tageszeit 2 +T:5/12-18=0.996/12 Tageszeit 2 +T:E,H/06-20=0.996/14.4 Sparzeit +T:*/20-06=0.996/14.4 Supersparzeit + +Z:7 Ausland Zone 2 +T:1-5/06-08,18-20=0.996/12 Sparzeit +T:1-5/08-12=0.996/9 Tageszeit 1 +T:1-4/13-16=0.996/9 Tageszeit 1 +T:1-4/12-13,16-18=0.996/9 Tageszeit 2 +T:5/12-18=0.996/9 Tageszeit 2 +T:E,H/06-20=0.996/12 Sparzeit +T:*/20-06=0.996/12 Supersparzeit + +Z:8 Ausland Zone 3 +T:1-5/06-08,18-20=0.996/8 Sparzeit +T:1-5/08-12=0.996/6.5455 Tageszeit 1 +T:1-4/13-16=0.996/6.5455 Tageszeit 1 +T:1-4/12-13,16-18=0.996/6.5455 Tageszeit 2 +T:5/12-18=0.996/6.5455 Tageszeit 2 +T:E,H/06-20=0.996/8 Sparzeit +T:*/20-06=0.996/8 Supersparzeit + +Z:9 Ausland Zone 4 +T:1-5/06-08,18-20=0.996/6 Sparzeit +T:1-5/08-12=0.996/5.1429 Tageszeit 1 +T:1-4/13-16=0.996/5.1429 Tageszeit 1 +T:1-4/12-13,16-18=0.996/5.1429 Tageszeit 2 +T:5/12-18=0.996/5.1429 Tageszeit 2 +T:E,H/06-20=0.996/6 Sparzeit +T:*/20-06=0.996/6 Supersparzeit + +Z:10 Ausland Zone 5 +T:1-5/06-08,18-20=0.996/4.8 Sparzeit +T:1-5/08-12=0.996/4.2353 Tageszeit 1 +T:1-4/13-16=0.996/4.2353 Tageszeit 1 +T:1-4/12-13,16-18=0.996/4.2353 Tageszeit 2 +T:5/12-18=0.996/4.2353 Tageszeit 2 +T:E,H/06-20=0.996/4.8 Sparzeit +T:*/20-06=0.996/4.8 Supersparzeit + +Z:11 Ausland Zone 6 +T:1-5/06-08,18-20=0.996/4.2353 Sparzeit +T:1-5/08-12=0.996/3.6 Tageszeit 1 +T:1-4/13-16=0.996/3.6 Tageszeit 1 +T:1-4/12-13,16-18=0.996/3.6 Tageszeit 2 +T:5/12-18=0.996/3.6 Tageszeit 2 +T:E,H/06-20=0.996/4.2353 Sparzeit +T:*/20-06=0.996/4.2353 Supersparzeit + +Z:12 Ausland Zone 7 +T:1-5/06-08,18-20=0.996/3.6 Sparzeit +T:1-5/08-12=0.996/3.1304 Tageszeit 1 +T:1-4/13-16=0.996/3.1304 Tageszeit 1 +T:1-4/12-13,16-18=0.996/3.1304 Tageszeit 2 +T:5/12-18=0.996/3.1304 Tageszeit 2 +T:E,H/06-20=0.996/3.6 Sparzeit +T:*/20-06=0.996/3.6 Supersparzeit + +Z:13 Ausland Zone 8 +T:1-5/06-08,18-20=0.996/3 Sparzeit +T:1-5/08-12=0.996/2.7692 Tageszeit 1 +T:1-4/13-16=0.996/2.7692 Tageszeit 1 +T:1-4/12-13,16-18=0.996/2.7692 Tageszeit 2 +T:5/12-18=0.996/2.7692 Tageszeit 2 +T:E,H/06-20=0.996/3 Sparzeit +T:*/20-06=0.996/3 Supersparzeit + +Z:14 Ausland Zone 9 +T:1-5/06-08,18-20=0.996/2.5714 Sparzeit +T:1-5/08-12=0.996/2.4 Tageszeit 1 +T:1-4/13-16=0.996/2.4 Tageszeit 1 +T:1-4/12-13,16-18=0.996/2.4 Tageszeit 2 +T:5/12-18=0.996/2.4 Tageszeit 2 +T:E,H/06-20=0.996/2.5714 Sparzeit +T:*/20-06=0.996/2.5714 Supersparzeit + +Z:15 Ausland Zone 10 +T:1-5/06-08,18-20=0.996/2.25 Sparzeit +T:1-5/08-12=0.996/2.1176 Tageszeit 1 +T:1-4/13-16=0.996/2.1176 Tageszeit 1 +T:1-4/12-13,16-18=0.996/2.1176 Tageszeit 2 +T:5/12-18=0.996/2.1176 Tageszeit 2 +T:E,H/06-20=0.996/2.25 Sparzeit +T:*/20-06=0.996/2.25 Supersparzeit + +Z:16 Ausland Zone 11 +T:1-5/06-08,18-20=0.996/2 Sparzeit +T:1-5/08-12=0.996/1.8462 Tageszeit 1 +T:1-4/13-16=0.996/1.8462 Tageszeit 1 +T:1-4/12-13,16-18=0.996/1.8462 Tageszeit 2 +T:5/12-18=0.996/1.8462 Tageszeit 2 +T:E,H/06-20=0.996/2 Sparzeit +T:*/20-06=0.996/2 Supersparzeit + +Z:17 Ausland Zone 12 +T:1-5/06-08,18-20=0.996/1.8 Sparzeit +T:1-5/08-12=0.996/1.6364 Tageszeit 1 +T:1-4/13-16=0.996/1.6364 Tageszeit 1 +T:1-4/12-13,16-18=0.996/1.6364 Tageszeit 2 +T:5/12-18=0.996/1.6364 Tageszeit 2 +T:E,H/06-20=0.996/1.8 Sparzeit +T:*/20-06=0.996/1.8 Supersparzeit + +Z:18 Ausland Zone 13 +T:1-5/06-08,18-20=0.996/1.3585 Sparzeit +T:1-5/08-12=0.996/1.2203 Tageszeit 1 +T:1-4/13-16=0.996/1.2203 Tageszeit 1 +T:1-4/12-13,16-18=0.996/1.2203 Tageszeit 2 +T:5/12-18=0.996/1.2203 Tageszeit 2 +T:E,H/06-20=0.996/1.3585 Sparzeit +T:*/20-06=0.996/1.3585 Supersparzeit + +Z:19 Ausland Zone 14 +T:1-5/06-08,18-20=0.996/9 Sparzeit +T:1-5/08-12=0.996/8 Tageszeit 1 +T:1-4/13-16=0.996/8 Tageszeit 1 +T:1-4/12-13,16-18=0.996/8 Tageszeit 2 +T:5/12-18=0.996/8 Tageszeit 2 +T:E,H/06-20=0.996/9 Sparzeit +T:*/20-06=0.996/9 Supersparzeit + +Z:20 Ausland Zone 15 +T:1-5/06-08,18-20=0.996/7.2 Sparzeit +T:1-5/08-12=0.996/9 Tageszeit 1 +T:1-4/13-16=0.996/9 Tageszeit 1 +T:1-4/12-13,16-18=0.996/9 Tageszeit 2 +T:5/12-18=0.996/9 Tageszeit 2 +T:E,H/06-20=0.996/7.2 Sparzeit +T:*/20-06=0.996/7.2 Supersparzeit + +Z:21 Handvermittelter Verkehr + +Z:22 Grenznahverkehr +T:1-5/06-08,18-20=0.996/24 Sparzeit +T:1-5/08-12=0.996/18 Tageszeit 1 +T:1-4/13-16=0.996/18 Tageszeit 1 +T:1-4/12-13,16-18=0.996/18 Tageszeit 2 +T:5/12-18=0.996/18 Tageszeit 2 +T:E,H/06-20=0.996/24 Sparzeit +T:*/20-06=0.996/24 Supersparzeit + +Z:23 Teleinfo 04570 +T:1-5/06-08,18-20=0.996/10.795 Sparzeit +T:1-5/08-12=0.996/10.795 Tageszeit 1 +T:1-4/13-16=0.996/10.795 Tageszeit 1 +T:1-4/12-13,16-18=0.996/10.795 Tageszeit 2 +T:5/12-18=0.996/10.795 Tageszeit 2 +T:E,H/06-20=0.996/10.795 Sparzeit +T:*/20-06=0.996/10.795 Supersparzeit + +Z:24 Teleinfo 04500 +T:1-5/06-08,18-20=0.996/7.2 Sparzeit +T:1-5/08-12=0.996/7.2 Tageszeit 1 +T:1-4/13-16=0.996/7.2 Tageszeit 1 +T:1-4/12-13,16-18=0.996/7.2 Tageszeit 2 +T:5/12-18=0.996/7.2 Tageszeit 2 +T:E,H/06-20=0.996/7.2 Sparzeit +T:*/20-06=0.996/7.2 Supersparzeit + +Z:25 Telebusiness 04590 +T:1-5/06-08,18-20=0.996/4.5 Sparzeit +T:1-5/08-12=0.996/4.5 Tageszeit 1 +T:1-4/13-16=0.996/4.5 Tageszeit 1 +T:1-4/12-13,16-18=0.996/4.5 Tageszeit 2 +T:5/12-18=0.996/4.5 Tageszeit 2 +T:E,H/06-20=0.996/4.5 Sparzeit +T:*/20-06=0.996/4.5 Supersparzeit + +Z:26 Teleinfo 04580 +T:1-5/06-08,18-20=0.996/2.6997 Sparzeit +T:1-5/08-12=0.996/2.6997 Tageszeit 1 +T:1-4/13-16=0.996/2.6997 Tageszeit 1 +T:1-4/12-13,16-18=0.996/2.6997 Tageszeit 2 +T:5/12-18=0.996/2.6997 Tageszeit 2 +T:E,H/06-20=0.996/2.6997 Sparzeit +T:*/20-06=0.996/2.6997 Supersparzeit + +Z:27 Businessline 0711x +T:1-5/06-08,18-20=0.996/109.09 Sparzeit +T:1-5/08-12=0.996/57.6 Tageszeit 1 +T:1-4/13-16=0.996/57.6 Tageszeit 1 +T:1-4/12-13,16-18=0.996/72 Tageszeit 2 +T:5/12-18=0.996/72 Tageszeit 2 +T:E,H/06-20=0.996/109.09 Sparzeit +T:*/20-06=0.996/160 Supersparzeit + +Z:28 Businessline 0713x +T:1-5/06-08,18-20=0.996/32 Sparzeit +T:1-5/08-12=0.996/32 Tageszeit 1 +T:1-4/13-16=0.996/32 Tageszeit 1 +T:1-4/12-13,16-18=0.996/32 Tageszeit 2 +T:5/12-18=0.996/32 Tageszeit 2 +T:E,H/06-20=0.996/32 Sparzeit +T:*/20-06=0.996/32 Supersparzeit + +Z:29 Businessline 0714x +T:1-5/06-08,18-20=0.996/15 Sparzeit +T:1-5/08-12=0.996/15 Tageszeit 1 +T:1-4/13-16=0.996/15 Tageszeit 1 +T:1-4/12-13,16-18=0.996/15 Tageszeit 2 +T:5/12-18=0.996/15 Tageszeit 2 +T:E,H/06-20=0.996/15 Sparzeit +T:*/20-06=0.996/15 Supersparzeit + +Z:30 Votingline 0717x +T:1-5/06-08,18-20=0.996/15 Sparzeit +T:1-5/08-12=0.996/15 Tageszeit 1 +T:1-4/13-16=0.996/15 Tageszeit 1 +T:1-4/12-13,16-18=0.996/15 Tageszeit 2 +T:5/12-18=0.996/15 Tageszeit 2 +T:E,H/06-20=0.996/15 Sparzeit +T:*/20-06=0.996/15 Supersparzeit + +P:00,4 PTA +C:Name: Post & Telekom Austria +C:Tarif: Geschäftstarif 2 (ATS 0.936 / Impuls) + +Z:1 Regionalzone +T:1-5/06-08,18-20=0.936/109.09 Sparzeit +T:1-5/08-12=0.936/57.6 Tageszeit 1 +T:1-4/13-16=0.936/57.6 Tageszeit 1 +T:1-4/12-13,16-18=0.936/72 Tageszeit 2 +T:5/12-18=0.936/72 Tageszeit 2 +T:E,H/06-20=0.936/109.09 Sparzeit +T:*/20-06=0.936/160 Supersparzeit + +Z:2 Fernzone 1 +T:1-5/06-08,18-20=0.936/50 Sparzeit +T:1-5/08-12=0.936/20 Tageszeit 1 +T:1-4/13-16=0.936/20 Tageszeit 1 +T:1-4/12-13,16-18=0.936/25 Tageszeit 2 +T:5/12-18=0.936/25 Tageszeit 2 +T:E,H/06-20=0.936/50 Sparzeit +T:*/20-06=0.936/72 Supersparzeit + +Z:3 Fernzone 2 +T:1-5/06-08,18-20=0.936/40 Sparzeit +T:1-5/08-12=0.936/15 Tageszeit 1 +T:1-4/13-16=0.936/15 Tageszeit 1 +T:1-4/12-13,16-18=0.936/19.2 Tageszeit 2 +T:5/12-18=0.936/19.2 Tageszeit 2 +T:E,H/06-20=0.936/40 Sparzeit +T:*/20-06=0.936/50 Supersparzeit + +Z:4 Online-Tarif +T:1-5/06-08,18-20=0.936/360 Sparzeit +T:1-5/08-12=0.936/120 Tageszeit 1 +T:1-4/13-16=0.936/120 Tageszeit 1 +T:1-4/12-13,16-18=0.936/120 Tageszeit 2 +T:5/12-18=0.936/120 Tageszeit 2 +T:E,H/06-20=0.936/360 Sparzeit +T:*/20-06=0.936/360 Supersparzeit + +Z:5 Mobilfunk +T:1-5/06-08,18-20=0.936/19.2 Sparzeit +T:1-5/08-12=0.936/12 Tageszeit 1 +T:1-4/13-16=0.936/12 Tageszeit 1 +T:1-4/12-13,16-18=0.936/12 Tageszeit 2 +T:5/12-18=0.936/12 Tageszeit 2 +T:E,H/06-20=0.936/19.2 Sparzeit +T:*/20-06=0.936/19.2 Supersparzeit + +Z:6 Ausland Zone 1 +T:1-5/06-08,18-20=0.936/14.4 Sparzeit +T:1-5/08-12=0.936/12 Tageszeit 1 +T:1-4/13-16=0.936/12 Tageszeit 1 +T:1-4/12-13,16-18=0.936/12 Tageszeit 2 +T:5/12-18=0.936/12 Tageszeit 2 +T:E,H/06-20=0.936/14.4 Sparzeit +T:*/20-06=0.936/14.4 Supersparzeit + +Z:7 Ausland Zone 2 +T:1-5/06-08,18-20=0.936/12 Sparzeit +T:1-5/08-12=0.936/9 Tageszeit 1 +T:1-4/13-16=0.936/9 Tageszeit 1 +T:1-4/12-13,16-18=0.936/9 Tageszeit 2 +T:5/12-18=0.936/9 Tageszeit 2 +T:E,H/06-20=0.936/12 Sparzeit +T:*/20-06=0.936/12 Supersparzeit + +Z:8 Ausland Zone 3 +T:1-5/06-08,18-20=0.936/8 Sparzeit +T:1-5/08-12=0.936/6.5455 Tageszeit 1 +T:1-4/13-16=0.936/6.5455 Tageszeit 1 +T:1-4/12-13,16-18=0.936/6.5455 Tageszeit 2 +T:5/12-18=0.936/6.5455 Tageszeit 2 +T:E,H/06-20=0.936/8 Sparzeit +T:*/20-06=0.936/8 Supersparzeit + +Z:9 Ausland Zone 4 +T:1-5/06-08,18-20=0.936/6 Sparzeit +T:1-5/08-12=0.936/5.1429 Tageszeit 1 +T:1-4/13-16=0.936/5.1429 Tageszeit 1 +T:1-4/12-13,16-18=0.936/5.1429 Tageszeit 2 +T:5/12-18=0.936/5.1429 Tageszeit 2 +T:E,H/06-20=0.936/6 Sparzeit +T:*/20-06=0.936/6 Supersparzeit + +Z:10 Ausland Zone 5 +T:1-5/06-08,18-20=0.936/4.8 Sparzeit +T:1-5/08-12=0.936/4.2353 Tageszeit 1 +T:1-4/13-16=0.936/4.2353 Tageszeit 1 +T:1-4/12-13,16-18=0.936/4.2353 Tageszeit 2 +T:5/12-18=0.936/4.2353 Tageszeit 2 +T:E,H/06-20=0.936/4.8 Sparzeit +T:*/20-06=0.936/4.8 Supersparzeit + +Z:11 Ausland Zone 6 +T:1-5/06-08,18-20=0.936/4.2353 Sparzeit +T:1-5/08-12=0.936/3.6 Tageszeit 1 +T:1-4/13-16=0.936/3.6 Tageszeit 1 +T:1-4/12-13,16-18=0.936/3.6 Tageszeit 2 +T:5/12-18=0.936/3.6 Tageszeit 2 +T:E,H/06-20=0.936/4.2353 Sparzeit +T:*/20-06=0.936/4.2353 Supersparzeit + +Z:12 Ausland Zone 7 +T:1-5/06-08,18-20=0.936/3.6 Sparzeit +T:1-5/08-12=0.936/3.1304 Tageszeit 1 +T:1-4/13-16=0.936/3.1304 Tageszeit 1 +T:1-4/12-13,16-18=0.936/3.1304 Tageszeit 2 +T:5/12-18=0.936/3.1304 Tageszeit 2 +T:E,H/06-20=0.936/3.6 Sparzeit +T:*/20-06=0.936/3.6 Supersparzeit + +Z:13 Ausland Zone 8 +T:1-5/06-08,18-20=0.936/3 Sparzeit +T:1-5/08-12=0.936/2.7692 Tageszeit 1 +T:1-4/13-16=0.936/2.7692 Tageszeit 1 +T:1-4/12-13,16-18=0.936/2.7692 Tageszeit 2 +T:5/12-18=0.936/2.7692 Tageszeit 2 +T:E,H/06-20=0.936/3 Sparzeit +T:*/20-06=0.936/3 Supersparzeit + +Z:14 Ausland Zone 9 +T:1-5/06-08,18-20=0.936/2.5714 Sparzeit +T:1-5/08-12=0.936/2.4 Tageszeit 1 +T:1-4/13-16=0.936/2.4 Tageszeit 1 +T:1-4/12-13,16-18=0.936/2.4 Tageszeit 2 +T:5/12-18=0.936/2.4 Tageszeit 2 +T:E,H/06-20=0.936/2.5714 Sparzeit +T:*/20-06=0.936/2.5714 Supersparzeit + +Z:15 Ausland Zone 10 +T:1-5/06-08,18-20=0.936/2.25 Sparzeit +T:1-5/08-12=0.936/2.1176 Tageszeit 1 +T:1-4/13-16=0.936/2.1176 Tageszeit 1 +T:1-4/12-13,16-18=0.936/2.1176 Tageszeit 2 +T:5/12-18=0.936/2.1176 Tageszeit 2 +T:E,H/06-20=0.936/2.25 Sparzeit +T:*/20-06=0.936/2.25 Supersparzeit + +Z:16 Ausland Zone 11 +T:1-5/06-08,18-20=0.936/2 Sparzeit +T:1-5/08-12=0.936/1.8462 Tageszeit 1 +T:1-4/13-16=0.936/1.8462 Tageszeit 1 +T:1-4/12-13,16-18=0.936/1.8462 Tageszeit 2 +T:5/12-18=0.936/1.8462 Tageszeit 2 +T:E,H/06-20=0.936/2 Sparzeit +T:*/20-06=0.936/2 Supersparzeit + +Z:17 Ausland Zone 12 +T:1-5/06-08,18-20=0.936/1.8 Sparzeit +T:1-5/08-12=0.936/1.6364 Tageszeit 1 +T:1-4/13-16=0.936/1.6364 Tageszeit 1 +T:1-4/12-13,16-18=0.936/1.6364 Tageszeit 2 +T:5/12-18=0.936/1.6364 Tageszeit 2 +T:E,H/06-20=0.936/1.8 Sparzeit +T:*/20-06=0.936/1.8 Supersparzeit + +Z:18 Ausland Zone 13 +T:1-5/06-08,18-20=0.936/1.3585 Sparzeit +T:1-5/08-12=0.936/1.2203 Tageszeit 1 +T:1-4/13-16=0.936/1.2203 Tageszeit 1 +T:1-4/12-13,16-18=0.936/1.2203 Tageszeit 2 +T:5/12-18=0.936/1.2203 Tageszeit 2 +T:E,H/06-20=0.936/1.3585 Sparzeit +T:*/20-06=0.936/1.3585 Supersparzeit + +Z:19 Ausland Zone 14 +T:1-5/06-08,18-20=0.936/9 Sparzeit +T:1-5/08-12=0.936/8 Tageszeit 1 +T:1-4/13-16=0.936/8 Tageszeit 1 +T:1-4/12-13,16-18=0.936/8 Tageszeit 2 +T:5/12-18=0.936/8 Tageszeit 2 +T:E,H/06-20=0.936/9 Sparzeit +T:*/20-06=0.936/9 Supersparzeit + +Z:20 Ausland Zone 15 +T:1-5/06-08,18-20=0.936/7.2 Sparzeit +T:1-5/08-12=0.936/9 Tageszeit 1 +T:1-4/13-16=0.936/9 Tageszeit 1 +T:1-4/12-13,16-18=0.936/9 Tageszeit 2 +T:5/12-18=0.936/9 Tageszeit 2 +T:E,H/06-20=0.936/7.2 Sparzeit +T:*/20-06=0.936/7.2 Supersparzeit + +Z:21 Handvermittelter Verkehr + +Z:22 Grenznahverkehr +T:1-5/06-08,18-20=0.936/24 Sparzeit +T:1-5/08-12=0.936/18 Tageszeit 1 +T:1-4/13-16=0.936/18 Tageszeit 1 +T:1-4/12-13,16-18=0.936/18 Tageszeit 2 +T:5/12-18=0.936/18 Tageszeit 2 +T:E,H/06-20=0.936/24 Sparzeit +T:*/20-06=0.936/24 Supersparzeit + +Z:23 Teleinfo 04570 +T:1-5/06-08,18-20=0.936/10.795 Sparzeit +T:1-5/08-12=0.936/10.795 Tageszeit 1 +T:1-4/13-16=0.936/10.795 Tageszeit 1 +T:1-4/12-13,16-18=0.936/10.795 Tageszeit 2 +T:5/12-18=0.936/10.795 Tageszeit 2 +T:E,H/06-20=0.936/10.795 Sparzeit +T:*/20-06=0.936/10.795 Supersparzeit + +Z:24 Teleinfo 04500 +T:1-5/06-08,18-20=0.936/7.2 Sparzeit +T:1-5/08-12=0.936/7.2 Tageszeit 1 +T:1-4/13-16=0.936/7.2 Tageszeit 1 +T:1-4/12-13,16-18=0.936/7.2 Tageszeit 2 +T:5/12-18=0.936/7.2 Tageszeit 2 +T:E,H/06-20=0.936/7.2 Sparzeit +T:*/20-06=0.936/7.2 Supersparzeit + +Z:25 Telebusiness 04590 +T:1-5/06-08,18-20=0.936/4.5 Sparzeit +T:1-5/08-12=0.936/4.5 Tageszeit 1 +T:1-4/13-16=0.936/4.5 Tageszeit 1 +T:1-4/12-13,16-18=0.936/4.5 Tageszeit 2 +T:5/12-18=0.936/4.5 Tageszeit 2 +T:E,H/06-20=0.936/4.5 Sparzeit +T:*/20-06=0.936/4.5 Supersparzeit + +Z:26 Teleinfo 04580 +T:1-5/06-08,18-20=0.936/2.6997 Sparzeit +T:1-5/08-12=0.936/2.6997 Tageszeit 1 +T:1-4/13-16=0.936/2.6997 Tageszeit 1 +T:1-4/12-13,16-18=0.936/2.6997 Tageszeit 2 +T:5/12-18=0.936/2.6997 Tageszeit 2 +T:E,H/06-20=0.936/2.6997 Sparzeit +T:*/20-06=0.936/2.6997 Supersparzeit + +Z:27 Businessline 0711x +T:1-5/06-08,18-20=0.936/109.09 Sparzeit +T:1-5/08-12=0.936/57.6 Tageszeit 1 +T:1-4/13-16=0.936/57.6 Tageszeit 1 +T:1-4/12-13,16-18=0.936/72 Tageszeit 2 +T:5/12-18=0.936/72 Tageszeit 2 +T:E,H/06-20=0.936/109.09 Sparzeit +T:*/20-06=0.936/160 Supersparzeit + +Z:28 Businessline 0713x +T:1-5/06-08,18-20=0.936/32 Sparzeit +T:1-5/08-12=0.936/32 Tageszeit 1 +T:1-4/13-16=0.936/32 Tageszeit 1 +T:1-4/12-13,16-18=0.936/32 Tageszeit 2 +T:5/12-18=0.936/32 Tageszeit 2 +T:E,H/06-20=0.936/32 Sparzeit +T:*/20-06=0.936/32 Supersparzeit + +Z:29 Businessline 0714x +T:1-5/06-08,18-20=0.936/15 Sparzeit +T:1-5/08-12=0.936/15 Tageszeit 1 +T:1-4/13-16=0.936/15 Tageszeit 1 +T:1-4/12-13,16-18=0.936/15 Tageszeit 2 +T:5/12-18=0.936/15 Tageszeit 2 +T:E,H/06-20=0.936/15 Sparzeit +T:*/20-06=0.936/15 Supersparzeit + +Z:30 Votingline 0717x +T:1-5/06-08,18-20=0.936/15 Sparzeit +T:1-5/08-12=0.936/15 Tageszeit 1 +T:1-4/13-16=0.936/15 Tageszeit 1 +T:1-4/12-13,16-18=0.936/15 Tageszeit 2 +T:5/12-18=0.936/15 Tageszeit 2 +T:E,H/06-20=0.936/15 Sparzeit +T:*/20-06=0.936/15 Supersparzeit diff --git a/isdnlog/tarif.dat b/isdnlog/tarif.dat index a77fa214..abeeaa05 100644 --- a/isdnlog/tarif.dat +++ b/isdnlog/tarif.dat @@ -1,8 +1,8 @@ -# @(#)tarif.dat 1.06 05-Mar-99 11:16 +# @(#)tarif.dat 1.08 14-Mar-99 11:35 # # Copyright 1995, 1999 by Andreas Kool (akool@isdn4linux.de) # -V:1.07 [05-Mar-99] +V:1.08 [14-Mar-99] # # P: Provider # G: tt.mm.jjjj Tarif gltig ab @@ -168,6 +168,7 @@ C: pro Monat 2 Stunden Nutzungsentgelt frei C: monatliche Grundgebhr DM 8,00 C:ISDN-Tarif C:FIXME: Tarife überprüfen! 04-Mar-99 +C:Quelle: http://www.telekom.de/untern/tarife/mobil/index.htm I:0191011 Z:1,0.12 T:W02-05=240 # Nacht @@ -192,10 +193,14 @@ Z:5,60/60 T:W09-18=0.632 # Standard T:W18-09=0.431 # Spar T:E=0.431 # Spar +Z:7-9,60/60 +T:W09-18=0.96 # Standard +T:W18-09=0.48 # Spar +T:E=0.60 # Spar Z:8,60/60 -T:W09-18=1.36 # Standard -T:W18-09=0.562 # Spar -T:E=0.562 # Spar +T:W09-18=1.44 # Standard +T:W18-09=0.60 # Spar +T:E=0.60 # Spar ################################################################ P:49=ACC G:01.01.1999 diff --git a/isdnlog/tools/holiday.c b/isdnlog/tools/holiday.c new file mode 100644 index 00000000..527cb0a8 --- /dev/null +++ b/isdnlog/tools/holiday.c @@ -0,0 +1,304 @@ + /* $Id: holiday.c,v 1.1 1999/03/14 12:16:23 akool Exp $ + * + * Feiertagsberechnung + * + * Copyright 1999 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: holiday.c,v $ + * Revision 1.1 1999/03/14 12:16:23 akool + * - isdnlog Version 3.04 + * - general cleanup + * - new layout for "rate-xx.dat" and "holiday-xx.dat" files from + * Michael Reinelt + * unused by now - it's a work-in-progress ! + * - bugfix for Wolfgang Siefert + * The Agfeo AS 40 (Software release 2.1b) uses AOC_AMOUNT, not AOC_UNITS + * - bugfix for Ralf G. R. Bergs - 0800/xxx numbers + * are free of charge ;-) + * - tarif.dat V 1.08 - new mobil-rates DTAG + * + */ + +/* + * Schnittstelle: + * + * int initHoliday(char *path) + * initialisiert die Feiertagsberechnung, liest die Feiertagsdatei + * und gibt die Anzahl der Feiertage zurück, im Fehlerfall -1 + * + * void exitHoliday() + * deinitialisiert die Feiertagsberechnung + * + * int isHoliday(struct tm *tm, char **name) + * 0 .. kein Feiertag + * 1 .. Feiertag, *name zeigt auf den Namen + * + * int getDay(struct tm *tm, char **name) + * 1 .. Montag + * 7 .. Sonntag + * 8 .. Feiertag + * *name zeigt auf den Namen + */ + +#define _HOLIDAY_C_ + +#include +#include +#include +#include +#include +#include "holiday.h" + +#define LENGTH 80 /* max length of lines in data file */ + +typedef unsigned int julian; + +typedef struct { + int day; + int month; + char *name; +} HOLIDATE; + +static int line = 0; +static char *Weekday[7] = { NULL, }; +static int nHoliday = 0; +static HOLIDATE *Holiday = NULL; + +static char *defaultWeekday[] = { "Monday", + "Thuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Sunday" }; + +static void warning (char *fmt, ...) +{ + va_list ap; + char msg[BUFSIZ]; + + va_start (ap, fmt); + vsnprintf (msg, BUFSIZ, fmt, ap); + va_end (ap); +#ifdef STANDALONE + fprintf(stderr, "WARNING: line %3d: %s\n", line, msg); +#else + print_msg(PRT_NORMAL, "WARNING: line %3d: %s\n", line, msg); +#endif +} + +/* easter & julian calculations by Guenther Brunthaler (gbr001@yahoo.com) */ + +static julian date2julian(int y, int m, int d) +{ + if (m<3) {m+=9; y--;} else m-=3; + return (146097*(y/100))/4+(1461*(y%100))/4+(153*m+2)/5+d; +} + +static void julian2date(julian jd, int *yp, int *mp, int *dp) +{ + julian j,c,y,m,d; + + j=d*4-1; + c=(j/146097)*100; + d=(j%146097)/4; + y=(4*d+3)/1461; + d=(((4*d+3)%1461)+4)/4; + m=(5*d-3)/153; + d=(((5*d-3)%153)+5)/5; + + if (m>9) {m-=9; y++;} else m+=3; + + *yp=c+y; + *mp=m; + *dp=d; +} + +static julian getEaster(int year) +{ + int g, c, x, z, d, e, n, m; + + g=year%19+1; + c=year/100+1; + x=3*c/4-12; + z=(8*c+5)/25-5; + d=5*year/4-x-10; + e=(11*g+20+z-x)%30; + if ((e==25 && g>11) || e==24) e++; + n=44-e; + if (n<21) n+=30; + n+=7-(d+n)%7; + if (n>31) {n-=31; m=4;} else m=3; + return date2julian(year,m,n); +} + +static char *strip (char *s) +{ + char *p; + + while (*s==' ' || *s=='\t') s++; + for (p=s; *p; p++) + if (*p=='#' || *p=='\n') { + *p='\0'; + break; + } + for (p--; p>s && (*p==' '||*p=='\t'); p--) + *p='\0'; + return s; +} + +void exitHoliday(void) +{ + int i; + + for (i=0; i<7; i++) { + if (Weekday[i]) { + free (Weekday[i]); + Weekday[i]=NULL; + } + } + for (i=0; i7) { + warning("invalid weekday %d", d); + continue; + } + if (*(name=strip(s))=='\0') { + warning("empty weekday %d", d); + continue; + } + if (Weekday[d-1]) free(Weekday[d-1]); + Weekday[d-1]=strdup(name); + break; + + case 'D': + name=s+2; + if ((date=strsep(&name," \t"))==NULL) { + warning("Syntax error"); + continue; + } + if (strncmp(date,"easter",6)==0) { + m=-1; + d=atoi(date+6); + } else { + d=atof(strsep(&date,".")); + m=atof(strsep(&date,".")); + } + Holiday=(HOLIDATE*)realloc(Holiday,(nHoliday+1)*sizeof(HOLIDATE)); + Holiday[nHoliday].day=d; + Holiday[nHoliday].month=m; + Holiday[nHoliday].name=strdup(strip(name)); + nHoliday++; + break; + + default: + warning("Unknown tag '%c'", *s); + } + } + fclose(stream); + + return nHoliday; +} + +int isHoliday(struct tm *tm, char **name) +{ + int i; + julian easter, day; + + day=date2julian(tm->tm_year,tm->tm_mon,tm->tm_mday); + easter=getEaster(tm->tm_year); + + for (i=0; itm_mon && Holiday[i].day==tm->tm_mday)) { + if(name) + *name=Holiday[i].name; + return 1; + } + } + return 0; +} + +int getDay(struct tm *tm, char **name) +{ + julian day; + + if (isHoliday(tm, name)) + return HOLIDAY; + + day=(date2julian(tm->tm_year,tm->tm_mon,tm->tm_mday)-6)%7+1; + if (name) + *name=Weekday[day-1]; + + return day; +} + +#ifdef STANDALONE +void main (int argc, char *argv[]) +{ + int i, d; + char *name; + struct tm tm; + + printf ("%d Feiertage\n", initHoliday("../holiday-de.dat")); + + for (i=1; i < argc; i++) { + tm.tm_mday=atoi(strsep(argv+i,".")); + tm.tm_mon=atoi(strsep(argv+i,".")); + tm.tm_year=atoi(strsep(argv+i,".")); + + d=getDay(&tm,&name); + printf ("%d.%d.%d\t%d=%s\n", tm.tm_mday,tm.tm_mon, tm.tm_year,d,name); + } +} +#endif diff --git a/isdnlog/tools/holiday.h b/isdnlog/tools/holiday.h new file mode 100644 index 00000000..02c20eaa --- /dev/null +++ b/isdnlog/tools/holiday.h @@ -0,0 +1,53 @@ +/* $Id: holiday.h,v 1.1 1999/03/14 12:16:41 akool Exp $ + * + * Feiertagsberechnung + * + * Copyright 1999 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: holiday.h,v $ + * Revision 1.1 1999/03/14 12:16:41 akool + * - isdnlog Version 3.04 + * - general cleanup + * - new layout for "rate-xx.dat" and "holiday-xx.dat" files from + * Michael Reinelt + * unused by now - it's a work-in-progress ! + * - bugfix for Wolfgang Siefert + * The Agfeo AS 40 (Software release 2.1b) uses AOC_AMOUNT, not AOC_UNITS + * - bugfix for Ralf G. R. Bergs - 0800/xxx numbers + * are free of charge ;-) + * - tarif.dat V 1.08 - new mobil-rates DTAG + * + */ + +#ifndef _HOLIDAY_H_ +#define _HOLIDAY_H_ + +#define MONDAY 1 +#define THUESDAY 2 +#define WEDNESDAY 3 +#define THURSDAY 4 +#define FRIDAY 5 +#define SATURDAY 6 +#define SUNDAY 7 +#define HOLIDAY 8 + +int initHoliday(char *path); +void exitHoliday(void); +int isHoliday(struct tm *tm, char **name); +int getDay(struct tm *tm, char **name); + +#endif diff --git a/isdnlog/tools/rate-pta.c b/isdnlog/tools/rate-pta.c new file mode 100644 index 00000000..b2a41d69 --- /dev/null +++ b/isdnlog/tools/rate-pta.c @@ -0,0 +1,104 @@ +#include +#include + +char *Name[5] = { "Minimumtarif", + "Standartarif", + "Geschäftstarif 1", + "Geschäftstarif 2", + "Geschäftstarif 3" }; + +double Tarif[5] = { 1.116, + 1.056, + 0.996, + 0.936, + 0.816 }; + +char *Zone[30] = { "Regionalzone", + "Fernzone 1", + "Fernzone 2", + "Online-Tarif", + "Mobilfunk", + "Ausland Zone 1", + "Ausland Zone 2", + "Ausland Zone 3", + "Ausland Zone 4", + "Ausland Zone 5", + "Ausland Zone 6", + "Ausland Zone 7", + "Ausland Zone 8", + "Ausland Zone 9", + "Ausland Zone 10", + "Ausland Zone 11", + "Ausland Zone 12", + "Ausland Zone 13", + "Ausland Zone 14", + "Ausland Zone 15", + "Handvermittelter Verkehr", + "Grenznahverkehr", + "Teleinfo 04570", + "Teleinfo 04500 ", + "Telebusiness 04590", + "Teleinfo 04580", + "Businessline 0711x", + "Businessline 0713x", + "Businessline 0714x", + "Votingline 0717x" }; + +/* Einheiten in 72 sec */ + +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 */ + + +void main (void) +{ + int t, z; + + printf ("# created by rate-pta.c\n\n"); + printf ("V:1.0-Austria [11-Mar-1999]\n"); + + for (t=0; t<4; t++) { + printf ("\nP:00,%d\t\t\t\tPTA\n", t+1); + printf ("C:Name:\t\t\t\tPost & Telekom Austria\n"); + printf ("C:Tarif:\t\t\t%s (ATS %.3f / Impuls)\n", Name[t], Tarif[t]); + for (z=0; z<30; z++) { + printf ("\nZ:%d\t\t\t\t%s\n", z+1, Zone[z]); + if (Faktor[z][2]) printf ("T:1-5/06-08,18-20=%.3f/%.5g\tSparzeit\n", Tarif[t], 72.0/Faktor[z][2]); + if (Faktor[z][0]) printf ("T:1-5/08-12=%.3f/%.5g\t\tTageszeit 1\n", Tarif[t], 72.0/Faktor[z][0]); + if (Faktor[z][0]) printf ("T:1-4/13-16=%.3f/%.5g\t\tTageszeit 1\n", Tarif[t], 72.0/Faktor[z][0]); + if (Faktor[z][1]) printf ("T:1-4/12-13,16-18=%.3f/%.5g\tTageszeit 2\n", Tarif[t], 72.0/Faktor[z][1]); + if (Faktor[z][1]) printf ("T:5/12-18=%.3f/%.5g\t\tTageszeit 2\n", Tarif[t], 72.0/Faktor[z][1]); + if (Faktor[z][2]) printf ("T:E,H/06-20=%.3f/%.5g\t\tSparzeit\n", Tarif[t], 72.0/Faktor[z][2]); + if (Faktor[z][3]) printf ("T:*/20-06=%.3f/%.5g\t\tSupersparzeit\n", Tarif[t], 72.0/Faktor[z][3]); + } + } + +} diff --git a/isdnlog/tools/rate.c b/isdnlog/tools/rate.c new file mode 100644 index 00000000..836b1130 --- /dev/null +++ b/isdnlog/tools/rate.c @@ -0,0 +1,508 @@ +/* $Id: rate.c,v 1.1 1999/03/14 12:16:42 akool Exp $ + * + * Tarifdatenbank + * + * Copyright 1995, 1999 by Andreas Kool (akool@isdn4linux.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: rate.c,v $ + * Revision 1.1 1999/03/14 12:16:42 akool + * - isdnlog Version 3.04 + * - general cleanup + * - new layout for "rate-xx.dat" and "holiday-xx.dat" files from + * Michael Reinelt + * unused by now - it's a work-in-progress ! + * - bugfix for Wolfgang Siefert + * The Agfeo AS 40 (Software release 2.1b) uses AOC_AMOUNT, not AOC_UNITS + * - bugfix for Ralf G. R. Bergs - 0800/xxx numbers + * are free of charge ;-) + * - tarif.dat V 1.08 - new mobil-rates DTAG + * + */ + +/* + * Schnittstelle zur Tarifdatenbank: + * + * void exitRate(void) + * deinitialisiert die Tarifdatenbank + * + * void initRate(char *info) + * initialisiert die Tarifdatenbank, liefert Versionsinfo in `info' + * zurueck + * + * char *Providername(int prefix) + * liefert den Providernamen fuer Kennzahl `prefix', oder NULL, falls + * unbekannt + * + * char *Zonename(int prefix, int zone) + * liefert den Zonennamen fuer Provider `prefix', oder NULL, falls + * unbekannt + * + * int taktlaenge(int chan, char *why) + * liefert fuer die aktuell laufende Verbindung in `chan' + * die Laenge eines Tariftaktes in Sekunden, sowie evtl. in `why' + * eine textuelle Begruendung + * + * void preparecint(int chan, char *msg, char *hint) + * fuellt die aktuell laufende Verbindung in `chan' mit allen + * fuer die weitere Taktberechnung noetigen Daten + * liefert evtl. in `msg' sowie `hint' textuelle Informationen + * fuer die LCR-Optimierung + * + * void price(int chan, char *hint) + * berechnet fuer die gerade beendete Verbindung in `chan' den + * Endpreis, stellt diesen in `chan', und liefert in `hint' evtl. + * textuelle Informationen fuer die LCR-Optimierung + * + */ + +#define _RATE_C_ + +#include +#include +#include +#include +#include +#include +#include "rate.h" + +#define MAXPROVIDER 100 +#define LENGTH 250 /* max length of lines in data file */ +#define UNKNOWN -1 + +typedef unsigned long bitfield; + +typedef struct { + int Duration; + int Delay; + double Price; +} UNIT; + +typedef struct { + char *Name; + bitfield Day; + bitfield Hour; + int nUnit; + UNIT *Unit; +} RATE; + +typedef struct { + int used; + char *Name; + int nRate; + RATE *Rate; +} ZONE; + +typedef struct { + int used; + char *Name; + char *Internet; + int nZone; + ZONE *Zone; +} PROVIDER; + +static PROVIDER Provider[MAXPROVIDER]; +static int use[MAXPROVIDER]; +static int line=0; + +static void warning (char *fmt, ...) +{ + va_list ap; + char msg[BUFSIZ]; + + va_start (ap, fmt); + vsnprintf (msg, BUFSIZ, fmt, ap); + va_end (ap); +#ifdef STANDALONE + fprintf(stderr, "WARNING: line %3d: %s\n", line, msg); +#else + print_msg(PRT_NORMAL, "WARNING: line %3d: %s\n", line, msg); +#endif +} + +static char *strip (char *s) +{ + char *p; + + while (*s==' ' || *s=='\t') s++; + for (p=s; *p; p++) + if (*p=='#' || *p=='\n') { + *p='\0'; + break; + } + for (p--; p>s && (*p==' '||*p=='\t'); p--) + *p='\0'; + return s; +} + +void exitRate(void) +{ + int i, j, k; + + for (i=0; i= MAXPROVIDER)) { + warning ("Invalid provider-number %d", prefix); + continue; + } + use[prefix] = atoi(s+1); + break; + + default: + warning("Unknown tag '%c'", *s); + } + } + fclose (stream); + } + + if (!dat || !*dat || (stream=fopen(dat,"r"))==NULL) + return -1; + + line=0; + prefix=UNKNOWN; + while ((s=fgets(buffer,LENGTH,stream))!=NULL) { + line++; + if (*(s=strip(s))=='\0') + continue; + if (s[1]!=':') { + warning ("expected ':', got '%s'!", s+1);; + continue; + } + switch (*s) { + case 'P': /* P:nn[,v]=Bezeichnung */ + ignore = 0; + version = UNKNOWN; + zone1 = zone2 = UNKNOWN; + + prefix = strtol(s+2, &s ,10); + if (*s == ',') { + version = strtol(s+1, &s ,10); + } + if (*s == '=') s++; + if ((prefix < 0) || (prefix >= MAXPROVIDER)) { + warning ("Invalid provider-number %d", prefix); + continue; + } + if ((use[prefix]!=UNKNOWN) && (version!=UNKNOWN) && (use[prefix]!=version)) { + version = UNKNOWN; + ignore = 1; + continue; + } + if (Provider[prefix].used++) { + warning ("Duplicate entry for provider %d (%s)", prefix, Provider[prefix].Name); + if (Provider[prefix].Name) free(Provider[prefix].Name); + if (Provider[prefix].Internet) free(Provider[prefix].Internet); + } + Provider[prefix].Name=strdup(strip(s)); + Provider[prefix].Internet=NULL; + Provider[prefix].nZone=0; + Provider[prefix].Zone=NULL; + nProvider++; + break; + + case 'G': /* P:tt.mm.jjjj Rate gueltig ab */ + if (ignore) continue; + break; + + case 'C': /* C:Comment */ + if (ignore) continue; + break; + + case 'I': /* I:nnn Internet-Zugangsnummer */ + if (ignore) continue; + if (prefix == UNKNOWN) { + warning ("Unexpected tag '%c'", *s); + break; + } + Provider[prefix].Internet = strdup(s+2); + break; + + case 'Z': /* Z:n[-n][=]Bezeichnung */ + if (ignore) continue; + if (prefix == UNKNOWN) { + warning ("Unexpected tag '%c'", *s); + break; + } + zone1=strtol(s+2,&s,10); + if (*s=='-') zone2=strtol(s+1,&s,10); + else zone2=zone1; + if (*s=='=')s++; + if (zone1>zone2) { + i=zone2; zone2=zone1; zone1=i; + } + if (zone2>=Provider[prefix].nZone) { + Provider[prefix].Zone=realloc(Provider[prefix].Zone, (zone2+1)*sizeof(ZONE)); + Provider[prefix].nZone = zone2+1; + } + for (i=zone1; i<=zone2; i++) { + Provider[prefix].Zone[i].used=1; + Provider[prefix].Zone[i].Name=strdup(strip(s)); + Provider[prefix].Zone[i].nRate=0; + Provider[prefix].Zone[i].Rate=NULL; + nZone++; + } + break; + + case 'T': /* T:d-d/h-h=p/s:t[=]Bezeichnung */ + if (ignore) continue; + if (zone1 == UNKNOWN) { + warning ("Unexpected tag '%c'", *s); + break; + } + s+=2; + day=0; + while (1) { + if (*s=='*') { /* jeder Tag */ + day |= 0xff; /* 11111111 */ + s++; + } else if (*s=='W') { /* Wochentag 1-5 */ + day |= 0x1f; /* 00011111 */ + s++; + } else if (*s=='E') { /* Wochenende 6-7 */ + day |= 0x60; /* 01100000 */ + s++; + } else if (*s=='F'||*s=='H') { /* Feiertag (Holiday) */ + day |= 0x80; /* 10000000 */ + s++; + } else if (isdigit(*s)) { /* 1,2,3 oder 1-5 oder 6,7,F */ + day1=strtol(s,&s,10); + if (*s=='-') day2=strtol(++s,&s,10); + else day2=day1; + for (i=day1; i<=day2; i++) day|=(1<<(i-1)); + } else if (*s==',') { + s++; + } else if (*s=='/') { + s++; + break; + } else { + warning ("invalid day format '%s'", s); + day=0; + break; + } + } + + while (1) { + if (*s=='*') { /* jede Stunde */ + hour |= 0xffffff; /* alles 1er */ + s++; + } else if (isdigit(*s)) { /* 8-12 oder 1,5 */ + hour1=strtol(s,&s,10); + if (*s=='-') hour2=strtol(s+1,&s,10); + else hour2=hour1+1; + if (hour2>=hour1) + for (i=hour1; i=Provider[prefix].nZone) return (NULL); + if (!Provider[prefix].Zone[zone].used) return (NULL); + return(Provider[prefix].Zone[zone].Name); +} + +static double tpreis(int prefix, int zone, int day, int hour, int duration) +{ + bitfield dayMask, hourMask; + RATE *Rate; + UNIT *Unit; + double price; + int delay, i; + + if (!Provider[prefix].used) return UNKNOWN; + if (!Provider[prefix].Zone[zone].used) return UNKNOWN ; + + dayMask=1<<(day-1); + hourMask=1<Day & dayMask) && (Rate->Hour & hourMask)) + break; + } + if (i==Provider[prefix].Zone[zone].nRate) return UNKNOWN; + + i = 1; + price = 0.0; + delay = 0; + Unit = Rate->Unit; + while (duration>0) { + duration -= Unit->Duration; + delay += Unit->Duration; + price += Unit->Price; + if ((delay >= Unit->Delay) && (i < Rate->nUnit)) + Unit++; + } + + return price; +} + +#ifdef STANDALONE +void main (int argc, char *argv[]) +{ + char msg[BUFSIZ]; + int provider, zone, day, hour, duration; + + initRate ("../rate-at.conf", "../rate-at.dat", msg); + printf ("%s\n", msg); + + provider = 0; + zone = 1; + + printf ("Providername(%d) = %s\n", provider, Providername(provider)); + printf ("Zonename(%d,%d) = %s\n", provider, zone, Zonename(provider, zone)); + + day=1; + hour=12; + duration=300; + + printf ("tpreis(%d,%d,%d,%d,%d)=%f\n", provider, zone, day, hour, duration, tpreis(provider, zone, day, hour, duration)); +} +#endif diff --git a/isdnlog/tools/rate.h b/isdnlog/tools/rate.h new file mode 100644 index 00000000..8437f976 --- /dev/null +++ b/isdnlog/tools/rate.h @@ -0,0 +1,44 @@ +/* $Id: rate.h,v 1.1 1999/03/14 12:16:43 akool Exp $ + * + * Tarifdatenbank + * + * Copyright 1995, 1999 by Andreas Kool (akool@isdn4linux.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: rate.h,v $ + * Revision 1.1 1999/03/14 12:16:43 akool + * - isdnlog Version 3.04 + * - general cleanup + * - new layout for "rate-xx.dat" and "holiday-xx.dat" files from + * Michael Reinelt + * unused by now - it's a work-in-progress ! + * - bugfix for Wolfgang Siefert + * The Agfeo AS 40 (Software release 2.1b) uses AOC_AMOUNT, not AOC_UNITS + * - bugfix for Ralf G. R. Bergs - 0800/xxx numbers + * are free of charge ;-) + * - tarif.dat V 1.08 - new mobil-rates DTAG + * + */ + +#ifndef _RATE_H_ +#define _RATE_H_ + +void exitRate(void); +int initRate(char *conf, char *dat, char *msg); +char *Providername(int prefix); +char *Zonename(int prefix, int zone); + +#endif diff --git a/isdnlog/tools/tools.c b/isdnlog/tools/tools.c index a739406e..43d412c6 100644 --- a/isdnlog/tools/tools.c +++ b/isdnlog/tools/tools.c @@ -1,4 +1,4 @@ -/* $Id: tools.c,v 1.18 1999/02/28 19:33:48 akool Exp $ +/* $Id: tools.c,v 1.19 1999/03/14 12:16:44 akool Exp $ * * ISDN accounting for isdn4linux. (Utilities) * @@ -19,6 +19,18 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Log: tools.c,v $ + * Revision 1.19 1999/03/14 12:16:44 akool + * - isdnlog Version 3.04 + * - general cleanup + * - new layout for "rate-xx.dat" and "holiday-xx.dat" files from + * Michael Reinelt + * unused by now - it's a work-in-progress ! + * - bugfix for Wolfgang Siefert + * The Agfeo AS 40 (Software release 2.1b) uses AOC_AMOUNT, not AOC_UNITS + * - bugfix for Ralf G. R. Bergs - 0800/xxx numbers + * are free of charge ;-) + * - tarif.dat V 1.08 - new mobil-rates DTAG + * * Revision 1.18 1999/02/28 19:33:48 akool * Fixed a typo in isdnconf.c from Andreas Jaeger * CHARGEMAX fix from Oliver Lauer @@ -511,7 +523,7 @@ char *double2clock(double n) char *vnum(int chan, int who) { - register int l = strlen(call[chan].num[who]), got = 0; + register int l = strlen(call[chan].num[who]), got = 0, l1; register int flag = C_NO_WARN | C_NO_EXPAND; auto char *ptr; auto int ll, lx; @@ -550,8 +562,12 @@ char *vnum(int chan, int who) if (cnf > -1) strcpy(retstr[retnum], call[chan].alias[who]); - else if (call[chan].sondernummer[who] != -1) + else if (call[chan].sondernummer[who] != -1) { + if ((l1 = strlen(SN[call[chan].sondernummer[who]].number)) < l) + sprintf(retstr[retnum], "%s - %s", SN[call[chan].sondernummer[who]].info, call[chan].num[who] + l1); + else strcpy(retstr[retnum], SN[call[chan].sondernummer[who]].info); + } else sprintf(retstr[retnum], "TN %s", call[chan].num[who]);