isdnlog-3.69

This commit is contained in:
akool 1999-11-27 19:24:17 +00:00
parent c39c74a31d
commit 6465ec43f6
7 changed files with 990 additions and 847 deletions

View File

@ -1,4 +1,4 @@
## $Id: Makefile.in,v 1.123 1999/11/25 22:58:38 akool Exp $
## $Id: Makefile.in,v 1.124 1999/11/27 19:24:17 akool Exp $
##
## ISDN accounting for isdn4linux.
##
@ -19,6 +19,9 @@
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
## $Log: Makefile.in,v $
## Revision 1.124 1999/11/27 19:24:17 akool
## isdnlog-3.69
##
## Revision 1.123 1999/11/25 22:58:38 akool
## isdnlog-3.68
## - new utility "isdnbill" added
@ -857,7 +860,7 @@ SERVICEFILE = /etc/services
# DON'T EDIT BELOW THIS LINE
######################################################################
VERSION = 3.68
VERSION = 3.69
MANPAGES = isdnlog/callerid.conf.5 isdnlog/isdn.conf.5 \
isdnlog/isdnformat.5 isdnlog/isdnlog.5 isdnlog/isdnlog.8 \

View File

@ -1,4 +1,4 @@
/* $Id: isdnbill.c,v 1.1 1999/11/25 22:58:40 akool Exp $
/* $Id: isdnbill.c,v 1.2 1999/11/27 19:24:19 akool Exp $
*
* ISDN accounting for isdn4linux. (Billing-module)
*
@ -35,26 +35,26 @@
#include <time.h>
#define CALLING 0
#define CALLED 1
#define CALLING 0
#define CALLED 1
#define MAXMYMSN 10
#define MAXMYMSN 20
#define FreeCall 0
#define Ortszone 1
#define CityCall 2
#define RegioCall 3
#define GermanCall 4
#define FREECALL 0
#define ORTSZONE 1
#define CITYCALL 2
#define REGIOCALL 3
#define GERMANCALL 4
#define SONDERRUFNUMMERN 5
#define AUSLAND 6
#define ELSEWHERE 7
#define MAXZONE 8
#define MAXZONE 8
#define SUBTOTAL 0
#define TOTAL 1
#define SUBTOTAL 0
#define TOTAL 1
#define COUNTRYLEN 20
#define PROVLEN 20
#define COUNTRYLEN 30
#define PROVLEN 20
typedef struct {
char num[2][64];
@ -75,7 +75,11 @@ typedef struct {
int zone;
double compute;
int computed;
double aktiv;
char country[BUFSIZ];
char sprovider[BUFSIZ];
char error[BUFSIZ];
} CALLER;
typedef struct {
@ -112,7 +116,7 @@ static char rstr[BUFSIZ];
static int nhome = 0;
int verbose = 0;
int verbose = 0;
int print_msg(int Level, const char *fmt, ...)
@ -200,8 +204,8 @@ static void total(int w)
printf("------------------------------------------------------------------------------\n");
printf("\nMSN calls Duration Charge\n");
printf("-----------------------------------\n");
printf("\nMSN calls Duration Charge Computed\n");
printf("------------------------------------------------\n");
for (i = 0; i < nhome; i++) {
if (msnsum[w][i].ncalls)
@ -227,8 +231,8 @@ static void total(int w)
} /* for */
printf("\nProvider calls Duration Charge failures avail\n");
printf("---------------------------------------------------------------------------\n");
printf("\nProvider calls Duration Charge Computed failures avail\n");
printf("---------------------------------------------------------------------------------------\n");
for (i = 0; i < MAXPROVIDER; i++) {
if (provsum[w][i].ncalls) {
@ -239,13 +243,13 @@ static void total(int w)
printf(":%-24s", getProvider(pnum2prefix(i, 0)));
printf("%5d %s DM %8.3f %8d %5.1f%% DM %8.3f\n",
printf("%5d %s DM %8.3f DM %8.3f %8d %5.1f%%\n",
provsum[w][i].ncalls,
timestr(provsum[w][i].duration),
provsum[w][i].pay,
provsum[w][i].compute,
provsum[w][i].failed,
100.0 * (provsum[w][i].ncalls - provsum[w][i].failed) / provsum[w][i].ncalls,
provsum[w][i].compute);
100.0 * (provsum[w][i].ncalls - provsum[w][i].failed) / provsum[w][i].ncalls);
if (w == SUBTOTAL) {
@ -265,8 +269,8 @@ static void total(int w)
} /* for */
printf("\nZone calls Duration Charge\n");
printf("-------------------------------------------\n");
printf("\nZone calls Duration Charge Computed Einsparung AktivPlus\n");
printf("------------------------------------------------------------------------------\n");
for (i = 0; i < MAXZONE; i++) {
if (zonesum[w][i].ncalls) {
@ -281,13 +285,12 @@ static void total(int w)
case 7 : printf("elsewhere "); break;
} /* switch */
printf("%5d %s DM %8.3f DM %8.3f DM %8.3f DM %8.3f\n",
printf("%5d %s DM %8.3f DM %8.3f DM %8.3f\n",
zonesum[w][i].ncalls,
timestr(zonesum[w][i].duration),
zonesum[w][i].pay,
zonesum[w][i].compute,
zonesum[w][i].aktiv,
zonesum[w][i].compute - zonesum[w][i].aktiv);
zonesum[w][i].pay - zonesum[w][i].aktiv);
} /* if */
if (w == SUBTOTAL) {
@ -309,13 +312,13 @@ static void total(int w)
} /* total */
static void justify(char *fromnum, int dialout, TELNUM number)
static void justify(char *fromnum, char *tonum, int dialout, TELNUM number)
{
auto char s[BUFSIZ], sx[BUFSIZ];
if (*number.msn)
sprintf(sx, "%s/%s", number.area, number.msn);
sprintf(sx, "%s%s%s", number.area, (*number.area ? "/" : ""), number.msn);
else
strcpy(sx, number.area);
@ -324,15 +327,17 @@ static void justify(char *fromnum, int dialout, TELNUM number)
else
sprintf(s, "%s%s", (*number.country ? "0" : ""), sx);
printf("%6s %s %-14s", fromnum, (dialout ? "->" : "<-"), s);
printf("%6s %s %-17s", fromnum, (dialout ? "->" : "<-"), s);
*s = 0;
if (getSpecial(curcall.num[CALLED]))
sprintf(s, "%s", getSpecialName(curcall.num[CALLED]));
if (getSpecial(tonum))
sprintf(s, "%s", getSpecialName(tonum));
else {
if (*number.country && strcmp(number.country, mycountry))
sprintf(s, "%s", number.scountry);
else if (*number.scountry && strcmp(number.country, mycountry))
sprintf(s, "%s", number.scountry);
if (*number.sarea) {
if (*s)
@ -342,19 +347,19 @@ static void justify(char *fromnum, int dialout, TELNUM number)
} /* if */
if (!*s)
sprintf(s, "??? UNKNOWN AREA");
sprintf(s, "??? TARGET? (%s,%s,%s)", number.country, number.scountry, number.sarea);
} /* else */
s[COUNTRYLEN] = 0; /* clipping */
printf("%-*s", COUNTRYLEN, s);
sprintf(curcall.country, "%-*s", COUNTRYLEN, s);
} /* justify */
int main(int argc, char *argv[], char *envp[])
{
register char *pl, *pr, *p;
auto FILE *f = fopen("/tmp/i", "r");
auto FILE *f = fopen("/www/log/isdn.log", "r");
auto char s[BUFSIZ], sx[BUFSIZ], home[BUFSIZ];
auto int z, i, l, col, homei, month = -1;
auto TELNUM number[2];
@ -438,14 +443,14 @@ int main(int argc, char *argv[], char *envp[])
if (!curcall.provider || (curcall.provider == UNKNOWN))
curcall.provider = preselect;
if (curcall.dialout && !getSpecial(curcall.num[CALLED])) {
if (curcall.dialout && (strlen(curcall.num[CALLED]) > 3) && !getSpecial(curcall.num[CALLED])) {
sprintf(s, "0%s", curcall.num[CALLED] + 3);
if (getSpecial(s))
strcpy(curcall.num[CALLED], s);
} /* if */
if (!curcall.dialout && !getSpecial(curcall.num[CALLING])) {
if (!curcall.dialout && (strlen(curcall.num[CALLING]) > 3) && !getSpecial(curcall.num[CALLING])) {
sprintf(s, "0%s", curcall.num[CALLING] + 3);
if (getSpecial(s))
@ -473,7 +478,7 @@ int main(int argc, char *argv[], char *envp[])
normalizeNumber(curcall.num[CALLED], &number[CALLED], TN_ALL);
if (curcall.dialout) {
justify(number[CALLING].msn, curcall.dialout, number[CALLED]);
justify(number[CALLING].msn, curcall.num[CALLED], curcall.dialout, number[CALLED]);
p = strstr(home, number[CALLING].msn);
@ -490,31 +495,34 @@ int main(int argc, char *argv[], char *envp[])
homei = (int)(p - home) / 7;
msnsum[SUBTOTAL][homei].ncalls++;
provsum[SUBTOTAL][curcall.provider].ncalls++;
if (curcall.provider < 100)
printf(" %s%02d", vbn, curcall.provider);
else
printf("%s%03d", vbn, curcall.provider - 100);
provsum[SUBTOTAL][curcall.provider].ncalls++;
strcpy(s, getProvider(pnum2prefix(curcall.provider, 0)));
s[PROVLEN] = 0;
printf(":%-*s ", PROVLEN, s);
if (curcall.provider < 100)
sprintf(curcall.sprovider, " %s%02d:%-*s", vbn, curcall.provider, PROVLEN, s);
else
sprintf(curcall.sprovider, "%s%03d:%-*s", vbn, curcall.provider - 100, PROVLEN, s);
if (!curcall.duration) {
printf(" %s\n", qmsg(TYPE_CAUSE, VERSION_EDSS1, curcall.cause));
printf(" %s%s", curcall.country, curcall.sprovider);
if ((curcall.cause != 0x1f) && /* Normal, unspecified */
(curcall.cause != 0x10)) /* Normal call clearing */
printf(" %s", qmsg(TYPE_CAUSE, VERSION_EDSS1, curcall.cause));
if ((curcall.cause == 0x22) || /* No circuit/channel available */
(curcall.cause == 0x2a) || /* Switching equipment congestion */
(curcall.cause == 0x2f)) /* Resource unavailable, unspecified */
provsum[SUBTOTAL][curcall.provider].failed++;
printf("\n");
continue;
} /* if */
printf("%8.3f ", curcall.pay);
clearRate(&Rate);
Rate.start = curcall.connect;
@ -536,56 +544,67 @@ int main(int argc, char *argv[], char *envp[])
z = AUSLAND;
else if (getSpecial(curcall.num[CALLED]))
z = SONDERRUFNUMMERN;
else if (z == UNKNOWN) {
printf(" ??? UNKNOWN ZONE!");
else if (z == UNKNOWN)
z = ELSEWHERE;
} /* if */
zonesum[SUBTOTAL][z].ncalls++;
if (fabs(curcall.pay - Rate.Charge) > 0.01) {
printf("%8.3f DIFF=%8.3f", Rate.Charge, Rate.Charge - curcall.pay);
;
} /* if */
curcall.compute = Rate.Charge;
}
else {
z = MAXZONE - 1;
z = ELSEWHERE;
curcall.compute = curcall.pay;
printf(" ??? %s", version);
sprintf(curcall.error, " ??? %s", version);
} /* else */
if (!z)
printf(" !!!z=0");
if ((z == 1) || (z == 2)) {
auto struct tm *tm = localtime(&curcall.connect);
auto int takte;
auto struct tm *tm = localtime(&curcall.connect);
auto int takte;
auto double price;
if ((tm->tm_wday > 0) && (tm->tm_wday < 5)) { /* Wochentag */
if ((tm->tm_hour > 8) && (tm->tm_hour < 18)) { /* Hauptzeit */
takte = (curcall.duration + 59) / 60;
curcall.aktiv = takte * 0.06;
}
else {
takte = (curcall.duration + 59) / 60;
curcall.aktiv = takte * 0.03;
} /* else */
takte = (curcall.duration + 59) / 60;
if ((tm->tm_wday > 0) && (tm->tm_wday < 5)) { /* Wochentag */
if ((tm->tm_hour > 8) && (tm->tm_hour < 18)) /* Hauptzeit */
price = 0.06;
else
price = 0.03;
}
else { /* Wochenende */
takte = (curcall.duration + 59) / 60;
curcall.aktiv = takte * 0.03;
} /* else */
else /* Wochenende */
price = 0.03;
printf("AKTIVPLUS:%8.3f, gespart: %8.3f", curcall.aktiv, curcall.pay - curcall.aktiv);
curcall.aktiv = takte * price;
// printf("AKTIVPLUS:%8.3f, gespart: %8.3f", curcall.aktiv, curcall.pay - curcall.aktiv);
msnsum[SUBTOTAL][homei].aktiv += curcall.aktiv;
provsum[SUBTOTAL][curcall.provider].aktiv += curcall.aktiv;
zonesum[SUBTOTAL][z].aktiv += curcall.aktiv;
} /* if */
if (curcall.pay < 0.0) { /* impossible! */
curcall.pay = curcall.compute;
curcall.computed++;
} /* if */
if (curcall.compute && fabs(curcall.pay - Rate.Charge) > 1.00) {
curcall.pay = curcall.compute;
curcall.computed++;
} /* if */
if (curcall.pay)
printf("%s%7.3f%s ", curcall.currency, curcall.pay, curcall.computed ? "*" : " ");
else
printf(" ", curcall.currency, curcall.pay, curcall.computed ? "*" : " ");
printf("%s%s%s", curcall.country, curcall.sprovider, curcall.error);
if (curcall.aktiv) {
printf(" AktivPlus - %s%6.3f", curcall.currency, curcall.pay - curcall.aktiv);
}
msnsum[SUBTOTAL][homei].pay += curcall.pay;
msnsum[SUBTOTAL][homei].duration += curcall.duration;
msnsum[SUBTOTAL][homei].compute += curcall.compute;
@ -599,7 +618,8 @@ int main(int argc, char *argv[], char *envp[])
zonesum[SUBTOTAL][z].compute += curcall.compute;
}
else { /* Dialin: */
justify(number[CALLED].msn, curcall.dialout, number[CALLING]);
justify(number[CALLED].msn, curcall.num[CALLING], curcall.dialout, number[CALLING]);
printf(" %s%s", curcall.country, curcall.sprovider);
} /* else */
printf("\n");

View File

@ -1,4 +1,4 @@
/* $Id: isdnrep.c,v 1.82 1999/11/08 21:09:40 akool Exp $
/* $Id: isdnrep.c,v 1.83 1999/11/27 19:24:19 akool Exp $
*
* ISDN accounting for isdn4linux. (Report-module)
*
@ -24,6 +24,9 @@
*
*
* $Log: isdnrep.c,v $
* Revision 1.83 1999/11/27 19:24:19 akool
* isdnlog-3.69
*
* Revision 1.82 1999/11/08 21:09:40 akool
* isdnlog-3.65
* - added "B:" Tag to "rate-xx.dat"
@ -982,7 +985,7 @@ int read_logfile(char *myname)
initHoliday(holifile, NULL);
initDest(destfile, NULL);
initRate(rateconf, ratefile, zonefile, NULL);
interns0 = 3; /* Fixme: */
msn_sum = calloc(mymsns + 1, sizeof(double));
@ -1091,7 +1094,7 @@ int read_logfile(char *myname)
fputs(string,ftmp);
else
continue;
}
}
}
if (!verbose && cur_call.duration == 0)
@ -1334,7 +1337,7 @@ static int print_bottom(double unit, char *start, char *stop)
100.0 * (usage_provider[i] - provider_failed[i]) / usage_provider[i]);
else
*sx = 0;
p = getProvider(i);
p = getProvider(pnum2prefix(i, 0));
if (!p || p[strlen(p) - 1] == '?') /* UNKNOWN Provider */
p = "UNKNOWN";
@ -1749,7 +1752,7 @@ static int print_line(int status, one_call *cur_call, int computed, char *overla
{
register char *p;
p = (cur_call->provider >= 0) ? getProvider(cur_call->provider) : "";
p = (cur_call->provider >= 0) ? getProvider(pnum2prefix(cur_call->provider, 0)) : "";
if (cur_call->dir == DIALIN)
p = "";
@ -2573,7 +2576,7 @@ static void repair(one_call *cur_call)
call[0].connect = cur_call->t;
call[0].disconnect = cur_call->t + cur_call->duration;
call[0].intern[CALLED] = strlen(cur_call->num[CALLED]) < interns0;
call[0].provider = cur_call->provider = pnum2prefix(cur_call->provider,cur_call->t);
call[0].provider = cur_call->provider; /* = pnum2prefix(cur_call->provider,cur_call->t); */
call[0].aoce = cur_call->eh;
call[0].dialin = 0;
strcpy(call[0].num[CALLED], cur_call->num[CALLED]);
@ -2581,7 +2584,7 @@ static void repair(one_call *cur_call)
normalizeNumber("4321",&srcnum,TN_ALL); /* this is a local number */
destnum.nprovider = cur_call->provider;
Strncpy(destnum.provider,getProvider(cur_call->provider),TN_MAX_PROVIDER_LEN);
Strncpy(destnum.provider,getProvider(cur_call->provider), TN_MAX_PROVIDER_LEN);
normalizeNumber(cur_call->num[CALLED], &destnum, TN_NO_PROVIDER);
call[0].sondernummer[CALLED] = destnum.ncountry==0;
@ -2600,7 +2603,7 @@ static void repair(one_call *cur_call)
cur_call->pay = Rate.Charge; /* Fixme: is that ok, propably rates have changed */
cur_call->zone = Rate._zone;
zones_names[Rate._zone] = Rate.Zone ? strdup(Rate.Zone) : strdup("??");
}
}
} /* repair */
/*****************************************************************************/
@ -2747,7 +2750,7 @@ static int set_caller_infos(one_call *cur_call, char *string, time_t from)
if ((cur_call->dir == DIALOUT) &&
(cur_call->duration > 0) &&
*cur_call->num[1]
)
)
repair(cur_call);
return(0);
@ -2932,7 +2935,7 @@ static time_t get_time(char *String, int TimeStatus)
else
TimeStruct->tm_year = Year;
}
}
}
TimeStruct->tm_mon--;
break;
}
@ -2947,13 +2950,13 @@ static time_t get_time(char *String, int TimeStatus)
TimeStruct->tm_min == 0 )
TimeStruct->tm_hour++;
else {
if (TimeStruct->tm_sec == 0 )
if (TimeStruct->tm_sec == 0 )
TimeStruct->tm_min++;
else
TimeStruct->tm_sec++;
}
}
}
}
}
return mktime(TimeStruct);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,89 +1,191 @@
# Dont use EWE Tel
P:14=99
# rate.conf 1.10 26-Nov-99 16:51
# Use RSL-COM CbC
P:15=1
# dont use debitel
P:18=99
# dont use ISIS isiFON classic
P:20=99
# Dont use NetCologne
P:22=99
# Dont use tesion))
P:23=99
# Use TelePassport CbC
P:24=2
# Dont use CityKom
P:25=99
# Dont use Nordcom Butensurf
P:27=99
# Dont use Telebridge
P:28=99
# Use DTAG AktivPlus
# P:33=4
# Dont use Hutchison
P:36=99
# Dont use HanseNet
P:41=99
# Dont use TeleBeL
P:42=99
# Dont use VEW TELNET
P:44=99
# Dont use KomTel
P:46=99
# Dont use DOKOM
P:48=99
# Dont use ACC
P:49=99
# Use Talkline CbC
P:50=1
# Dont use WOBCOM
P:53=99
# Kennzahl 70, moegliche Varianten:
# 1=Arcor CbC
# 2=Arcor Town to Town
# 3=Arcor Town to Town Sekunde
# use Arcor CbC
P:70=1
# Kennzahl 98, moegliche Varianten:
# 0=Star
# 1=Mox Telecom AG
# 2=Nikoma Minutentakt
# 3=Nikoma Sekundentakt
# 4=Nikocity Minutentakt
# 5=Nikocity Sekundentakt
# 6=C@llas Clever Communications
# use Nikoma
P:98=5
# Dont use ECONOPHONE
P:99=99
# my LCR
#P:11=99
#P:13=99
#P:18=99
#P:19=99
#P:24=99
#P:40=99
#P:70=99
# P:10=0 # Teleglobe
P:11=0 # o.tel.o CbC
# P:11=1 # o.tel.o private Preselection
# P:11=2 # o.tel.o private plus Preselection
# P:11=3 # o.tel.o professional plus Preselection
# P:11=4 # o.tel.o international plus Preselection
# P:12=0 # Tele Danmark
P:13=0 # Tele 2 Privatkunden
# P:13=1 # Tele 2 Geschaeftskunden
P:14=0 # EWE TEL CbC national
# P:14=1 # EWE TEL CbC/pre-select regional
# P:14=2 # EWE TEL direct
P:15=0 # RSL clever call
# P:15=1 # RSL CleverLine global
# P:15=2 # RSL CleverLine metropolitan
# P:16=0 # LausitzNet
# P:17=0 # SEC
P:18=0 # debitel
# P:18=1 # debitel DirectLine Profi-Tarif 30 Sekunden
# P:18=2 # debitel DirectLine Privat-Tarif Sekunden Takt
# P:18=3 # debitel DirectLine Profi-Tarif Sekunden Takt
P:19=0 # Mobilcom CbC
# P:19=1 # Mobilcom Preselection/Business
# P:19=2 # Mobilcom Preselection/Privat
P:20=0 # ISIS isiFON classic
# P:20=1 # ISIS isiFON plus
# P:20=2 # ISIS Preselection
# P:21=0 # QS
P:22=0 # NetCologne
# P:23=0 # tesion connectClassic
# P:23=1 # tesion connectProfi
P:23=2 # tesion CbC
# P:24=0 # Telepassport 99 Plus
# P:24=1 # Telepassport Plus
P:24=2 # Telepassport CbC
# P:24=3 # Telepassport RegionalTarif Plus
# P:24=4 # Telepassport SüdOst-Tarif
# P:24=5 # Telepassport SüdOst
# P:24=6 # Telepassport StudentenTarif
# P:24=7 # Super 24
P:25=0 # CityKom
# P:25=1 # CityKom Preselection
# P:26=0 # ECN
P:27=0 # Nordcom Butensurf
# P:27=1 # Nordcom Butensurf Plus
P:28=0 # TeleBridge CbC
# P:28=1 # TeleBridge EasyBridge
# P:28=2 # UPX Super 8
# P:29=0 # Unisource
P:30=0 # TelDaFax
# P:31=0 # HEAG
# P:32=0 # KDD
P:33=0 # DTAG
# P:33=1 # DTAG CityPlus
# P:33=2 # DTAG CityWeekend
# P:33=3 # DTAG CityWeekend & CityPlus
# P:33=4 # DTAG AktivPlus
P:34=0 # NEFkom
# P:35=0 # interCOM
P:36=0 # Hutchison fairfon
# P:36=1 # Hutchison easyfon
# P:36=2 # Hutchison o.tel.o private
# P:36=3 # Hutchison fairfon Sekundentakt
# P:36=4 # Hutchison easyfon Sekundentakt
# P:37=0 # ETS
# P:38=0 # MediaWays
P:39=0 # First Telecom CbC
P:40=0 # GTS Esprit
P:41=0 # HanseNet
# P:41=1 # HanseNet Preselection
P:42=0 # TeleBeL ISDN Plus
# P:42=1 # TeleBeL ISDN XL
P:43=0 # KielNet CbC
# P:43=1 # KielNet Preselection
P:43=2 # KielNet Telefonanschluß
P:44=0 # VEW TELNET
# P:45=0 # Global Network
P:46=0 # KomTel
# P:46=1 # KomTel MoinMoin
# P:47=0 # PrimeTec
P:48=0 # DOKOM
# P:49=0 # ACC ACCess Direkt Pre-Selection Einheitentarif
# P:49=1 # ACC ACCess Direkt Pre-Selection Minutentarif
P:49=2 # ACC ACCess Einheitentarif CbC
# P:49=3 # ACC ACCess Minutentarif CbC
P:50=0 # Talkline CbC
# P:50=1 # Talkline EasyLine
# P:50=2 # Talkline talkmax
# P:50=3 # Talkline BusinessLine Classic
# P:50=4 # Talkline BusinessLine Local
P:51=0 # 01051
# P:52=0 # Long Distance
P:53=0 # WOBCOM
# P:54=0 # USFI
# P:55=0 # ESPRIT Telecom Deutschland GmbH, August-Thyssen-Str. 1
# P:56=0 # BITel
# P:57=0 # Mox
# P:58=0 # KaTel
# P:59=0 # Pacific Gateway Exchange
# P:60=0 # Telecom-InfoService
# P:61=0 # TelSA
# P:62=0 # DENTEL
P:63=0 # KDD-Conos PrivateCall easy
# P:63=1 # KDD-Conos PrivateCall genau
# P:64=0 # Hannoversche
# P:65=0 # Rapid Link
P:66=0 # Interoute
# P:67=0 # RegioCom
# P:68=0 # Tele Media
# P:69=0 # Primus
P:70=0 # Arcor CbC
# P:70=1 # Arcor Town to Town
# P:70=2 # Arcor Town to Town Sekunde
# P:71=0 # DeTeMobil
# P:72=0 # Mannesmann
# P:73=0 # AXXON
# P:74=0 # Alpha
P:75=0 # Callino
# P:76=0 # QuickNet
# P:77=0 # E-Plus
P:78=0 # 3U
P:79=0 # Viatel
P:80=0 # Telegate
# P:81=0 # Infotel
# P:82=0 # AugustaKom
# P:83=0 # Wuerzburger
# P:84=0 # Telegroup
P:85=0 # GTS-WESTCom
# P:86=0 # ONE.TEL
# P:87=0 # HAMCOM
P:88=0 # WorldCom
# P:88=1 # Hutchison CbC
# P:89=0 # M'net
P:90=0 # Viag Interkom
# P:91=0 # IDT
# P:92=0 # Hallo Telefon Service
# P:93=0 # Kray
# P:94=0 # Global Communications
# P:95=0 # Teleos
# P:96=0 # GELSEN-NET
# P:97=0 # AT & T-Unisource
P:98=0 # Mox
# P:98=1 # Nikocity Study&Surf
# P:98=2 # Nikocity
P:99=0 # ECONOPHONE
P:100=0 # TELELEV
# P:100=1 # Meocom
# P:101=0 # Netnet
# P:102=0 # EncoTel
# P:103=0 # mevacom
# P:107=0 # KPN
# P:108=0 # USA Global Link
# P:109=0 # ChemTel
# P:110=0 # Bertelsmann mediaSystems
# P:111=0 # RED LINE
# P:112=0 # MEGASAT
# P:115=0 # Delta Three
# P:118=0 # MFS
# P:119=0 # E.T.H.
# P:120=0 # Komm Consult
# P:122=0 # Motorola
# P:125=0 # Mediascape
# P:130=0 # tnp telenet
# P:131=0 # accom
# P:132=0 # SD
# P:133=0 # Level 3
# P:140=0 # VossNet
# P:142=0 # connection 42
# P:144=0 # Carrier 1
P:150=0 # Drillisch Superregionen
# P:150=1 # Drillisch
# P:154=0 # Osnatel
# P:155=0 # Telia
# P:156=0 # NETCOM
# P:160=0 # JelloCom
# P:168=0 # VSE
# P:170=0 # Deutsche Telefon- und Marketing Services
# P:173=0 # TFN COM SA
# P:175=0 # Gigabell
# P:177=0 # WorldxChange
# P:178=0 # Cybernet
# P:180=0 # FaciliCom
# P:181=0 # Daten- und Telekommunikations-GmbH Dessau
# P:184=0 # Startec
# P:185=0 # FirstMark
# P:188=0 # jk-tel
# P:190=0 # CNE
# P:195=0 # TeleNec
# P:199=0 # ESTel

View File

@ -1638,7 +1638,7 @@ nolegend:
}
print(qq(</MAP>\n));
print(img({-src=>"$tempdir_url/$tempf", -height=>$H+$DEP, -border=>0,
-width=>$W+$LEG+$DEP, -align=>'"CENTER"', -usemap=>'#map'}),br);
-width=>$W+$LEG+$DEP, -align=>'CENTER', -usemap=>'#map'}),br);
if ($mix) {
print_ign($ign1, $ign2);
}
@ -1662,14 +1662,15 @@ sub _x {
}
# del gifs older then 1 hour
sub clean_up {
sub
clean_up {
my(@All, $file, $now);
opendir(DIR, $tempdir);
@All = readdir(DIR);
closedir(DIR);
$now=time();
foreach $file (@All) {
if($now - (stat("$tempdir/$file"))[9] > 3600 && $file =~ /^ir.{6}\.gif/) {
if($now - (stat("$tempdir/$file"))[9] > 3600 && $file =~ /^ir.{6}\.(gif|png)/) {
unlink("$tempdir/$file");
}
}
@ -1678,6 +1679,10 @@ sub clean_up {
sub get_info {
my ($pnum, $sect, $bsp) = @_;
my (@lines, $t);
if($sect eq 'NR') {
$pnum=~s/_.*$//;
return $pnum;
}
$pnum = provider2prefix($pnum);
my @args=($ISDNRATE,"-p$pnum -X$sect");
_call_isdnrate(\@lines, @args);