isdnlog-4.38
- isdnlog now uses ioctl(IIOCNETGPN) to associate phone numbers, interfaces and slots in "/dev/isdninfo". This requires a Linux-Kernel 2.2.12 or better. Support for older Kernel's are implemented. If IIOCNETGPN is available, the entries "INTERFACE = xxx" in "/etc/isdn/isdn.conf" are obsolete. - added 01013:Tele2 totally Freecall on 12. and 13. August 2000 - resolved *any* warning's from "rate-de.dat" (once more ...) - Patch from oliver@escape.de (Oliver Wellnitz) against "Ziffernwahl verschluckt Nummern" **Please "make clean" before using this version of isdnlog!!**
This commit is contained in:
parent
5c99c0e3b7
commit
79607ee6e2
|
@ -1,4 +1,4 @@
|
|||
## $Id: Makefile.in,v 1.176 2000/08/04 11:08:26 paul Exp $
|
||||
## $Id: Makefile.in,v 1.177 2000/08/06 13:06:52 akool Exp $
|
||||
##
|
||||
## ISDN accounting for isdn4linux.
|
||||
##
|
||||
|
@ -19,6 +19,21 @@
|
|||
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
##
|
||||
## $Log: Makefile.in,v $
|
||||
## Revision 1.177 2000/08/06 13:06:52 akool
|
||||
## isdnlog-4.38
|
||||
## - isdnlog now uses ioctl(IIOCNETGPN) to associate phone numbers, interfaces
|
||||
## and slots in "/dev/isdninfo".
|
||||
## This requires a Linux-Kernel 2.2.12 or better.
|
||||
## Support for older Kernel's are implemented.
|
||||
## If IIOCNETGPN is available, the entries "INTERFACE = xxx" in
|
||||
## "/etc/isdn/isdn.conf" are obsolete.
|
||||
## - added 01013:Tele2 totally Freecall on 12. and 13. August 2000
|
||||
## - resolved *any* warning's from "rate-de.dat" (once more ...)
|
||||
## - Patch from oliver@escape.de (Oliver Wellnitz) against
|
||||
## "Ziffernwahl verschluckt Nummern"
|
||||
##
|
||||
## **Please "make clean" before using this version of isdnlog!!**
|
||||
##
|
||||
## Revision 1.176 2000/08/04 11:08:26 paul
|
||||
## Also remove *.gdbm in distclean target
|
||||
##
|
||||
|
@ -1337,7 +1352,7 @@ SERVICEFILE = /etc/services
|
|||
# DON'T EDIT BELOW THIS LINE
|
||||
######################################################################
|
||||
|
||||
VERSION = 4.37
|
||||
VERSION = 4.38
|
||||
|
||||
MANPAGES = isdnlog/callerid.conf.5 isdnlog/isdn.conf.5 \
|
||||
isdnlog/isdnformat.5 isdnlog/isdnlog.5 isdnlog/isdnlog.8 \
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
ISDNLOG - Version 4.37 - 27-July-2000
|
||||
ISDNLOG - Version 4.38 - 04-Aug-2000
|
||||
|
||||
|
||||
isdnlog ist ein Utility zur Auswertung des D-Kanals eines
|
||||
ISDN-BRI Anschlusses.
|
||||
|
||||
isdnlog-4.25 wurde ausgiebig mit Linux-2.0.38, Linux-2.2.14 sowie
|
||||
isdnlog-4.25 wurde ausgiebig mit Linux-2.0.38, Linux-2.2.16-SMP sowie
|
||||
Linux-2.3.35 getestet.
|
||||
|
||||
|
||||
|
@ -1183,9 +1183,14 @@ Lage ist, die Zone des Gegners zu ermitteln.
|
|||
------------------------------
|
||||
|
||||
Dieser Eintrag repraesentiert das IP-Interface, welches auf dieser
|
||||
Nummer konfiguriert wurde, oder ein "-", falls dieser Nummer kein
|
||||
Rufnummer konfiguriert wurde, oder ein "-", falls dieser Nummer kein
|
||||
IP-Interface zugeordnet wurde.
|
||||
Diese Information wird fuer die "-hx" huptimeout Option benoetigt.
|
||||
Diese Information wird fuer die "-hx" huptimeout Option sowie
|
||||
fuer die Anzeige des Durchsatzes (ibytes/obytes) benoetigt.
|
||||
|
||||
Ab Linux-2.2.12 sowie isdnlog-4.38 ist dieser Eintrag obsolete,
|
||||
und kann daher ersatzlos entfallen, da isdnlog ab diesen Versionen das
|
||||
Interface selbstst„ndig detektieren kann.
|
||||
|
||||
Beispiel:
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: processor.c,v 1.110 2000/08/01 20:31:30 akool Exp $
|
||||
/* $Id: processor.c,v 1.111 2000/08/06 13:06:53 akool Exp $
|
||||
*
|
||||
* ISDN accounting for isdn4linux. (log-module)
|
||||
*
|
||||
|
@ -19,6 +19,21 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log: processor.c,v $
|
||||
* Revision 1.111 2000/08/06 13:06:53 akool
|
||||
* isdnlog-4.38
|
||||
* - isdnlog now uses ioctl(IIOCNETGPN) to associate phone numbers, interfaces
|
||||
* and slots in "/dev/isdninfo".
|
||||
* This requires a Linux-Kernel 2.2.12 or better.
|
||||
* Support for older Kernel's are implemented.
|
||||
* If IIOCNETGPN is available, the entries "INTERFACE = xxx" in
|
||||
* "/etc/isdn/isdn.conf" are obsolete.
|
||||
* - added 01013:Tele2 totally Freecall on 12. and 13. August 2000
|
||||
* - resolved *any* warning's from "rate-de.dat" (once more ...)
|
||||
* - Patch from oliver@escape.de (Oliver Wellnitz) against
|
||||
* "Ziffernwahl verschluckt Nummern"
|
||||
*
|
||||
* **Please "make clean" before using this version of isdnlog!!**
|
||||
*
|
||||
* Revision 1.110 2000/08/01 20:31:30 akool
|
||||
* isdnlog-4.37
|
||||
* - removed "09978 Schoenthal Oberpfalz" from "zone-de.dtag.cdb". Entry was
|
||||
|
@ -1056,6 +1071,7 @@ static void processlcr(char *p);
|
|||
static int HiSax = 0, hexSeen = 0, uid = UNKNOWN, lfd = 0;
|
||||
static char *asnp, *asnm = NULL;
|
||||
static int chanused[2] = { 0, 0 };
|
||||
static int IIOCNETGPNavailable = -1; /* -1 = unknown, 0 = no, 1 = yes */
|
||||
|
||||
#ifdef Q931
|
||||
#define Q931dmp q931dmp
|
||||
|
@ -1064,6 +1080,9 @@ static int chanused[2] = { 0, 0 };
|
|||
#endif
|
||||
|
||||
|
||||
#define INTERFACE ((IIOCNETGPNavailable == 1) ? call[chan].interface : known[call[chan].confentry[OTHER]]->interface)
|
||||
|
||||
|
||||
static void Q931dump(int mode, int val, char *msg, int version)
|
||||
{
|
||||
#ifdef Q931
|
||||
|
@ -1663,7 +1682,7 @@ static void emergencyStop(int chan, int strength)
|
|||
if (strength == 1) {
|
||||
if (c == -1)
|
||||
strength++;
|
||||
else if (*known[c]->interface < '@')
|
||||
else if (*INTERFACE < '@')
|
||||
strength++;
|
||||
} /* if */
|
||||
|
||||
|
@ -1674,7 +1693,7 @@ static void emergencyStop(int chan, int strength)
|
|||
strength++;
|
||||
|
||||
switch (strength) {
|
||||
case 1 : cc = replay ? 0 : ioctl(sockets[ISDNCTRL].descriptor, IIOCNETHUP, known[c]->interface);
|
||||
case 1 : cc = replay ? 0 : ioctl(sockets[ISDNCTRL].descriptor, IIOCNETHUP, INTERFACE);
|
||||
|
||||
if (cc < 0)
|
||||
p = "failed";
|
||||
|
@ -1684,7 +1703,7 @@ static void emergencyStop(int chan, int strength)
|
|||
p = "hung up";
|
||||
|
||||
sprintf(msg, "EMERGENCY-STOP#%d: no traffic since %d EH: hangup %s = %s\007\007",
|
||||
strength, call[chan].aoce - call[chan].traffic, known[c]->interface, p);
|
||||
strength, call[chan].aoce - call[chan].traffic, INTERFACE, p);
|
||||
break;
|
||||
|
||||
case 2 : (void)detach();
|
||||
|
@ -1896,7 +1915,7 @@ static void decode(int chan, register char *p, int type, int version, int tei)
|
|||
sprintf(s, "%s (%s)", qmsg(TYPE_CAUSE, version, call[chan].cause), py);
|
||||
|
||||
if (tei == call[chan].tei)
|
||||
info(chan, PRT_SHOWCAUSE, STATE_CAUSE, s);
|
||||
info(chan, PRT_SHOWCAUSE, STATE_CAUSE, s);
|
||||
else if (other) {
|
||||
auto char sx[256];
|
||||
|
||||
|
@ -2119,7 +2138,7 @@ static void decode(int chan, register char *p, int type, int version, int tei)
|
|||
/* seit 2 Gebuehrentakten kein Traffic mehr! */
|
||||
|
||||
if (!replay && watchdog && ((c = call[chan].confentry[OTHER]) > -1)) {
|
||||
if ((type == FACILITY) && (version == VERSION_EDSS1) && expensive(call[chan].bchan) && (*known[c]->interface > '@')) {
|
||||
if ((type == FACILITY) && (version == VERSION_EDSS1) && expensive(call[chan].bchan) && (*INTERFACE > '@')) {
|
||||
if (call[chan].aoce > call[chan].traffic + watchdog + 2)
|
||||
emergencyStop(chan, 4);
|
||||
else if (call[chan].aoce > call[chan].traffic + watchdog + 1)
|
||||
|
@ -3203,10 +3222,10 @@ static void huptime(int chan, int setup)
|
|||
if (replay)
|
||||
net_dv = 4;
|
||||
|
||||
if (hupctrl && (c != UNKNOWN) && (*known[c]->interface > '@') /* && expensive(call[chan].bchan) */) {
|
||||
if (hupctrl && (c != UNKNOWN) && (*INTERFACE > '@') /* && expensive(call[chan].bchan) */) {
|
||||
memset(&cfg, 0, sizeof(cfg)); /* clear in case of older kernel */
|
||||
|
||||
strcpy(cfg.name, known[c]->interface);
|
||||
strcpy(cfg.name, INTERFACE);
|
||||
|
||||
if (replay || (ioctl(sockets[ISDNCTRL].descriptor, IIOCNETGCF, &cfg) >= 0)) {
|
||||
#if NET_DV >= NETDV_CHARGEINT
|
||||
|
@ -3216,7 +3235,7 @@ static void huptime(int chan, int setup)
|
|||
call[chan].huptimeout = oldhuptimeout = cfg.onhtime;
|
||||
|
||||
if (!oldhuptimeout && !replay) {
|
||||
sprintf(sx, "HUPTIMEOUT %s is *disabled* - unchanged", known[c]->interface);
|
||||
sprintf(sx, "HUPTIMEOUT %s is *disabled* - unchanged", INTERFACE);
|
||||
info(chan, PRT_SHOWNUMBERS, STATE_HUPTIMEOUT, sx);
|
||||
return;
|
||||
} /* if */
|
||||
|
@ -3265,22 +3284,22 @@ static void huptime(int chan, int setup)
|
|||
|
||||
if (replay || (ioctl(sockets[ISDNCTRL].descriptor, IIOCNETSCF, &cfg) >= 0)) {
|
||||
sprintf(sx, "CHARGEINT %s %d (was %d)%s%s",
|
||||
known[c]->interface, newchargeint, oldchargeint, (*why ? " - " : ""), why);
|
||||
INTERFACE, newchargeint, oldchargeint, (*why ? " - " : ""), why);
|
||||
|
||||
info(chan, PRT_INFO, STATE_HUPTIMEOUT, sx);
|
||||
|
||||
sprintf(sx, "HUPTIMEOUT %s %d (was %d)",
|
||||
known[c]->interface, newhuptimeout, oldhuptimeout);
|
||||
INTERFACE, newhuptimeout, oldhuptimeout);
|
||||
|
||||
info(chan, PRT_INFO, STATE_HUPTIMEOUT, sx);
|
||||
} /* if */
|
||||
}
|
||||
else {
|
||||
sprintf(sx, "CHARGEINT %s still %d%s%s", known[c]->interface,
|
||||
sprintf(sx, "CHARGEINT %s still %d%s%s", INTERFACE,
|
||||
oldchargeint, (*why ? " - " : ""), why);
|
||||
info(chan, PRT_SHOWNUMBERS, STATE_HUPTIMEOUT, sx);
|
||||
|
||||
sprintf(sx, "HUPTIMEOUT %s still %d", known[c]->interface, oldhuptimeout);
|
||||
sprintf(sx, "HUPTIMEOUT %s still %d", INTERFACE, oldhuptimeout);
|
||||
info(chan, PRT_SHOWNUMBERS, STATE_HUPTIMEOUT, sx);
|
||||
} /* else */
|
||||
} /* if */
|
||||
|
@ -3315,7 +3334,78 @@ static void oops(int where)
|
|||
sprintf(s, "WARNING \"hisaxctrl %s 1 4\" called! (#%d)", ifo[0].id, where);
|
||||
info(0, PRT_ERR, STATE_AOCD, s);
|
||||
|
||||
} /* if */
|
||||
} /* oops */
|
||||
|
||||
|
||||
static int findinterface()
|
||||
{
|
||||
#ifdef IIOCNETGPN
|
||||
register char *p;
|
||||
auto FILE *iflst;
|
||||
auto char s[255], name[10], sx[BUFSIZ];
|
||||
auto isdn_net_ioctl_phone phone;
|
||||
auto int rc, chan, l, l1, l2, lmin, lmax, ldiv, match;
|
||||
|
||||
|
||||
if ((iflst = fopen("/proc/net/dev", "r")) == NULL)
|
||||
return(-1);
|
||||
|
||||
while (fgets(s, sizeof(s), iflst)) {
|
||||
if ((p = strchr(s, ':'))) {
|
||||
*p = 0;
|
||||
sscanf(s, "%s", name);
|
||||
|
||||
memset(&phone, 0, sizeof(phone));
|
||||
strncpy(phone.name, name, sizeof(phone.name));
|
||||
rc = ioctl(sockets[ISDNINFO].descriptor, IIOCNETGPN, &phone);
|
||||
|
||||
if (!rc) { /* 'name' connected from/to 'phone.phone' */
|
||||
l1 = strlen(phone.phone);
|
||||
|
||||
for (chan = 0; chan < MAXCHAN; chan++) {
|
||||
l2 = strlen(call[chan].onum[OTHER]);
|
||||
|
||||
if (l2) {
|
||||
lmin = min(l1, l2);
|
||||
lmax = max(l1, l2);
|
||||
ldiv = lmax - lmin;
|
||||
|
||||
if (lmin == lmax)
|
||||
match = !strcmp(phone.phone, call[chan].onum[OTHER]);
|
||||
else if (l1 > l2)
|
||||
match = !strcmp(phone.phone + ldiv, call[chan].onum[OTHER]);
|
||||
else
|
||||
match = !strcmp(phone.phone, call[chan].onum[OTHER] + ldiv);
|
||||
|
||||
if (match) {
|
||||
strcpy(call[chan].interface, name);
|
||||
strcpy(call[chan].fnum, phone.phone); /* "fnum" -> Fritz-Num. Rufnummer, wie Fritz (Elfert) alias Link-Level sie intern haelt (also z.b. evtl. mit vorlaufendem "R") */
|
||||
|
||||
sprintf(sx, "INTERFACE %s %s %s", call[chan].interface,
|
||||
(call[chan].dialin ? "called by" : "calling"),
|
||||
call[chan].fnum);
|
||||
info(chan, PRT_SHOWNUMBERS, STATE_HUPTIMEOUT, sx);
|
||||
|
||||
break;
|
||||
} /* if */
|
||||
} /* if */
|
||||
} /* for */
|
||||
}
|
||||
else if (errno == EINVAL) {
|
||||
info(chan, PRT_SHOWNUMBERS, STATE_HUPTIMEOUT, "Sorry, IIOCNETGPN not available in your kernel (2.2.12 or higher is required)");
|
||||
return(0);
|
||||
} /* else */
|
||||
|
||||
} /* if */
|
||||
} /* while */
|
||||
|
||||
fclose(iflst);
|
||||
|
||||
return(1);
|
||||
#else
|
||||
return(0);
|
||||
#endif
|
||||
} /* findinterface */
|
||||
|
||||
|
||||
static void processbytes()
|
||||
|
@ -3488,13 +3578,21 @@ static void processinfo(char *s)
|
|||
break;
|
||||
|
||||
if (!Q931dmp) {
|
||||
print_msg(PRT_NORMAL, "(ISDN subsystem with ISDN_MAX_CHANNELS > 16 detected - %d active channels, %d MSN/SI entries)\n", chans, mymsns);
|
||||
print_msg(PRT_NORMAL, "(ISDN subsystem with ISDN_MAX_CHANNELS > 16 detected, ioctl(IIOCNETGPN) is %savailable)\n",
|
||||
IIOCNETGPNavailable = findinterface() ? "" : "un");
|
||||
print_msg(PRT_NORMAL, "isdn.conf:%d active channels, %d MSN/SI entries\n", chans, mymsns);
|
||||
|
||||
if (dual) {
|
||||
if (hfcdual)
|
||||
print_msg(PRT_NORMAL, "(watching \"%s\" as HFC/echo mode)\n", isdnctrl);
|
||||
else
|
||||
print_msg(PRT_NORMAL, "(watching \"%s\" and \"%s\")\n", isdnctrl, isdnctrl2);
|
||||
} /* if */
|
||||
|
||||
if (IIOCNETGPNavailable)
|
||||
print_msg(PRT_NORMAL, "Everything is fine, isdnlog-%s is running in full featured mode.\n", VERSION);
|
||||
else
|
||||
print_msg(PRT_NORMAL, "HINT: Please upgrade to Linux-2.2.12 or higher for all features of isdnlog-%s\n", VERSION);
|
||||
} /* if */
|
||||
|
||||
/*
|
||||
|
@ -3575,7 +3673,7 @@ static void processinfo(char *s)
|
|||
#endif
|
||||
|
||||
for (chan = 0; chan < MAXCHAN; chan++)
|
||||
if (memcmp(ifo[j].n, "???", 3) && !strcmp(ifo[j].n, call[chan].onum[OTHER])) {
|
||||
if (memcmp(ifo[j].n, "???", 3) && !strcmp(ifo[j].n, (IIOCNETGPNavailable == 1) ? call[chan].fnum : call[chan].onum[OTHER])) {
|
||||
call[chan].bchan = j;
|
||||
|
||||
strcpy(call[chan].id, ifo[j].id);
|
||||
|
@ -3686,7 +3784,8 @@ void clearchan(int chan, int total)
|
|||
else
|
||||
for (i = 0; i < MAXMSNS; i++)
|
||||
*call[chan].onum[i] =
|
||||
*call[chan].num[i] = 0;
|
||||
*call[chan].num[i] =
|
||||
*call[chan].interface = 0;
|
||||
|
||||
call[chan].bchan = -1;
|
||||
|
||||
|
@ -4082,7 +4181,7 @@ static void processctrl(int card, char *s)
|
|||
if (!memcmp(ps, "D2", 2)) { /* AVMB1 */
|
||||
if (firsttime) {
|
||||
firsttime = 0;
|
||||
print_msg (PRT_NORMAL, "(AVM B1 driver detected (D2))\n");
|
||||
print_msg (PRT_NORMAL, "(AVM B1 driver detected (D2))");
|
||||
} /* if */
|
||||
memcpy(ps, "HEX: ", 5);
|
||||
} /* if */
|
||||
|
@ -4090,7 +4189,7 @@ static void processctrl(int card, char *s)
|
|||
if (!memcmp(ps, "DTRC:", 5)) { /* Eicon Driver */
|
||||
if (firsttime) {
|
||||
firsttime = 0;
|
||||
print_msg (PRT_NORMAL, "(Eicon active driver detected)\n");
|
||||
print_msg (PRT_NORMAL, "(Eicon active driver detected)");
|
||||
} /* if */
|
||||
memcpy(ps, "HEX: ", 5);
|
||||
} /* if */
|
||||
|
@ -4104,7 +4203,7 @@ static void processctrl(int card, char *s)
|
|||
firsttime = 0;
|
||||
|
||||
if (!Q931dmp)
|
||||
print_msg(PRT_NORMAL, "(HiSax driver detected)\n");
|
||||
print_msg(PRT_NORMAL, "(HiSax driver detected)");
|
||||
|
||||
HiSax = 1;
|
||||
strcpy(last, s);
|
||||
|
@ -4259,7 +4358,7 @@ static void processctrl(int card, char *s)
|
|||
|
||||
if (firsttime) {
|
||||
firsttime = 0;
|
||||
print_msg(PRT_NORMAL, "(AVM B1 driver detected (D3))\n");
|
||||
print_msg(PRT_NORMAL, "(AVM B1 driver detected (D3))");
|
||||
} /* if */
|
||||
|
||||
if (*(ps + 2) == '<') /* this is our "direction flag" */
|
||||
|
@ -4470,11 +4569,13 @@ static void processctrl(int card, char *s)
|
|||
|
||||
chan = call[chan].channel - 1;
|
||||
|
||||
/* 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);
|
||||
if (!chanused[chan]) {
|
||||
/* 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);
|
||||
} /* if */
|
||||
}
|
||||
else
|
||||
print_msg(PRT_DEBUG_BUGS, " DEBUG> %s: OOPS, C_PROC/S_ACK ohne channel? tei %d\n",
|
||||
|
@ -4625,7 +4726,7 @@ static void processctrl(int card, char *s)
|
|||
|
||||
info(chan, PRT_SHOWCHARGEMAX, STATE_AOCD, s1);
|
||||
|
||||
if (((known[c]->charge + call[chan].pay) >= chargemax) && (*known[c]->interface > '@'))
|
||||
if (((known[c]->charge + call[chan].pay) >= chargemax) && (*INTERFACE > '@'))
|
||||
chargemaxAction(chan, (known[c]->charge + call[chan].pay - chargemax));
|
||||
} /* if */
|
||||
|
||||
|
@ -4648,6 +4749,9 @@ static void processctrl(int card, char *s)
|
|||
} /* if */
|
||||
} /* if */
|
||||
|
||||
if (IIOCNETGPNavailable)
|
||||
IIOCNETGPNavailable = findinterface();
|
||||
|
||||
if (sound)
|
||||
ringer(chan, RING_CONNECT);
|
||||
|
||||
|
@ -5463,7 +5567,7 @@ void processcint()
|
|||
|
||||
info(chan, PRT_SHOWCHARGEMAX, STATE_AOCD, s1);
|
||||
|
||||
if (((known[c]->charge + call[chan].pay) >= chargemax) && (*known[c]->interface > '@'))
|
||||
if (((known[c]->charge + call[chan].pay) >= chargemax) && (*INTERFACE > '@'))
|
||||
chargemaxAction(chan, (known[c]->charge + call[chan].pay - chargemax));
|
||||
} /* if */
|
||||
} /* if */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
V:1.10-Germany [01-Aug-2000 21:46:58]
|
||||
V:1.10-Germany [06-Aug-2000 15:01:56]
|
||||
|
||||
# Währungsformat
|
||||
U:%.3f DM
|
||||
|
@ -8,7 +8,7 @@ U:%.3f DM
|
|||
#
|
||||
# (C) Copyright 1999, 2000 by Andreas Kool (akool@isdn4linux.de)
|
||||
#
|
||||
# $Id: rate-de.dat,v 1.103 2000/08/01 20:31:29 akool Exp $
|
||||
# $Id: rate-de.dat,v 1.104 2000/08/06 13:06:52 akool Exp $
|
||||
#
|
||||
#
|
||||
# Das "A:" Tag muß folgendermaßen gefüllt werden:
|
||||
|
@ -205,6 +205,7 @@ N:0192361 # L
|
|||
N:01924924 # Internet Private CbC Telepassport # 0102401924924 (User:beliebig: pw:beliebig)
|
||||
N:019251 # Talknet (Talkline) # 01050019251 (User:talknet: pw:talknet)
|
||||
N:0192658 # MSN Easysurfer (Worldcom/UUnet) # 0192658 (User:beliebig; pw:beliebig)
|
||||
N:0192666120# MDS-Online # 010750192666120(User:mds; pw:online)
|
||||
N:01928111 # comsign AG surfsolution # 0101901928111 (User:beliebig; pw:beliebig)
|
||||
N:01928120 # eXpress-Net eXpress-Dial # 0101901928120 (User:beliebig; pw:beliebig)
|
||||
N:01928121 # netweaver netweaver # 0101901928121 (User:beliebig; pw:beliebig)
|
||||
|
@ -3404,16 +3405,15 @@ A:+49
|
|||
T:[11.06.2000-12.06.2000]*/*=0 Pfingstangebot
|
||||
T:[02.07.2000-03.07.2000]*/*=0 Sonderangebot
|
||||
T:[16.07.2000-17.07.2000]*/*=0 Sonderangebot
|
||||
T:W/06-18=0.06/60
|
||||
T:W/18-06=0.04/60
|
||||
T:E,H/*=0.04/60
|
||||
T:[12.08.2000-14.08.2000]*/*=0 Sonderangebot
|
||||
T:[-11.08.2000]W/06-18=0.06/60
|
||||
T:[-11.08.2000]W/18-06=0.04/60
|
||||
T:[-11.08.2000]E,H/*=0.04/60
|
||||
T:[14.08.2000-]W/06-18=0.06/60
|
||||
T:[14.08.2000-]W/18-06=0.04/60
|
||||
T:[14.08.2000-]E,H/*=0.04/60
|
||||
Z:10 Mobilfunknetz
|
||||
A:_DEMCM
|
||||
A:_DEMC
|
||||
A:_DEMD1
|
||||
A:_DEMD2
|
||||
A:_DEME1
|
||||
A:_DEME2
|
||||
A:_DEMF
|
||||
T:*/*=0.38/60
|
||||
Z:200 Euro 1 / USA, Kanada # gilt *NICHT* für Mobilfunknetze in diese Länder!
|
||||
A:US,CA,NL,BE,FR,ES
|
||||
|
@ -3487,16 +3487,18 @@ A:112
|
|||
T:*/*=0
|
||||
Z:1-4 National
|
||||
A:+49
|
||||
T:W/06-18=0.06(60)/1
|
||||
T:W/18-06=0.04(60)/1
|
||||
T:E,H/*=0.04(60)/1
|
||||
T:[11.06.2000-12.06.2000]*/*=0 Pfingstangebot
|
||||
T:[02.07.2000-03.07.2000]*/*=0 Sonderangebot
|
||||
T:[16.07.2000-17.07.2000]*/*=0 Sonderangebot
|
||||
T:[12.08.2000-14.08.2000]*/*=0 Sonderangebot
|
||||
T:[-11.08.2000]W/06-18=0.06(60)/1
|
||||
T:[-11.08.2000]W/18-06=0.04(60)/1
|
||||
T:[-11.08.2000]E,H/*=0.04(60)/1
|
||||
T:[14.08.2000-]W/06-18=0.06(60)/1
|
||||
T:[14.08.2000-]W/18-06=0.04(60)/1
|
||||
T:[14.08.2000-]E,H/*=0.04(60)/1
|
||||
Z:10 Mobilfunknetz
|
||||
A:_DEMCM
|
||||
A:_DEMC
|
||||
A:_DEMD1
|
||||
A:_DEMD2
|
||||
A:_DEME1
|
||||
A:_DEME2
|
||||
A:_DEMF
|
||||
T:*/*=0.38(60)/1
|
||||
Z:200 Euro 1 / USA, Kanada
|
||||
A:US,CA,NL,BE,FR,ES
|
||||
|
@ -11071,7 +11073,7 @@ A:BB,BO,PY
|
|||
T:*/*=1.19(60)/1
|
||||
Z:238 International 39
|
||||
A:GQ,BZ,BJ,BF,HN,JO,CM
|
||||
A:CV,CG,QA,_LBMF
|
||||
A:CV,QA,_LBMF
|
||||
A:MG,MV,ML,FM,MN,OM,_PAMF
|
||||
A:_PEMF,LK,SH,SY,TT
|
||||
T:*/*=1.29(60)/1
|
||||
|
@ -13774,9 +13776,10 @@ T:*/*=0.319/60
|
|||
Z:382 Senegal
|
||||
A:SN
|
||||
T:*/*=1.989/60
|
||||
Z:383 Serbien
|
||||
A:YU
|
||||
T:*/*=1.049/60
|
||||
# FIXME: Bug in "country-de.dat", Dublette
|
||||
# Z:383 Serbien
|
||||
# A:Serbien
|
||||
# T:*/*=1.049/60
|
||||
Z:384 Seychellen
|
||||
A:SC
|
||||
T:*/*=2.279/60
|
||||
|
@ -15275,9 +15278,10 @@ T:*/*=0.319/60
|
|||
Z:382 Senegal
|
||||
A:SN
|
||||
T:*/*=1.989/60
|
||||
Z:383 Serbien
|
||||
A:YU
|
||||
T:*/*=1.049/60
|
||||
# FIXME: Bug in "country-de.dat", Dublette
|
||||
# Z:383 Serbien
|
||||
# A:Serbien
|
||||
# T:*/*=1.049/60
|
||||
Z:384 Seychellen
|
||||
A:SC
|
||||
T:*/*=2.279/60
|
||||
|
@ -16024,9 +16028,10 @@ T:*/*=0.319(60)/1
|
|||
Z:382 Senegal
|
||||
A:SN
|
||||
T:*/*=1.989(60)/1
|
||||
Z:383 Serbien
|
||||
A:YU
|
||||
T:*/*=1.049(60)/1
|
||||
# FIXME: Bug in "country-de.dat", Dublette
|
||||
# Z:383 Serbien
|
||||
# A:Serbien
|
||||
# T:*/*=1.049(60)/1
|
||||
Z:384 Seychellen
|
||||
A:SC
|
||||
T:*/*=2.279(60)/1
|
||||
|
@ -16769,9 +16774,10 @@ T:*/*=0.319/60
|
|||
Z:382 Senegal
|
||||
A:SN
|
||||
T:*/*=1.989/60
|
||||
Z:383 Serbien
|
||||
A:YU
|
||||
T:*/*=1.049/60
|
||||
# FIXME: Bug in "country-de.dat", Dublette
|
||||
# Z:383 Serbien
|
||||
# A:Serbien
|
||||
# T:*/*=1.049/60
|
||||
Z:384 Seychellen
|
||||
A:SC
|
||||
T:*/*=2.279/60
|
||||
|
@ -17516,9 +17522,10 @@ T:*/*=0.319(60)/1
|
|||
Z:382 Senegal
|
||||
A:SN
|
||||
T:*/*=1.989(60)/1
|
||||
Z:383 Serbien
|
||||
A:YU
|
||||
T:*/*=1.049(60)/1
|
||||
# FIXME: Bug in "country-de.dat", Dublette
|
||||
# Z:383 Serbien
|
||||
# A:Serbien
|
||||
# T:*/*=1.049(60)/1
|
||||
Z:384 Seychellen
|
||||
A:SC
|
||||
T:*/*=2.279(60)/1
|
||||
|
@ -18263,9 +18270,10 @@ T:*/*=0.319/60
|
|||
Z:382 Senegal
|
||||
A:SN
|
||||
T:*/*=1.989/60
|
||||
Z:383 Serbien
|
||||
A:YU
|
||||
T:*/*=1.049/60
|
||||
# FIXME: Bug in "country-de.dat", Dublette
|
||||
# Z:383 Serbien
|
||||
# A:Serbien
|
||||
# T:*/*=1.049/60
|
||||
Z:384 Seychellen
|
||||
A:SC
|
||||
T:*/*=2.279/60
|
||||
|
@ -19011,9 +19019,10 @@ T:*/*=0.319(60)/1
|
|||
Z:382 Senegal
|
||||
A:SN
|
||||
T:*/*=1.989(60)/1
|
||||
Z:383 Serbien
|
||||
A:YU
|
||||
T:*/*=1.049(60)/1
|
||||
# FIXME: Bug in "country-de.dat", Dublette
|
||||
# Z:383 Serbien
|
||||
# A:Serbien
|
||||
# T:*/*=1.049(60)/1
|
||||
Z:384 Seychellen
|
||||
A:SC
|
||||
T:*/*=2.279(60)/1
|
||||
|
@ -21890,7 +21899,7 @@ Z:2-4 Inland
|
|||
A:DE
|
||||
T:W/08-18=0.099(60)/1 Hauptzeit
|
||||
T:W/18-08=0.079(60)/1 Nebenzeit
|
||||
T:E,H/*=0.0079(60)/1 Wochenende
|
||||
T:E,H/*=0.079(60)/1 Wochenende
|
||||
Z:5 Mobile Talkline
|
||||
T:*/*=0.42(60)/1
|
||||
Z:6 Data (national)
|
||||
|
@ -23705,6 +23714,11 @@ T:E/*=0.045/60
|
|||
#T:W/8-18=0.045/60
|
||||
#T:W/18-8=0.035/60
|
||||
#T:E/*=0.035/60
|
||||
Z:104 MDS-Online
|
||||
A:0192666120
|
||||
C:Homepage: http://www.mds-online.net/
|
||||
S:Internet by Call
|
||||
T:*/*=0.025/60
|
||||
Z:200 Europa
|
||||
A:AT,CH
|
||||
T:*/*=0.36/60
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: tools.h,v 1.55 2000/06/29 17:38:28 akool Exp $
|
||||
/* $Id: tools.h,v 1.56 2000/08/06 13:06:53 akool Exp $
|
||||
*
|
||||
* ISDN accounting for isdn4linux.
|
||||
*
|
||||
|
@ -20,6 +20,21 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log: tools.h,v $
|
||||
* Revision 1.56 2000/08/06 13:06:53 akool
|
||||
* isdnlog-4.38
|
||||
* - isdnlog now uses ioctl(IIOCNETGPN) to associate phone numbers, interfaces
|
||||
* and slots in "/dev/isdninfo".
|
||||
* This requires a Linux-Kernel 2.2.12 or better.
|
||||
* Support for older Kernel's are implemented.
|
||||
* If IIOCNETGPN is available, the entries "INTERFACE = xxx" in
|
||||
* "/etc/isdn/isdn.conf" are obsolete.
|
||||
* - added 01013:Tele2 totally Freecall on 12. and 13. August 2000
|
||||
* - resolved *any* warning's from "rate-de.dat" (once more ...)
|
||||
* - Patch from oliver@escape.de (Oliver Wellnitz) against
|
||||
* "Ziffernwahl verschluckt Nummern"
|
||||
*
|
||||
* **Please "make clean" before using this version of isdnlog!!**
|
||||
*
|
||||
* Revision 1.55 2000/06/29 17:38:28 akool
|
||||
* - Ported "imontty", "isdnctrl", "isdnlog", "xmonisdn" and "hisaxctrl" to
|
||||
* Linux-2.4 "devfs" ("/dev/isdnctrl" -> "/dev/isdn/isdnctrl")
|
||||
|
@ -959,6 +974,8 @@ typedef struct {
|
|||
int tz;
|
||||
int tarifknown;
|
||||
RATE Rate;
|
||||
char interface[10];
|
||||
char fnum[NUMSIZE];
|
||||
} CALL;
|
||||
|
||||
/****************************************************************************/
|
||||
|
|
Loading…
Reference in New Issue