isdnlog 3.09 : support for all Internet-by-call numbers
This commit is contained in:
parent
5255397dca
commit
1fd2b336c0
|
@ -1,4 +1,4 @@
|
|||
## $Id: Makefile.in,v 1.61 1999/03/20 14:32:29 akool Exp $
|
||||
## $Id: Makefile.in,v 1.62 1999/03/20 16:54:37 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.62 1999/03/20 16:54:37 akool
|
||||
## isdnlog 3.09 : support for all Internet-by-call numbers
|
||||
##
|
||||
## Revision 1.61 1999/03/20 14:32:29 akool
|
||||
## - isdnlog Version 3.08
|
||||
## - more tesion)) Tarife from Michael Graw <Michael.Graw@bartlmae.de>
|
||||
|
@ -484,7 +487,7 @@ SERVICEFILE = /etc/services
|
|||
# DON'T EDIT BELOW THIS LINE
|
||||
######################################################################
|
||||
|
||||
VERSION = 3.08
|
||||
VERSION = 3.09
|
||||
|
||||
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
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: processor.c,v 1.45 1999/03/20 14:33:07 akool Exp $
|
||||
/* $Id: processor.c,v 1.46 1999/03/20 16:54:45 akool Exp $
|
||||
*
|
||||
* ISDN accounting for isdn4linux. (log-module)
|
||||
*
|
||||
|
@ -19,6 +19,9 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log: processor.c,v $
|
||||
* Revision 1.46 1999/03/20 16:54:45 akool
|
||||
* isdnlog 3.09 : support for all Internet-by-call numbers
|
||||
*
|
||||
* Revision 1.45 1999/03/20 14:33:07 akool
|
||||
* - isdnlog Version 3.08
|
||||
* - more tesion)) Tarife from Michael Graw <Michael.Graw@bartlmae.de>
|
||||
|
@ -612,7 +615,7 @@ static char *location(int loc)
|
|||
} /* location */
|
||||
|
||||
|
||||
static void buildnumber(char *num, int oc3, int oc3a, char *result, int version, int *provider, int *sondernummer, int *intern, int dir, int who)
|
||||
static void buildnumber(char *num, int oc3, int oc3a, char *result, int version, int *provider, int *sondernummer, int *intern, int *internetnumber, int dir, int who)
|
||||
{
|
||||
auto char n[BUFSIZ];
|
||||
auto int partner = ((dir && (who == CALLING)) || (!dir && (who == CALLED)));
|
||||
|
@ -620,6 +623,7 @@ static void buildnumber(char *num, int oc3, int oc3a, char *result, int version,
|
|||
|
||||
*sondernummer = UNKNOWN;
|
||||
*intern = 0;
|
||||
*internetnumber = 0;
|
||||
|
||||
#ifdef Q931
|
||||
if (q931dmp) {
|
||||
|
@ -769,42 +773,41 @@ static void buildnumber(char *num, int oc3, int oc3a, char *result, int version,
|
|||
} /* if */
|
||||
#endif
|
||||
|
||||
if (!dir && (who == CALLED)) {
|
||||
*sondernummer = is_sondernummer(num, *provider);
|
||||
*intern = strlen(num) < interns0;
|
||||
|
||||
if (*sondernummer == UNKNOWN)
|
||||
*sondernummer = is_sondernummer(num, DTAG); /* try with DTAG, these provider must support them all (i think) */
|
||||
if (!dir && (who == CALLED) && !*intern) {
|
||||
*internetnumber = isInternetAccess(*provider, num);
|
||||
|
||||
#ifdef 0
|
||||
/* Das ist doch totaler Bloedsinn, oder?
|
||||
* Schliesslich ist in *sondernummer doch der Index des Tabelleneintrags
|
||||
* gespeichert. Den kann man doch nicht einfach auf 1 setzten. */
|
||||
if (*sondernummer == UNKNOWN) {
|
||||
if (!memcmp(num, "019", 3)) /* anything like 019xx is a Sondernummer! */
|
||||
*sondernummer = 1;
|
||||
if (!*internetnumber) {
|
||||
*sondernummer = is_sondernummer(num, *provider);
|
||||
|
||||
if (*sondernummer == UNKNOWN)
|
||||
*sondernummer = is_sondernummer(num, DTAG); /* try with DTAG, these provider must support them all (i think) */
|
||||
} /* if */
|
||||
#endif
|
||||
|
||||
} /* if */
|
||||
|
||||
*intern = strlen(num) < interns0;
|
||||
|
||||
#ifdef Q931
|
||||
if (q931dmp) {
|
||||
if (*sondernummer != UNKNOWN) {
|
||||
auto char s[256];
|
||||
if (q931dmp) {
|
||||
auto char s[BUFSIZ];
|
||||
|
||||
sprintf(s, "(Sonderrufnummer %s : %s)", num,
|
||||
sondernummername(*sondernummer));
|
||||
|
||||
if (*sondernummer != UNKNOWN) {
|
||||
sprintf(s, "(Sonderrufnummer %s : %s)", num, sondernummername(*sondernummer));
|
||||
Q931dump(TYPE_STRING, -1, s, version);
|
||||
} /* if */
|
||||
|
||||
if (*internetnumber) {
|
||||
sprintf(s, "(Internet access number %s)", num);
|
||||
Q931dump(TYPE_STRING, -1, s, version);
|
||||
} /* if */
|
||||
|
||||
if (*intern)
|
||||
Q931dump(TYPE_STRING, -1, "(Interne Nummer)", version);
|
||||
} /* if */
|
||||
} /* if */
|
||||
#endif
|
||||
|
||||
if ((*sondernummer == UNKNOWN) && !*intern)
|
||||
if ((*sondernummer == UNKNOWN) && !*intern && !*internetnumber)
|
||||
|
||||
switch (oc3 & 0x70) { /* Calling party number Information element, Octet 3 - Table 4-11/Q.931 */
|
||||
case 0x00 : if (*num) { /* 000 Unknown */
|
||||
|
@ -852,12 +855,12 @@ static void buildnumber(char *num, int oc3, int oc3a, char *result, int version,
|
|||
} /* switch */
|
||||
|
||||
if (*num)
|
||||
strcat(result, num);
|
||||
strcat(result, num);
|
||||
else
|
||||
strcpy(result, "");
|
||||
|
||||
print_msg(PRT_DEBUG_DECODE, " DEBUG> %s: num=\"%s\", oc3=%s(%02x), result=\"%s\", sonder=%d, int=%d, partner=%d\n",
|
||||
st + 4, n, i2a(oc3, 8, 2), oc3 & 0x70, result, *sondernummer, *intern, partner);
|
||||
print_msg(PRT_DEBUG_DECODE, " DEBUG> %s: num=\"%s\", oc3=%s(%02x), result=\"%s\", sonder=%d, intern=%d, internet=%d, partner=%d\n",
|
||||
st + 4, n, i2a(oc3, 8, 2), oc3 & 0x70, result, *sondernummer, *intern, *internetnumber, partner);
|
||||
} /* buildnumber */
|
||||
|
||||
|
||||
|
@ -882,7 +885,7 @@ static int facility(int type, int l)
|
|||
{
|
||||
register int ls, i, ServedUserNr;
|
||||
register char *px, *px1, *px2, *px3;
|
||||
auto int c, result = 0, a1, a2, a3, oc3 = 0;
|
||||
auto int c, result = 0, a1, a2, a3, a4, oc3 = 0;
|
||||
static int ID = 0, OP = 0, EH = 0, MP = 0;
|
||||
static char curr[64];
|
||||
auto char s[BUFSIZ], s1[BUFSIZ], dst[BUFSIZ], src[BUFSIZ];
|
||||
|
@ -1150,9 +1153,9 @@ static int facility(int type, int l)
|
|||
sprintf(s1, "\"%s\"", src);
|
||||
aoc_debug(-2, s1);
|
||||
|
||||
buildnumber(src, 0, 0, call[6].num[CLIP], VERSION_EDSS1, &a1, &a2, &a3, 0, 999);
|
||||
buildnumber(src, 0, 0, call[6].num[CLIP], VERSION_EDSS1, &a1, &a2, &a3, &a4, 0, 999);
|
||||
strcpy(vsrc, vnum(6, CLIP));
|
||||
buildnumber(dst, oc3 * 16, 0, call[6].num[CLIP], VERSION_EDSS1, &a1, &a2, &a3, 0, 999);
|
||||
buildnumber(dst, oc3 * 16, 0, call[6].num[CLIP], VERSION_EDSS1, &a1, &a2, &a3, &a4, 0, 999);
|
||||
strcpy(vdst, vnum(6, CLIP));
|
||||
|
||||
/* sprintf(s, "%s %s/%s -> %s (%s)", px1, src, px2, dst, px3); */
|
||||
|
@ -1240,7 +1243,7 @@ static int facility(int type, int l)
|
|||
sprintf(s1, "\"%s\"", dst);
|
||||
aoc_debug(-2, s1);
|
||||
|
||||
buildnumber(dst, 0, 0, call[6].num[CLIP], VERSION_EDSS1, &a1, &a2, &a3, 0, 999);
|
||||
buildnumber(dst, 0, 0, call[6].num[CLIP], VERSION_EDSS1, &a1, &a2, &a3, &a4, 0, 999);
|
||||
strcpy(vdst, vnum(6, CLIP));
|
||||
|
||||
sprintf(s, "deactivate %s %s/%s", px1, vdst, px2);
|
||||
|
@ -2460,7 +2463,7 @@ static void decode(int chan, register char *p, int type, int version, int tei)
|
|||
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);
|
||||
buildnumber(s, oc3, oc3a, call[chan].num[CALLED], version, &call[chan].provider, &call[chan].sondernummer[CALLED], &call[chan].intern[CALLED], &call[chan].internetnumber[CALLED], 0, CALLED);
|
||||
|
||||
if (!dual)
|
||||
strcpy(call[chan].vnum[CALLED], vnum(chan, CALLED));
|
||||
|
@ -2516,7 +2519,7 @@ static void decode(int chan, register char *p, int type, int version, int tei)
|
|||
if (strcmp(call[chan].onum[CALLING], s)) /* different! */
|
||||
if ((call[chan].screening == 3) && ((oc3a & 3) < 3)) { /* we believe the first one! */
|
||||
strcpy(call[chan].onum[CLIP], s);
|
||||
buildnumber(s, oc3, oc3a, call[chan].num[CLIP], version, &call[chan].provider, &call[chan].sondernummer[CLIP], &call[chan].intern[CLIP], 0, 0);
|
||||
buildnumber(s, oc3, oc3a, call[chan].num[CLIP], version, &call[chan].provider, &call[chan].sondernummer[CLIP], &call[chan].intern[CLIP], &call[chan].internetnumber[CLIP], 0, 0);
|
||||
strcpy(call[chan].vnum[CLIP], vnum(6, CLIP));
|
||||
#ifdef Q931
|
||||
if (q931dmp && (*call[chan].vnum[CLIP] != '?') && *call[chan].vorwahl[CLIP] && oc3 && ((oc3 & 0x70) != 0x40)) {
|
||||
|
@ -2556,7 +2559,7 @@ static void decode(int chan, register char *p, int type, int version, int tei)
|
|||
call[chan].screening = (oc3a & 3);
|
||||
|
||||
strcpy(call[chan].onum[CALLING], s);
|
||||
buildnumber(s, oc3, oc3a, call[chan].num[CALLING], version, &call[chan].provider, &call[chan].sondernummer[CALLING], &call[chan].intern[CALLING], call[chan].dialin, CALLING);
|
||||
buildnumber(s, oc3, oc3a, call[chan].num[CALLING], version, &call[chan].provider, &call[chan].sondernummer[CALLING], &call[chan].intern[CALLING], &call[chan].internetnumber[CALLING], call[chan].dialin, CALLING);
|
||||
|
||||
strcpy(call[chan].vnum[CALLING], vnum(chan, CALLING));
|
||||
#ifdef Q931
|
||||
|
@ -2610,10 +2613,10 @@ static void decode(int chan, register char *p, int type, int version, int tei)
|
|||
call[chan].oc3 = oc3;
|
||||
#ifdef Q931
|
||||
if (q931dmp)
|
||||
buildnumber(s, oc3, -1, call[chan].num[CALLED], version, &call[chan].provider, &call[chan].sondernummer[CALLED], &call[chan].intern[CALLED], call[chan].dialin, CALLED);
|
||||
buildnumber(s, oc3, -1, call[chan].num[CALLED], version, &call[chan].provider, &call[chan].sondernummer[CALLED], &call[chan].intern[CALLED], &call[chan].internetnumber[CALLED], call[chan].dialin, CALLED);
|
||||
#endif
|
||||
|
||||
buildnumber(call[chan].digits, oc3, -1, call[chan].num[CALLED], version, &call[chan].provider, &call[chan].sondernummer[CALLED], &call[chan].intern[CALLED], call[chan].dialin, CALLED);
|
||||
buildnumber(call[chan].digits, oc3, -1, call[chan].num[CALLED], version, &call[chan].provider, &call[chan].sondernummer[CALLED], &call[chan].intern[CALLED], &call[chan].internetnumber[CALLED], call[chan].dialin, CALLED);
|
||||
|
||||
strcpy(call[chan].vnum[CALLED], vnum(chan, CALLED));
|
||||
|
||||
|
@ -2635,7 +2638,7 @@ static void decode(int chan, register char *p, int type, int version, int tei)
|
|||
}
|
||||
else {
|
||||
strcpy(call[chan].onum[CALLED], s);
|
||||
buildnumber(s, oc3, -1, call[chan].num[CALLED], version, &call[chan].provider, &call[chan].sondernummer[CALLED], &call[chan].intern[CALLED], call[chan].dialin, CALLED);
|
||||
buildnumber(s, oc3, -1, call[chan].num[CALLED], version, &call[chan].provider, &call[chan].sondernummer[CALLED], &call[chan].intern[CALLED], &call[chan].internetnumber[CALLED], call[chan].dialin, CALLED);
|
||||
|
||||
strcpy(call[chan].vnum[CALLED], vnum(chan, CALLED));
|
||||
#ifdef Q931
|
||||
|
@ -2690,7 +2693,7 @@ static void decode(int chan, register char *p, int type, int version, int tei)
|
|||
*pd = 0;
|
||||
|
||||
strcpy(call[chan].onum[REDIR], s);
|
||||
buildnumber(s, oc3, -1, call[chan].num[REDIR], version, &call[chan].provider, &call[chan].sondernummer[REDIR], &call[chan].intern[REDIR], 0, 0);
|
||||
buildnumber(s, oc3, -1, call[chan].num[REDIR], version, &call[chan].provider, &call[chan].sondernummer[REDIR], &call[chan].intern[REDIR], &call[chan].internetnumber[REDIR], 0, 0);
|
||||
|
||||
strcpy(call[chan].vnum[REDIR], vnum(chan, REDIR));
|
||||
#ifdef Q931
|
||||
|
@ -4504,7 +4507,7 @@ static void processctrl(int card, char *s)
|
|||
#endif
|
||||
if (dual && *call[chan].digits) {
|
||||
strcpy(call[chan].onum[CALLED], call[chan].digits);
|
||||
buildnumber(call[chan].digits, call[chan].oc3, -1, call[chan].num[CALLED], version, &call[chan].provider, &call[chan].sondernummer[CALLED], &call[chan].intern[CALLED], call[chan].dialin, CALLED);
|
||||
buildnumber(call[chan].digits, call[chan].oc3, -1, call[chan].num[CALLED], version, &call[chan].provider, &call[chan].sondernummer[CALLED], &call[chan].intern[CALLED], &call[chan].internetnumber[CALLED], call[chan].dialin, CALLED);
|
||||
|
||||
strcpy(call[chan].vnum[CALLED], vnum(chan, CALLED));
|
||||
} /* if */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: takt_de.c,v 1.15 1999/03/20 14:33:40 akool Exp $
|
||||
/* $Id: takt_de.c,v 1.16 1999/03/20 16:54:54 akool Exp $
|
||||
*
|
||||
* ISDN accounting for isdn4linux. (log-module)
|
||||
*
|
||||
|
@ -19,6 +19,9 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log: takt_de.c,v $
|
||||
* Revision 1.16 1999/03/20 16:54:54 akool
|
||||
* isdnlog 3.09 : support for all Internet-by-call numbers
|
||||
*
|
||||
* Revision 1.15 1999/03/20 14:33:40 akool
|
||||
* - isdnlog Version 3.08
|
||||
* - more tesion)) Tarife from Michael Graw <Michael.Graw@bartlmae.de>
|
||||
|
@ -602,11 +605,21 @@ char *realProvidername(int prefix)
|
|||
} /* realProvidername */
|
||||
|
||||
|
||||
int isInternetAccess(int provider, char *number)
|
||||
{
|
||||
if (t[provider].used && (t[provider].InternetZugang != NULL) &&
|
||||
!strcmp(number, t[provider].InternetZugang))
|
||||
return(1);
|
||||
else
|
||||
return(0);
|
||||
} /* isInternetAccess */
|
||||
|
||||
|
||||
void preparecint(int chan, char *msg, char *hint, int viarep)
|
||||
{
|
||||
register int zone = UNKNOWN, provider = UNKNOWN, tz, i, cheapest = UNKNOWN;
|
||||
auto struct tm *tm;
|
||||
auto char why[BUFSIZ], s[BUFSIZ];
|
||||
auto char why[BUFSIZ], s[BUFSIZ], s1[BUFSIZ];
|
||||
auto double tarif = 0.0, tarif1, providertarif = 0.0, cheaptarif;
|
||||
|
||||
|
||||
|
@ -627,9 +640,11 @@ void preparecint(int chan, char *msg, char *hint, int viarep)
|
|||
sprintf(s, "Unknown Sonderrufnummer for provider %s. Using chargeinfos from provider DTAG.",
|
||||
Providername(provider));
|
||||
info(chan, PRT_SHOWCONNECT, STATE_CONNECT, s);
|
||||
}
|
||||
} /* if */
|
||||
|
||||
if ((call[chan].sondernummer[CALLED] != UNKNOWN) && /* Sonderrufnummer, Abrechnung zum CityCall-Tarif */
|
||||
if (call[chan].internetnumber[CALLED])
|
||||
zone = INTERNET;
|
||||
else if ((call[chan].sondernummer[CALLED] != UNKNOWN) && /* Sonderrufnummer, Abrechnung zum CityCall-Tarif */
|
||||
(sondertarif(call[chan].sondernummer[CALLED]) == SO_CITYCALL))
|
||||
zone = CITYCALL;
|
||||
else if ((call[chan].sondernummer[CALLED] != UNKNOWN) && /* Sonderrufnummer, kostenlos */
|
||||
|
@ -735,8 +750,13 @@ void preparecint(int chan, char *msg, char *hint, int viarep)
|
|||
sprintf(s, "%s %s/Min, Takt %d/%d", WAEHRUNG, double2str(tarif, 5, 3, DEB),
|
||||
t[cheapest].takt1[zone], t[cheapest].takt2[zone]);
|
||||
|
||||
sprintf(hint, "HINT: Better use 010%02d:%s, %s, saving %s %s/%ds",
|
||||
cheapest, t[cheapest].Provider, s, WAEHRUNG,
|
||||
if (zone == INTERNET)
|
||||
sprintf(s1, "-%s", t[cheapest].InternetZugang);
|
||||
else
|
||||
*s1 = 0;
|
||||
|
||||
sprintf(hint, "HINT: Better use 010%02d%s:%s, %s, saving %s %s/%ds",
|
||||
cheapest, s1, t[cheapest].Provider, s, WAEHRUNG,
|
||||
double2str(providertarif - cheaptarif, 5, 3, DEB), TEST);
|
||||
|
||||
call[chan].hint = cheapest;
|
||||
|
@ -961,9 +981,16 @@ void initTarife(char *msg)
|
|||
|
||||
if ((p = strchr(s, '#')))
|
||||
*p = 0;
|
||||
|
||||
if ((p = strchr(s, '\n')))
|
||||
else if ((p = strchr(s, '\n')))
|
||||
*p = 0;
|
||||
else
|
||||
p = s + strlen(s) - 1;
|
||||
|
||||
p--;
|
||||
|
||||
while (*p == ' ')
|
||||
*p-- = 0;
|
||||
|
||||
|
||||
if (*s) {
|
||||
|
||||
|
@ -1037,7 +1064,7 @@ void initTarife(char *msg)
|
|||
|
||||
case '+' : if (!ignore) { /* +:nnn Verbindungsentgelt pro Gespraech */
|
||||
if (prefix == UNKNOWN) {
|
||||
warning("Unexpected tag 'I'");
|
||||
warning("Unexpected tag '+'");
|
||||
break;
|
||||
} /* if */
|
||||
|
||||
|
@ -1047,7 +1074,7 @@ void initTarife(char *msg)
|
|||
|
||||
case '-' : if (!ignore) { /* -:nnn kostenlose Sekunden */
|
||||
if (prefix == UNKNOWN) {
|
||||
warning("Unexpected tag 'I'");
|
||||
warning("Unexpected tag '-'");
|
||||
break;
|
||||
} /* if */
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# @(#)tarif.dat 1.10 17-Mar-99 22:09
|
||||
# @(#)tarif.dat 1.11 20-Mar-99 17:51
|
||||
#
|
||||
# Copyright 1995, 1999 by Andreas Kool (akool@isdn4linux.de)
|
||||
#
|
||||
V:1.10 [17-Mar-99]
|
||||
V:1.11 [20-Mar-99]
|
||||
#
|
||||
# P: Provider
|
||||
# G: tt.mm.jjjj Tarif g<>ltig ab
|
||||
|
@ -33,7 +33,7 @@ G:01.03.1999
|
|||
C:Homepage: http://www.o-tel-o.de
|
||||
C:Hotline: 01803/1998 oder 0800/7370 (Geschaeftskunden)
|
||||
C:Adresse: 96038 Bamberg
|
||||
I:010110191501 # (Benutzername: otelo; Passwort: online)
|
||||
I:0191501 # (Benutzername: otelo; Passwort: online)
|
||||
Z:2-3,60/60
|
||||
T:W08-18=0.20
|
||||
T:W18-08=0.10
|
||||
|
@ -43,11 +43,7 @@ T:W08-18=0.94
|
|||
T:W18-08=0.47
|
||||
T:E=0.47
|
||||
Z:H,60/60
|
||||
T:W08-09=0.06
|
||||
T:W09-18=0.11
|
||||
T:W18-22=0.08
|
||||
T:W22-08=0.06
|
||||
T:E=0.06
|
||||
T:*=0.059
|
||||
################################################################
|
||||
P:13=Tele 2
|
||||
G:08.02.1999
|
||||
|
@ -95,7 +91,7 @@ C:MobilCom AG
|
|||
C:Homepage: http://www.mobilcom.de
|
||||
C:Hotline: 01805/191919
|
||||
C:Adresse: Postfach 1249, 24822 Schleswig
|
||||
I:0101901929 # (Benutzername: mobilcom; Passwort: mobilcom)
|
||||
I:01929 # (Benutzername: mobilcom; Passwort: mobilcom)
|
||||
Z:2-3,60/60
|
||||
T:*07-19=0.16
|
||||
T:*19-22=0.08
|
||||
|
@ -105,7 +101,7 @@ T:*=0.49
|
|||
Z:A-D,60/60
|
||||
T:*=0.49
|
||||
Z:H,60/60
|
||||
T:*=0.06
|
||||
T:*=0.05
|
||||
################################################################
|
||||
P:23=tesion ))
|
||||
G:01.02.1999
|
||||
|
@ -248,7 +244,7 @@ G:03.03.1999
|
|||
C:Homepage: http://www.null1050.de
|
||||
C:Hotline: 01802/2002
|
||||
C:Faxabruf: 01802/2001
|
||||
I:01050/019251 # (Benutzername: talknet; Passwort: talknet; Nameserver: 195.252.128.53)
|
||||
I:019251 # (Benutzername: talknet; Passwort: talknet; Nameserver: 195.252.128.53)
|
||||
Z:2-3,60/60
|
||||
T:W08-21=0.18
|
||||
T:W21-08=0.09
|
||||
|
@ -273,7 +269,7 @@ T:*=0.09
|
|||
P:70=Arcor
|
||||
G:01.01.1999
|
||||
C:Mannesmann Arcor
|
||||
I:010700192070 # (Benutzername: arcor; Passwort: internet; Proxy: proxy.arcor-ip.de:80; Startseite: http://www.call.arcor.net)
|
||||
I:0192070 # (Benutzername: arcor; Passwort: internet; Proxy: proxy.arcor-ip.de:80; Startseite: http://www.call.arcor.net)
|
||||
Z:2-3,60/60
|
||||
T:W09-18=0.18 # Standard
|
||||
T:W18-09=0.10 # Spar
|
||||
|
@ -297,8 +293,7 @@ T:E=0.48
|
|||
Z:G,60/60
|
||||
T:*=2.72 # FIXME
|
||||
Z:H,60/60
|
||||
T:*09-18=0.14
|
||||
T:*18-09=0.10
|
||||
T:*=0.06
|
||||
################################################################
|
||||
P:79=Viatel
|
||||
G:24.12.1999
|
||||
|
@ -340,7 +335,7 @@ C:keine Tarifdaten veroeffentlicht!
|
|||
C:Vielmehr handelt es sich hier nur um die Tarife fuer den
|
||||
C:UUnet Ortstarif-Zugang!
|
||||
I:0191999
|
||||
Z:1,0.12
|
||||
Z:H,0.12
|
||||
T:W02-05=240 # Nacht
|
||||
T:W05-09=150 # Spar
|
||||
T:W09-18=90 # Standard
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: tools.c,v 1.20 1999/03/20 14:34:10 akool Exp $
|
||||
/* $Id: tools.c,v 1.21 1999/03/20 16:55:22 akool Exp $
|
||||
*
|
||||
* ISDN accounting for isdn4linux. (Utilities)
|
||||
*
|
||||
|
@ -19,6 +19,9 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log: tools.c,v $
|
||||
* Revision 1.21 1999/03/20 16:55:22 akool
|
||||
* isdnlog 3.09 : support for all Internet-by-call numbers
|
||||
*
|
||||
* Revision 1.20 1999/03/20 14:34:10 akool
|
||||
* - isdnlog Version 3.08
|
||||
* - more tesion)) Tarife from Michael Graw <Michael.Graw@bartlmae.de>
|
||||
|
@ -569,17 +572,19 @@ char *vnum(int chan, int who)
|
|||
flag |= C_NO_ERROR;
|
||||
#endif
|
||||
|
||||
if ((call[chan].sondernummer[who] != -1) || call[chan].intern[who]) {
|
||||
if ((call[chan].sondernummer[who] != UNKNOWN) || call[chan].intern[who] || call[chan].internetnumber[who]) {
|
||||
strcpy(call[chan].rufnummer[who], call[chan].num[who]);
|
||||
|
||||
if (cnf > -1)
|
||||
strcpy(retstr[retnum], call[chan].alias[who]);
|
||||
else if (call[chan].sondernummer[who] != -1) {
|
||||
else if (call[chan].sondernummer[who] != UNKNOWN) {
|
||||
if ((l1 = strlen(sondernum(call[chan].sondernummer[who]))) < l)
|
||||
sprintf(retstr[retnum], "%s - %s", sondernummername(call[chan].sondernummer[who]), call[chan].num[who] + l1);
|
||||
else
|
||||
strcpy(retstr[retnum], sondernummername(call[chan].sondernummer[who]));
|
||||
strcpy(retstr[retnum], sondernummername(call[chan].sondernummer[who]));
|
||||
}
|
||||
else if (call[chan].internetnumber[who])
|
||||
sprintf(retstr[retnum], "INTERNET %s", call[chan].num[who]);
|
||||
else
|
||||
sprintf(retstr[retnum], "TN %s", call[chan].num[who]);
|
||||
|
||||
|
@ -732,7 +737,7 @@ static char *ltoa(register unsigned long num, register char *p, register int rad
|
|||
while (--i);
|
||||
|
||||
return(p);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
/****************************************************************************/
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: tools.h,v 1.31 1999/03/20 14:34:17 akool Exp $
|
||||
/* $Id: tools.h,v 1.32 1999/03/20 16:55:27 akool Exp $
|
||||
*
|
||||
* ISDN accounting for isdn4linux.
|
||||
*
|
||||
|
@ -20,6 +20,9 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log: tools.h,v $
|
||||
* Revision 1.32 1999/03/20 16:55:27 akool
|
||||
* isdnlog 3.09 : support for all Internet-by-call numbers
|
||||
*
|
||||
* Revision 1.31 1999/03/20 14:34:17 akool
|
||||
* - isdnlog Version 3.08
|
||||
* - more tesion)) Tarife from Michael Graw <Michael.Graw@bartlmae.de>
|
||||
|
@ -691,6 +694,7 @@ typedef struct {
|
|||
char vnum[MAXMSNS][256];
|
||||
int provider;
|
||||
int sondernummer[MAXMSNS];
|
||||
int internetnumber[MAXMSNS];
|
||||
int intern[MAXMSNS];
|
||||
char id[32];
|
||||
char usage[16];
|
||||
|
@ -970,6 +974,7 @@ _EXTERN void showcheapest(int zone, int duration, int ignoreprovider, char *in
|
|||
_EXTERN void price(int chan, char *hint, int viarep);
|
||||
_EXTERN char *realProvidername(int prefix);
|
||||
_EXTERN void preparecint(int chan, char *msg, char *hint, int viarep);
|
||||
_EXTERN int isInternetAccess(int provider, char *number);
|
||||
_EXTERN int taktlaenge(int chan, char *why);
|
||||
_EXTERN void initSondernummern(char *msg);
|
||||
_EXTERN int is_sondernummer(char *number, int provider);
|
||||
|
|
Loading…
Reference in New Issue