isdnlog-3.69
This commit is contained in:
parent
c39c74a31d
commit
6465ec43f6
|
@ -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 \
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue