isdnlog Version 3.30

- rate-de.dat V:1.02-Germany [03-Jun-1999 19:49:22]
 - small fixes
This commit is contained in:
Andreas Kool 1999-06-03 18:51:25 +00:00
parent 97b07fdb05
commit 9bea755f99
13 changed files with 1909 additions and 3920 deletions

View File

@ -19,6 +19,20 @@
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
## $Log$
## Revision 1.82 1999/05/22 10:17:50 akool
## isdnlog Version 3.29
##
## - processing of "sonderrufnummern" much more faster
## - detection for sonderrufnummern of other provider's implemented
## (like 01929:FreeNet)
## - Patch from Oliver Lauer <Oliver.Lauer@coburg.baynet.de>
## - Patch from Markus Schoepflin <schoepflin@ginit.de>
## - easter computing corrected
## - rate-de.dat 1.02-Germany [22-May-1999 11:37:33] (from rate-CVS)
## - countries-de.dat 1.02-Germany [22-May-1999 11:37:47] (from rate-CVS)
## - new option "-B" added (see README)
## (using "isdnlog -B16 ..." isdnlog now works in the Netherlands!)
##
## Revision 1.81 1999/05/13 11:38:43 akool
## isdnlog Version 3.28
##
@ -646,7 +660,7 @@ SERVICEFILE = /etc/services
# DON'T EDIT BELOW THIS LINE
######################################################################
VERSION = 3.29
VERSION = 3.30
MANPAGES = isdnlog/callerid.conf.5 isdnlog/isdn.conf.5 \
isdnlog/isdnformat.5 isdnlog/isdnlog.5 isdnlog/isdnlog.8 \

View File

@ -20,6 +20,9 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log$
* Revision 1.28 1999/06/01 19:33:27 akool
* rate-de.dat V:1.02-Germany [01-Jun-1999 20:52:32]
*
* Revision 1.27 1999/05/22 10:18:18 akool
* isdnlog Version 3.29
*
@ -716,27 +719,33 @@ static void showRates(RATE Rate, char *message)
} /* showRates */
#define WIDTH 13
static void showLCR(int duration)
{
auto int tz, hour, provider, lastprovider = UNKNOWN, lasthour = UNKNOWN, *p;
auto int useds = 0, maxhour, leastprovider = UNKNOWN;
auto int ignoreprovider = UNKNOWN;
auto RATE Rate;
auto int tz, hour, provider, lastprovider = UNKNOWN, lasthour = UNKNOWN, *p;
auto int useds = 0, maxhour, leastprovider = UNKNOWN;
auto int ignoreprovider = UNKNOWN;
auto int z, z1, z2, z3;
auto double price, bestRate, lastRate;
auto double lastDTAG, DTAGRate;
auto RATE Rate;
#if 0
auto int probe[] = { REGIOCALL, GERMANCALL, C_NETZ, D1_NETZ, D2_NETZ, E_PLUS_NETZ, E2_NETZ, INTERNET, AUKUNFT_IN, AUSKUNFT_AUS, 0 };
auto int probe[] = { REGIOCALL, GERMANCALL, C_NETZ, D1_NETZ, D2_NETZ, E_PLUS_NETZ, E2_NETZ, INTERNET, AUKUNFT_IN, AUSKUNFT_AUS, 0 };
#else
auto int probe[] = { REGIOCALL, GERMANCALL, D2_NETZ, INTERNET, AUKUNFT_IN, AUSKUNFT_AUS, 0 };
auto int probe[] = { REGIOCALL, GERMANCALL, D2_NETZ, INTERNET, AUKUNFT_IN, 0 };
#endif
auto int used[MAXPROVIDER];
auto int hours[MAXPROVIDER];
auto char lastmessage[BUFSIZ], message[BUFSIZ], *px;
auto int used[MAXPROVIDER];
auto int hours[MAXPROVIDER];
auto char lastmessage[BUFSIZ], message[BUFSIZ], *px;
auto struct tm *tm;
auto time_t werktag, wochenende;
auto char *msg;
time(&werktag);
print_msg(PRT_NORMAL, "Least-Cost-Routing-Table [Verbindungsdauer:%d Sekunden], Stand: %s\n", duration, ctime(&werktag) + 4);
print_msg(PRT_NORMAL, "Least-Cost-Routing-Table [Verbindungsdauer:%d Sekunden], Stand: %s (C)Copyright 1999 AKsoftware - Andreas Kool\n", duration, ctime(&werktag) + 4);
tm = localtime(&werktag);
@ -747,19 +756,21 @@ static void showLCR(int duration)
else
wochenende = werktag + ((6 - tm->tm_wday) * 24 * 60 * 60);
#if 0
retry:
#endif
memset(used, 0, sizeof(used));
memset(hours, 0, sizeof(hours));
for (tz = 0; tz < 2; tz++) { /* Werktag .. Wochendende */
for (tz = 0; tz < 2; tz++) { /* Werktag .. Wochenende */
switch (tz) {
case 0 : print_msg(PRT_NORMAL, "Werktag:\n");
case 0 : print_msg(PRT_NORMAL, "\nWerktag:\n");
tm = localtime(&werktag);
break;
case 1 : print_msg(PRT_NORMAL, "Wochenende/Feiertag:\n");
case 1 : print_msg(PRT_NORMAL, "\nWochenende/Feiertag:\n");
tm = localtime(&wochenende);
break;
} /* switch */
@ -771,7 +782,7 @@ retry:
switch (*p) {
case REGIOCALL : print_msg(PRT_NORMAL, " RegioCall (im Umkreis von 50 km):\n"); break;
case GERMANCALL : print_msg(PRT_NORMAL, " GermanCall (Deutschlandweit):\n"); break;
case D2_NETZ : print_msg(PRT_NORMAL, " Mobilfunk (alle Handy's 01610,01617,01619,01618,0170,0171,0172,0173,0177,0178,0176,0179):\n"); break;
case D2_NETZ : print_msg(PRT_NORMAL, " Mobilfunk (alle Handy's):\n"); break;
#if 0
case C_NETZ : print_msg(PRT_NORMAL, " C Mobilfunk:\n"); break;
case D1_NETZ : print_msg(PRT_NORMAL, " D1 Mobilfunk:\n"); break;
@ -793,19 +804,79 @@ retry:
tm->tm_hour = hour;
tm->tm_sec = tm->tm_min = 0;
memset(&Rate, 0, sizeof(Rate));
Rate.zone = *p;
z1 = *p;
if (z1 == D2_NETZ)
z2 = 30;
else if (z1 == INTERNET)
z2 = 159;
else if (z1 == AUKUNFT_IN)
z2 = 59;
else
z2 = z1;
z3 = UNKNOWN;
price = 999999.9;
for (z = z1; z <= z2; z++) {
memset(&Rate, 0, sizeof(Rate));
Rate.zone = z;
Rate.start = mktime(tm);
Rate.now = Rate.start + duration - ZAUNPFAHL;
provider = getLeastCost(&Rate, ignoreprovider);
/* print_msg(PRT_NORMAL, "z=%d, provider=%d, Rate.Price=%g\n", z, provider, Rate.Price); */
if (provider == UNKNOWN) /* Bitte keine L<>cken !! */
break;
if (Rate.Price < price) {
price = Rate.Price;
z3 = z;
} /* if */
} /* for */
if (z3 != UNKNOWN) {
memset(&Rate, 0, sizeof(Rate));
Rate.zone = z3;
Rate.start = mktime(tm);
Rate.now = Rate.start + duration - ZAUNPFAHL;
provider = getLeastCost(&Rate, ignoreprovider);
}
else
print_msg(PRT_NORMAL, "OOPS: cannot find cheapest provider?\n");
memset(&Rate, 0, sizeof(Rate));
Rate.prefix = provider;
Rate.zone = z3;
Rate.start = mktime(tm);
Rate.now = Rate.start + duration - ZAUNPFAHL;
provider = getLeastCost(&Rate, ignoreprovider);
(void)getRate(&Rate, &msg);
bestRate = Rate.Charge;
showRates(Rate, message);
memset(&Rate, 0, sizeof(Rate));
Rate.prefix = DTAG;
Rate.zone = z3;
Rate.start = mktime(tm);
Rate.now = Rate.start + duration - ZAUNPFAHL;
(void)getRate(&Rate, &msg);
DTAGRate = Rate.Charge;
#if 0
print_msg(PRT_NORMAL, "DEBUG::tz=%d, zone=%d, Hour=%02d, P=%d, %s lasthour=%d, lastprovider=%d, now=%s", tz, *p, hour, provider, getProvidername(provider), lasthour, lastprovider, ctime(&Rate.start));
#endif
if (lastprovider == UNKNOWN) {
lastRate = bestRate;
lastDTAG = DTAGRate;
lastprovider = provider;
strcpy(lastmessage, message);
} /* if */
@ -814,10 +885,16 @@ retry:
lasthour = hour;
if (provider != lastprovider) {
px = getProvidername(lastprovider);
if (lastprovider == UNKNOWN)
px = "";
else
px = getProvidername(lastprovider);
print_msg(PRT_NORMAL, " %02d:00 .. %02d:59 %s%02d:%s%*s(%s)\n",
lasthour, hour - 1, vbn, lastprovider, px, 14 - strlen(px), "", lastmessage);
print_msg(PRT_NORMAL, " %02d:00 .. %02d:59 %s%02d:%s%*s = %s %s (%s) [DTAG: %s %s]\n",
lasthour, hour - 1, vbn, lastprovider, px,
max(WIDTH, strlen(px)) - strlen(px), "", currency,
double2str(lastRate, 5, 3, DEB),
lastmessage, currency, double2str(lastDTAG, 5, 3, DEB), lastDTAG / lastRate * 100.0);
used[lastprovider] = 1;
@ -828,6 +905,8 @@ retry:
lastprovider = provider;
lasthour = hour;
lastRate = bestRate;
lastDTAG = DTAGRate;
strcpy(lastmessage, message);
} /* if */
@ -838,14 +917,19 @@ retry:
break;
} /* for */
if (lastprovider == UNKNOWN)
px = "";
else
px = getProvidername(lastprovider);
if ((lasthour == 7) && (hour == 7))
print_msg(PRT_NORMAL, " immer %s%02d:%s%*s(%s)\n",
vbn, lastprovider, px, 14 - strlen(px), "", lastmessage);
print_msg(PRT_NORMAL, " immer %s%02d:%s%*s = %s %s (%s) [DTAG: %s %s]\n",
vbn, lastprovider, px, max(WIDTH, strlen(px)) - strlen(px), "",
currency, double2str(lastRate, 5, 3, DEB), lastmessage, currency, double2str(lastDTAG, 5, 3, DEB));
else
print_msg(PRT_NORMAL, " %02d:00 .. %02d:59 %s%02d:%s%*s(%s)\n",
lasthour, hour - 1, vbn, lastprovider, px, 14 - strlen(px), "", lastmessage);
print_msg(PRT_NORMAL, " %02d:00 .. %02d:59 %s%02d:%s%*s = %s %s (%s) [DTAG: %s %s]\n",
lasthour, hour - 1, vbn, lastprovider, px, max(WIDTH, strlen(px)) - strlen(px), "",
currency, double2str(lastRate, 5, 3, DEB), lastmessage, currency, double2str(lastDTAG, 5, 3, DEB));
used[lastprovider] = 1;
@ -865,7 +949,7 @@ retry:
for (provider = 0; provider < MAXPROVIDER; provider++)
if (used[provider]) {
print_msg(PRT_NORMAL, "%s%02d:%s%*s(%d hours)\n", vbn, provider, getProvidername(provider), 14 - strlen(getProvidername(provider)), "", hours[provider]);
print_msg(PRT_NORMAL, "%s%02d:%s%*s(%d hours)\n", vbn, provider, getProvidername(provider), max(WIDTH, strlen(getProvidername(provider))) - strlen(getProvidername(provider)), "", hours[provider]);
useds++;
if (hours[provider] < maxhour) {
@ -874,7 +958,7 @@ retry:
} /* if */
} /* if */
#if 1
#if 0
if (useds == 6) {
if (ignoreprovider != leastprovider) {

View File

@ -19,6 +19,15 @@
* along with this program; if not, write to the Free Software
*
* $Log$
* Revision 1.22 1999/04/19 19:24:35 akool
* isdnlog Version 3.18
*
* - countries-at.dat added
* - spelling corrections in "countries-de.dat" and "countries-us.dat"
* - LCR-function of isdnconf now accepts a duration (isdnconf -c .,duration)
* - "rate-at.dat" and "rate-de.dat" extended/fixed
* - holiday.c and rate.c fixed (many thanks to reinelt@eunet.at)
*
* Revision 1.21 1999/04/10 16:35:22 akool
* isdnlog Version 3.13
*
@ -345,8 +354,12 @@ void logger(int chan)
"kostenlos", als auf "DM 1,00 geschenkt" stellen!
*/
if (call[chan].pay == -1.00)
call[chan].pay = 0.0;
if (call[chan].pay == -1.00) {
if (call[chan].aocpay > 0.0) /* besser als nix ... */
call[chan].pay = call[chan].aocpay;
else
call[chan].pay = 0.0;
} /* if */
fprintf(flog, "%s|%-16s|%-16s|%5d|%10d|%10d|%5d|%c|%3d|%10ld|%10ld|%s|%d|%d|%g|%s|%g|%3d|%3d|\n",
s + 4, call[chan].num[CALLING], call[chan].num[CALLED],

View File

@ -19,6 +19,20 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log$
* Revision 1.63 1999/05/22 10:18:34 akool
* isdnlog Version 3.29
*
* - processing of "sonderrufnummern" much more faster
* - detection for sonderrufnummern of other provider's implemented
* (like 01929:FreeNet)
* - Patch from Oliver Lauer <Oliver.Lauer@coburg.baynet.de>
* - Patch from Markus Schoepflin <schoepflin@ginit.de>
* - easter computing corrected
* - rate-de.dat 1.02-Germany [22-May-1999 11:37:33] (from rate-CVS)
* - countries-de.dat 1.02-Germany [22-May-1999 11:37:47] (from rate-CVS)
* - new option "-B" added (see README)
* (using "isdnlog -B16 ..." isdnlog now works in the Netherlands!)
*
* Revision 1.62 1999/05/13 11:39:24 akool
* isdnlog Version 3.28
*
@ -1587,7 +1601,9 @@ static void decode(int chan, register char *p, int type, int version, int tei)
call[chan].aoce = 1;
else
call[chan].aoce++;
} /* if */
}
else if (currency_mode == AOC_UNITS)
call[chan].aoce = n;
call[chan].aocpay = abs(n) * currency_factor;

View File

@ -24,6 +24,20 @@
*
*
* $Log$
* Revision 1.65 1999/05/22 10:18:50 akool
* isdnlog Version 3.29
*
* - processing of "sonderrufnummern" much more faster
* - detection for sonderrufnummern of other provider's implemented
* (like 01929:FreeNet)
* - Patch from Oliver Lauer <Oliver.Lauer@coburg.baynet.de>
* - Patch from Markus Schoepflin <schoepflin@ginit.de>
* - easter computing corrected
* - rate-de.dat 1.02-Germany [22-May-1999 11:37:33] (from rate-CVS)
* - countries-de.dat 1.02-Germany [22-May-1999 11:37:47] (from rate-CVS)
* - new option "-B" added (see README)
* (using "isdnlog -B16 ..." isdnlog now works in the Netherlands!)
*
* Revision 1.64 1999/05/04 19:33:01 akool
* isdnlog Version 3.24
*
@ -890,6 +904,7 @@ int read_logfile(char *myname)
/* initHoliday(holifile, NULL); FIXME */
/* initRate(rateconf, ratefile, NULL); FIXME */
interns0 = 3; /* FIXME */
vbn = strdup("010");
msn_sum = calloc(mymsns + 1, sizeof(double));
usage_sum = calloc(mymsns + 1, sizeof(int));

View File

@ -1,4 +1,4 @@
V:1.02-German [01-Jun-1999 21:31:35]
V:1.02-German [03-Jun-1999 19:46:35]
N:Usbekistan
A:Uzbekistan
@ -118,7 +118,8 @@ C:+90
N:Taiwan Mobilfunk
C:+8869
N:China (Taiwan)
N:Taiwan
A:China (Taiwan)
C:+886
N:Iridium 008817
@ -173,8 +174,8 @@ C:+871
N:China Mobilfunk
C:+86886, +8613
N:China (Volksrepublik)
A:China (People's Republic)
N:China
A:China (Volksrepublik), China (People's Republic)
C:+86
N:Laos
@ -195,8 +196,8 @@ C:+8529, +8522
N:Hongkong
C:+852
N:Korea (Dem. Republik) Nordkorea
A:Korea (Demokratische Republik), Korea (North), Korea (DVR), Nordkorea, Nordkorea (DVR), Korea (Nord), V.R. Korea, Korea Democratic Republic (north)
N:Nordkorea
A:Korea (Dem. Republik), Korea (Demokratische Republik), Korea (North), Korea (DVR), Nordkorea (DVR), Korea (Nord), V.R. Korea, Korea Democratic Republic (north)
C:+850
N:Vietnam
@ -205,8 +206,8 @@ C:+84
N:Korea Rep. (South) Mobilfunk
C:+8227, +821
N:Korea (Republik) Südkorea
A:Korea (Süd), Korea Rep. (South), Korea (Reublik), Südkorea, Südkorea (Republik), Republik Korea, Korea Republic (south)
N:Südkorea
A:Korea (Süd), Korea Rep. (South), Korea (Reublik), Südkorea (Republik), Republik Korea, Korea Republic (south), South Korea
C:+82
N:Japan Mobilfunk
@ -249,6 +250,7 @@ N:Chatham-Inseln
C:+6996
N:Wake Inseln
A:Wake Island
C:+6993
N:Marshallinseln
@ -278,12 +280,12 @@ N:Kiribati
A:Kirlbati
C:+686
N:Samoa (West)
A:Western Samoa
N:West-Samoa
A:Samoa (West), Western Samoa
C:+685
N:Amerikanisch-Samoa
A:Samoa (US), American Samoa
A:Samoa, Samoa (US), American Samoa
C:+684
N:Niue-Inseln
@ -295,7 +297,7 @@ A:Cook Islands
C:+682
N:Wallis und Futuna
A:Wallis & Fortuna Islands
A:Wallis- und Futuna-Inseln, Wallis & Fortuna Islands
C:+681
N:Palau /Belau
@ -326,19 +328,20 @@ C:+674
N:Brunei
C:+673
N:Weihnachtsinsel (Australien)
A:Weihnachtsinseln, Christmas Island (Antarctica)
N:Weihnachtsinseln
A:Weihnachtsinsel (Australien), Christmas Island, Christmas Island (Antarctica)
C:+6724
N:Norfolkinseln (Australien)
A:Norfolk Islands, Norfolk, Norfolk-Inseln, Norfolk Island (Antarctica)
N:Norfolkinseln
A:Norfolkinseln (Australien), Norfolk Islands, Norfolk, Norfolk Island, Norfolk Island (Antarctica)
C:+6723
N:Kokosinseln (Australien)
A:Cocos Island (Antarctica)
C:+6722
N:Kokosinseln
A:Kokosinseln (Australien), Cocos Island, Cocos Island (Antarctica)
C:+6722, +6189162
N:Antarktis
A:Antarctica
C:+6721, +672
N:Guam
@ -352,10 +355,11 @@ A:Singapore
C:+65
N:Pitcairn Inseln
N:Pitcairn Islands
C:+649
N:Neuseeland
A:New Zealand & Chatham Island
A:New Zealand, New Zealand & Chatham Island
C:+64
N:Philippinen
@ -366,9 +370,6 @@ N:Indonesien
A:Indonesia
C:+62
N:Kokos-Inseln
C:+6189162
N:Australien Mobilfunk
C:+61500, +6142, +6141, +6140, +6119, +6118, +6117, +6116, +6115, +6114, +6113, +6112, +61071
@ -557,10 +558,13 @@ C:+44171
N:Edinburgh
C:+44131
N:Großbritannien Insel Man Kanalinseln
A:Great Britain
N:Großbritannien
A:Großbritannien Insel Man Kanalinseln, Great Britain
C:+44
N:Nordirland
C:+44 /* Fixme */
N:Österreich Mobilfunk
C:+43699, +43676, +43664, +43663
@ -579,12 +583,12 @@ N:Liechtenstein
A:Lichtenstein
C:+423, +4175
N:Slowakei Slowakische Republik
A:Slowakische Rep., Slowakei, Slowak. Rep., Slowakische Republik
N:Slowakische Republik
A:Slowakei, Slowakische Rep., Slowak. Rep., Slovakia
C:+421
N:Tschechien Tschechische Republik
A:Tschechische Rep., Tschechische Republik, Tschechien, Tschech. Rep., Czech Republic
N:Tschechische Republik
A:Tschechien, Tschechische Rep., Tschech. Rep., Czech Republic
C:+420
N:Freephone Schweiz
@ -611,8 +615,8 @@ C:+40
N:Italien Mobilfunk
C:+39368, +39360, +39349, +39348, +39347, +39339, +39338, +39337, +39336, +39335, +39330, +39329, +39328
N:Vatikanstadt / Rom
A:Vatikanstadt, Vatican City
N:Vatikan
A:Vatikanstadt / Rom, Vatikanstadt, Vatican City
C:+379, +3906
N:Mailand
@ -638,8 +642,8 @@ N:Kroatien
A:Croatia
C:+385
N:Jugoslawien(Serbien/Montenegro)
A:Yugoslavia (Servia & Montenegro)
N:Jugoslawien
A:Jugoslawien (Serbien/Montenegro), Serbien, Montenegro, Yugoslavia (Servia & Montenegro)
C:+381
N:Ukraine
@ -654,8 +658,8 @@ C:+377
N:Andorra
C:+376
N:Weissrussland Belarus
A:Belarus
N:Weissrussland
A:Weissrussland Belarus, Belarus
C:+375
N:Armenien
@ -663,7 +667,7 @@ A:Armenia
C:+374
N:Moldavien Moldau (Republik)
A:Moldau Republik, Moldavien, Moldawien, Moldau (Republik), Moldau, Moldova
A:Moldau Republik, Moldavien, Moldawien, Moldau, Moldova
C:+373
N:Estland
@ -816,8 +820,8 @@ N:Gr
A:Greenland
C:+299
N:Färöer Faeröer
A:Faroe Islands
N:Färöer-Inseln
A:Färöer, Faroe Islands
C:+298
N:Aruba
@ -884,8 +888,8 @@ C:+257
N:Uganda
C:+256
N:Tansania Sansiba
A:Tanzania
N:Tansania
A:Sansiba, Tanzania
C:+255
N:Kenia
@ -910,8 +914,8 @@ C:+250
N:Sudan
C:+249
N:Seyschellen Seychellen
A:Seychelles Islands
N:Seyschellen
A:Seychellen, Seychelles Islands
C:+248
N:Ascension
@ -960,7 +964,7 @@ A:Zentral Afrika (Rep.), Central African Republic
C:+236
N:Tschad
A:Chad Republic
A:Chad, Chad Republic
C:+235
N:Nigeria
@ -989,7 +993,7 @@ A:Niger Republic
C:+227
N:Burkina Faso Obervolta
A:Obervolta, Burkina Faso, Burkina-Faso
A:Obervolta, Burkina Faso
C:+226
N:Elfenbeinküste Cote de Ivoire
@ -1013,8 +1017,8 @@ C:+221
N:Gambia
C:+220
N:Libyen Libysch-Arabische Dschamahirija
A:Libya
N:Libyen
A:Libysch-Arabische Dschamahirija, Libya
C:+218
N:Tunesien
@ -1037,6 +1041,7 @@ N:Alaska
C:+1907
N:Kanada
A:Canada
C:+1905, +1902, +1867, +1819, +1807, +1709, +1705, +1613, +1604, +1600, +1519, +1514, +1506, +1418, +1416, +1403, +1306, +1250, +1204
N:Jamaika
@ -1044,7 +1049,7 @@ A:Jamaica
C:+1876
N:St. Kitts und Nevis
A:St. Kitts & Nevis, Saint Kitts and Nevis, St Kitts, Nevis Islands, St. Kitts
A:St. Kitts & Nevis, Saint Kitts und Nevis, Saint Kitts and Nevis, St Kitts, Nevis Islands
C:+1869
N:Trinidad und Tobago
@ -1052,18 +1057,19 @@ A:Trinidad & Tobago, Trinidad and Tobago
C:+1868, +1809680, +180967, +180966, +180965, +180964, +180963, +180962, +1809619
N:Dominikanische Republik
A:Dominican Republic
C:+184, +1809971, +1809970, +1809908, +1809818, +1809814, +1809813, +1809810, +1809808, +1809807, +1809806, +1809710, +1809707, +1809701, +1809699, +1809698, +1809697, +1809696, +1809695, +1809694, +1809689, +1809688, +1809687, +1809686, +1809685, +1809684, +1809683, +1809682, +1809681, +1809616, +1809615, +1809612, +1809606, +1809604, +180959, +180958, +180957, +180956, +1809559, +1809558, +1809557, +1809556, +1809554, +1809553, +1809552, +1809551, +1809550, +180954, +180953, +180952, +1809519, +1809518, +1809512, +1809508, +1809506, +1809504, +1809481, +180947, +1809414, +1809412, +1809350, +1809343, +1809320, +1809310, +1809301, +1809299, +1809295, +1809293, +1809292, +1809291, +1809290, +1809282, +1809281, +1809280, +1809279, +1809278, +1809277, +1809276, +1809275, +1809274, +1809273, +1809248, +1809247, +1809246, +1809245, +1809244, +1809243, +1809242, +1809241, +1809240, +1809239, +1809238, +1809237, +1809236, +1809234, +1809233, +1809231, +1809227, +1809226, +1809225, +1809224, +1809223, +1809222, +1809221, +1809220, +1809209, +1809208, +1809204, +1809188
N:Turks- und Caicosinseln
A:Turks and Caicos Islands
A:Turks and Caicos Islands, Turks & Caicos Islands
C:+1809946, +1809941, +1649
N:Amerikanische Jungferninseln
A:Jungferninseln (USA), Amerikan. Jungferninseln
A:Jungferninseln (USA), Amerikan. Jungferninseln, American Virgin Isles
C:+180977, +1809719, +1809715, +1809714, +1809713, +1809712, +1809693, +1809692, +1809690, +1809611, +1809513, +1340
N:Britische Jungferninseln
A:Jungferninseln (GB), Jungferninseln (britisch)
A:Jungferninseln (GB), Jungferninseln (britisch), British Virgin Isles
C:+1809499, +1809496, +1809495, +1809494, +1809, +1284
N:St. Vincent und Grenadinen
@ -1099,11 +1105,11 @@ N:Bermuda
C:+1441
N:Kaimaninseln
A:Cayman Islands
A:Cayman-Inseln, Cayman Islands
C:+1345
N:Antigua und Barbuda
A:Antigua & Barbuda, Antigua & Barbadu, Antigua Und Barbadu
A:Antigua & Barbuda, Antigua & Barbadu, Antigua und Barbadu
C:+1268
N:Anguilla
@ -1116,5 +1122,5 @@ N:Bahamas
C:+1242
N:USA
A:United States of America & Canada
A:Vereinigte Staaten (USA), United States of America, United States of America & Canada
C:+1

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
V:1.02-Germany [01-Jun-1999 20:52:32]
V:1.02-Germany [03-Jun-1999 19:49:22]
# Diese Tariftabelle ist ein Service der I4L-Tarifdatenbank-Crew.
# Alle Angaben erfolgen ohne Gewähr
@ -10658,10 +10658,10 @@ Z:10-15 Mobil
T:*/*=0.69/60
Z:100 Talknet by call
A:019251 # (Benutzername: talknet; Passwort: talknet; DNS-Server: 195.252.128.53)
T:W/07-19=0.09(180)/60
T:W/19-22=0.07(180)/60
T:W/22-07=0.059(180)/60
T:E,H/*=0.06(180)/60
T:W/07-19=0.09(60)/180
T:W/19-22=0.07(60)/180
T:W/22-07=0.059(60)/180
T:E,H/*=0.06(60)/180
Z:40 Telefonauskunft
A:11850
T:*/*=0.968/0,0.12/7.5
@ -10682,10 +10682,10 @@ C:Adresse: Koenigsallee 60f
C: 40210 Duesseldorf
Z:2-4 Ferngespräche
T:*/*=0.09/60
Z:41 Telefonauskunft Inland (Austria, dial 01051004366211811)
Z:40 Telefonauskunft Inland (Austria, dial 01051004366211811)
A:+4366211811
T:*/*=0.25/60
Z:42 Telefonauskunft Ausland (Austria, dial 01051004366211812)
Z:41 Telefonauskunft Ausland (Austria, dial 01051004366211812)
A:+4366211812
T:*/*=0.25/60
Z:200
@ -11052,12 +11052,13 @@ C:Telecom Deutschland GmbH, Lyoner Str. 15, 60528 Frankfurt 01066
C:Bei Preselection sekundengenaue Taktung
G:01.04.1999
Z:2-4 National
T:W/9-18=0.18/60
T:W/18-9=0.10/60
T:E,H/*=0.10/80
T:W/08-17=0.14/60
T:W/17-08=0.08/60
T:E,H/08-17=0.10/80
T:E,H/17-08=0.08/80
Z:10-15 Mobil
T:W/9-18=0.58/60
T:W/18-9=0.48/60
T:W/08-17=0.58/60
T:W/17-08=0.48/60
T:E,H/*=0.48/60
Z:200 International (Top 12)
A:Australien, Belgien, Dänemark
@ -11066,17 +11067,17 @@ A:Gro
A:Norwegen, Österreich
A:Schweden, Schweiz
A:USA, Kanada
T:W/9-18=0.38/60
T:W/08-17=0.38/60
# bei Preselection:
# T:W/9-18=0.29(60)/1
T:W/18-9=0.29/60
# T:W/08-17=0.29(60)/1
T:W/17-08=0.29/60
T:E,H/*=0.29/60
Z:201 International B
A:Hong Kong, Irland, Israel
A:Italien, Japan, Liechtenstein
A:Luxemburg, Monaco, Spanien
T:W/9-18=0.48/60
T:W/18-9=0.38/60
T:W/08-17=0.48/60
T:W/17-08=0.38/60
T:E,H/*=0.38/60
Z:202 International C
A:Alaska, Albanien, Algerien
@ -11586,11 +11587,11 @@ T:W/08-20=0.419(60)/1
T:W/20-08=0.399(60)/1
T:E,H/08-20=0.419(60)/1
T:E,H/20-08=0.399(60)/1
Z:40 Telefonauskunft Inland (Austria)
Z:40 Telefonauskunft Inland (Austria, dial 01078004366211811)
A:+4366211811
T:*/08-20=0.319(60)/1
T:*/20-08=0.299(60)/1
Z:41 Telefonauskunft Ausland (Austria)
Z:41 Telefonauskunft Ausland (Austria, dial 01078004366211812)
A:+4366211812
T:*/08-20=0.319(60)/1
T:*/20-08=0.299(60)/1
@ -12884,13 +12885,14 @@ C:GmbH & Co. KG, Elsenheimer Stra
Z:2-4 Fern
T:W/08-18=0.15/60 Hauptzeit
T:W/18-21,6-8=0.10/60 Freizeit
T:E,H/*=0.10/60 Freizeit
# T:E,H/*=0.10/60 Freizeit
# Der "Meld' Dich mal wieder" Tarif gilt nur im Juni 1999!
T:E,H/*=0.029/60 Meld' Dich mal wieder
T:*/21-6=0.05/60 Traumzeit
Z:10-15 Mobil
T:W/08-18=0.89/60
T:W/18-21,6-8=0.10/60 Freizeit
T:E,H/*=0.10/60 Freizeit
T:*/21-6=0.49/60
T:W/18-08=0.49/60 Freizeit
T:E,H/*=0.49/60 Traumzeit
Z:21 Telefonauskunft
A:11881
T:*/*=1.59/0,0.22(60)/10

View File

@ -19,6 +19,9 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log$
* Revision 1.1 1999/05/27 18:19:57 akool
* first release of the new country decoding module
*
*/
/*
@ -42,10 +45,9 @@
#include <ctype.h>
#include <time.h>
#include <unistd.h>
#include <errno.h>
#if 0
extern const char *basename (const char *name);
#else
#include <errno.h>
#endif
#else
#include "isdnlog.h"
@ -94,7 +96,7 @@ static char *strip (char *s)
return s;
}
static char* str2set (char **s)
static char* str2list (char **s)
{
static char buffer[BUFSIZ];
char *p=buffer;
@ -117,14 +119,17 @@ static char *xlat (char *s)
do {
*p=tolower(*s);
switch (*p) {
case 'Ä':
case 'ä':
*p++='a';
*p ='e';
break;
case 'Ö':
case 'ö':
*p++='o';
*p ='e';
break;
case 'Ü':
case 'ü':
*p++='u';
*p ='e';
@ -134,8 +139,10 @@ static char *xlat (char *s)
*p ='s';
break;
}
p++;
if (isalnum(*p))
p++;
} while (*s++);
return buffer;
}
@ -276,10 +283,10 @@ int initCountry(char *path, char **msg)
}
s+=2;
while(1) {
if (*(n=strip(str2set(&s)))) {
if (*(n=strip(str2list(&s)))) {
x=xlat(n);
if ((c=findCountry(x))!=NULL) {
warning (path, "duplicate entry '%s', ignoring", n);
warning (path, "Ignoring duplicate entry '%s'", n);
} else {
Country[Index].Alias=realloc (Country[Index].Alias, (Country[Index].nAlias+1)*sizeof(char*));
Country[Index].Alias[Country[Index].nAlias]=strdup(x);
@ -304,11 +311,11 @@ int initCountry(char *path, char **msg)
}
s+=2;
while(1) {
if (*(n=strip(str2set(&s)))) {
if (*(n=strip(str2list(&s)))) {
if (*n!='+') {
warning (path, "code should start with '+', ignoring", n);
warning (path, "Code must start with '+'", n);
} else if ((c=findCountry(n))!=NULL) {
warning (path, "duplicate entry '%s', ignoring", n);
warning (path, "Ignoring duplicate entry '%s'", n);
} else {
Country[Index].Code=realloc (Country[Index].Code, (Country[Index].nCode+1)*sizeof(char*));
Country[Index].Code[Country[Index].nCode]=strdup(n);
@ -343,117 +350,63 @@ int initCountry(char *path, char **msg)
return nCountry;
}
#if 0
static int countrymatch(char *name, char *num)
int getCountry (char *name, COUNTRY **country)
{
register int i, test = (num == NULL);
auto char k[BUFSIZ];
char *xname;
int d, i, j, m;
strcpy(k, name);
down(k);
for (i = 0; i < nCountry; i++)
if ((test || !strncmp(Country[i].prefix, num, strlen(Country[i].prefix))) && !strncmp(Country[i].match, k, strlen(Country[i].match)))
return(i);
for (i = 0; i < nCountry; i++)
if ((test || !strncmp(Country[i].prefix, num, strlen(Country[i].prefix))) && strstr(Country[i].match, k))
return(i);
for (i = 0; i < nCountry; i++)
if ((test || !strncmp(Country[i].prefix, num, strlen(Country[i].prefix))) && strstr(Country[i].hints, k))
return(i);
for (i = 0; i < nCountry; i++)
if ((test || !strncmp(Country[i].prefix, num, strlen(Country[i].prefix))) && (wld(k, Country[i].match) <= DISTANCE))
return(i);
return(0);
} /* countymatch */
/* INPUT: "+372"
OUTPUT: "Estland"
INPUT: "Estland"
OUTPUT: "+372"
*/
int abroad(char *key, char *result)
{
register int i;
auto int mode, match = 0, res = 0;
auto char k[BUFSIZ];
*result = 0;
if (!memcmp(key, countryprefix, strlen(countryprefix))) /* +xxx */
mode = 1;
else { /* "Estland" */
mode = 2;
strcpy(k, key);
down(k);
} /* else */
if (mode == 1) {
for (i = 0; i < nCountry; i++) {
res = strlen(Country[i].prefix);
match = !strncmp(Country[i].prefix, key, res);
if (match)
break;
} /* for */
*country=NULL;
if (*name=='+') {
for (i=0; i<nCountry; i++) {
for (j=0; j<Country[i].nCode; j++) {
if (strcmp (name, Country[i].Code[j])==0) {
*country=&Country[i];
return 0;
}
}
}
return UNKNOWN;
}
else { /* mode == 2 */
res = 1;
for (i = 0; i < nCountry; i++)
if ((match = !strncmp(Country[i].match, k, strlen(Country[i].match))))
break;
xname=xlat(name);
if (!match)
for (i = 0; i < nCountry; i++)
if ((match = (strstr(Country[i].match, k) != NULL)))
break;
for (i=0; i<nCountry; i++) {
for (j=0; j<Country[i].nAlias; j++) {
if (strcmp(xname, Country[i].Alias[j])==0) {
*country=&Country[i];
return 0;
}
}
}
if (!match)
for (i = 0; i < nCountry; i++)
if ((match = (strstr(Country[i].hints, k) != NULL)))
break;
m=666; /* the number of the beast */
for (i=0; i<nCountry; i++) {
for (j=0; j<Country[i].nAlias; j++) {
if ((d=wld(xname, Country[i].Alias[j]))<m) {
m=d;
*country=&Country[i];
}
}
}
return m;
}
#if 0
if (!match)
for (i = 0; i < nCountry; i++)
if ((match = (wld(k, Country[i].match) <= DISTANCE)))
break;
#endif
} /* else */
if (match) {
if (mode == 1)
strcpy(result, Country[i].name);
else
strcpy(result, Country[i].prefix);
return(res);
} /* if */
return(0);
} /* abroad */
#endif
#ifdef STANDALONE
#ifdef COUNTRYTEST
void main (int argc, char *argv[])
{
char *msg;
COUNTRY *country;
char *msg;
int d, i;
initCountry ("../prefixes.dat", &msg);
printf ("%s\n", msg);
for (i=1; i<argc; i++) {
d=getCountry(argv[i], &country);
if (country==NULL)
printf ("<%s> unknown country!\n", argv[i]);
else
printf ("<%s>=<%s> d=%d\n", argv[i], country->Name, d);
}
}
#endif

View File

@ -19,6 +19,9 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log$
* Revision 1.1 1999/05/27 18:19:58 akool
* first release of the new country decoding module
*
*
*/
@ -35,5 +38,6 @@ typedef struct {
int initCountry(char *path, char **msg);
void exitCountry(void);
int getCountry(char *name, COUNTRY **country);
#endif

View File

@ -4,28 +4,22 @@
#include <string.h>
#include <ctype.h>
#define TABSTOP 40
#define TABSTOP 35
#define TAGSTOP 75
#define COUNT(array) sizeof(array)/sizeof(array[0])
typedef struct {
char *code;
char *name;
} COUNTRY;
COUNTRY *Country = NULL;
int nCountry = 0;
char *strip (char *s)
{
char *p;
while (*s==' ' || *s=='\t') s++;
while (isblank(*s)) s++;
for (p=s; *p; p++)
if (*p=='#' || *p=='\n') {
*p='\0';
break;
}
for (p--; p>s && (*p==' '||*p=='\t'); p--)
for (p--; p>s && isblank(*p); p--)
*p='\0';
return s;
}
@ -49,7 +43,7 @@ void rprintf (char *name, char *fmt, ...)
}
}
static char* str2set (char **s)
static char* str2list (char **s)
{
static char buffer[BUFSIZ];
char *p=buffer;
@ -64,179 +58,33 @@ static char* str2set (char **s)
return buffer;
}
char *xlat (char *s)
{
static char buffer[BUFSIZ];
char *p = buffer;
do {
*p=tolower(*s);
switch (*p) {
case 'ä':
*p++='a';
*p ='e';
break;
case 'ö':
*p++='o';
*p ='e';
break;
case 'ü':
*p++='u';
*p ='e';
break;
case 'ß':
*p++='s';
*p ='s';
break;
}
p++;
} while (*s++);
return buffer;
}
int min3(int x, int y, int z)
{
if (x < y)
y = x;
if (y < z)
z = y;
return(z);
}
#define WMAX 64
#define P 1
#define Q 1
#define R 1
int wld(char *needle, char *haystack) /* weighted Levenshtein distance */
{
int i, j;
int l1 = strlen(needle);
int l2 = strlen(haystack);
int dw[WMAX+1][WMAX+1];
dw[0][0]=0;
for (j=1; j<=WMAX; j++)
dw[0][j]=dw[0][j-1]+Q;
for (i=1; i<=WMAX; i++)
dw[i][0]=dw[i-1][0]+R;
for (i=1; i<=l1; i++)
for(j=1; j<=l2; j++)
dw[i][j]=min3(dw[i-1][j-1]+((needle[i-1]==haystack[j-1])?0:P),dw[i][j-1]+Q,dw[i-1][j]+R);
return(dw[l1][l2]);
}
void initCountry (char *path)
{
FILE *stream;
char buffer[BUFSIZ];
char *p, *s;
int n = 0;
if ((stream=fopen(path,"r"))==NULL) {
fprintf (stderr, "Error: could not load countries from %s: %s\n", path, strerror(errno));
return;
}
while ((s=fgets(buffer,BUFSIZ,stream))!=NULL) {
if (*(s=strip(s))=='\0')
continue;
p=s;
while (*p) {
if (isblank(*p))
break;
p++;
}
if (*p=='\0')
continue;
*p='\0';
p=strip(p+1);
if (*s=='0' && *(s+1)=='0')
*++s='+';
Country=realloc (Country, (nCountry+1)*sizeof(COUNTRY));
Country[nCountry].name=strdup(p);
Country[nCountry].code=strdup(s);
nCountry++;
n++;
}
fprintf (stderr, "loaded %d countries from %s\n", n, path);
return;
}
char *findArea (char *country)
{
char buffer[BUFSIZ];
int c, i, m, w;
c=0;
w=0;
m=666;
strcpy (buffer, xlat(country));
for (i=0; i<nCountry; i++)
if ((w=wld (buffer, xlat(Country[i].name)))<m) {
m=w;
c=i;
}
if (m>0)
fprintf (stderr, "%s = %s?\n", country, Country[c].name);
return Country[c].code;
}
static int byArea(const void *a, const void *b)
{
return strcmp (((COUNTRY*)a)->code, ((COUNTRY*)b)->code);
}
void print_area(char *area)
{
int nArea=0;
COUNTRY *Area=NULL;
char comment[BUFSIZ];
char *a, *b;
int i;
int col;
char *a;
if (!*area)
return;
col = 0;
while (1) {
if (*(a=strip(str2set(&area)))) {
Area=realloc(Area, (nArea+1)*sizeof(COUNTRY));
if (*a=='+') {
Area[nArea].code=strdup(a);
Area[nArea].name=*(a+1)=='\0'?strdup("alle übrigen Länder"):NULL;
} else if (strcmp(a,"0663")==0) {
Area[nArea].code=strdup("+43663");
Area[nArea].name=strdup("C-Netz");
} else if (strcmp(a,"0664")==0) {
Area[nArea].code=strdup("+43664");
Area[nArea].name=strdup("D-Netz");
} else if (strcmp(a,"0676")==0) {
Area[nArea].code=strdup("+43676");
Area[nArea].name=strdup("max.mobil");
} else if (strcmp(a,"0699")==0) {
Area[nArea].code=strdup("+43699");
Area[nArea].name=strdup("one");
} else if (strcmp(a,"07189")==0) {
Area[nArea].code=strdup("+437189");
Area[nArea].name=strdup("Online-Zone");
} else if (strcmp(a,"19430")==0) {
Area[nArea].code=strdup("+43*19430");
Area[nArea].name=strdup("Magnet");
} else if (strcmp(a,"19440")==0) {
Area[nArea].code=strdup("+43*19440");
Area[nArea].name=strdup("A-Online");
if (*(a=strip(str2list(&area)))) {
if (*a=='+' && *(a+1)=='\0') {
if (col) {
printf ("\n");
col=0;
}
rprintf ("alle übrigen Länder", "A:+");
} else {
Area[nArea].code=strdup(findArea(a));
Area[nArea].name=strdup(a);
if (col+strlen(a) > TAGSTOP) {
printf ("\n");
col=0;
}
if (col)
col+=printf (", %s", a);
else
col=printf ("A:%s", a);
}
nArea++;
}
if (*area==',') {
area++;
@ -244,32 +92,8 @@ void print_area(char *area)
}
break;
}
qsort(Area, nArea, sizeof(COUNTRY), byArea);
a=""; b="";
for (i=0; i<nArea; i++) {
if (strcmp(a,Area[i].code)==0) {
sprintf (comment, "%s, %s", b, Area[i].name);
free (Area[i-1].code);Area[i-1].code=NULL;
free (Area[i-1].name);Area[i-1].name=NULL;
free (Area[i].name);Area[i].name=strdup(comment);
}
a=Area[i].code;
b=Area[i].name;
}
for (i=0; i<nArea; i++) {
if (Area[i].code) {
if (Area[i].name) {
sprintf (comment, "# %s", Area[i].name);
rprintf (comment, "A:%s", Area[i].code);
free (Area[i].name);
} else {
rprintf (NULL, "A:%s", Area[i].code);
}
free (Area[i].code);
}
}
free (Area);
if (col)
printf ("\n");
}
void rate_sample(void) {
@ -303,12 +127,12 @@ void rate_1001(void) {
double Tarif[] = { 1.116, 1.056, 0.996, 0.936, 0.816 };
char *Zone[][2] = {{"FreePhone", "+43660" },
{ "Regionalzone", "" },
char *Zone[][2] = {{"FreePhone", "+43800" },
{ "Regionalzone", "+43660" },
{ "Fernzone 1", "" },
{ "Fernzone 2", "Österreich" },
{ "Online-Tarif", "07189,19430,19440" },
{ "Mobilfunk", "0663,0664,0676,0699" },
{ "Online-Tarif", "+437189,19430,19440" },
{ "Mobilfunk", "+43663,+43664,+43676,+43699" },
{ "Ausland Zone 1", "Deutschland, Italien, Liechtenstein, Schweiz, Slowakei, Slowenien, Tschechien, Ungarn" },
{ "Ausland Zone 2", "Albanien, Andorra, Belarus, Belgien, Bosnien-Herzegowina, Bulgarien, Dänemark,Finnland, Frankreich, Großbritannien, Nordirland, Irland, Jugoslawien, Serbien, Montenegro, Kroatien, Luxemburg, Malta, Mazedonien, Monaco, Niederlande, Norwegen, Rumänien, San Marino, Schweden, Spanien, Ukraine, Vatikanstadt, Zypern" },
{ "Ausland Zone 3", "Algerien, Estland, Färöer-Inseln, Georgien, Gibraltar, Island, Israel, Lettland, Litauen, Marokko, Portugal, Russische Föderation, Tadschikistan, Turkmenistan, Usbekistan" },
@ -412,7 +236,7 @@ void rate_1002(void) {
char *Zone[][2] = {{ "Bundeslandzone", "" },
{ "Österreichzone", "Österreich" },
{ "special friends", "" },
{ "Mobilnetz", "0663,0664,0676,0699" },
{ "Mobilnetz", "+43663,+43664,+43676,+43699" },
{ "EasyInternet", "" },
{ "Nachbarländer West", "Deutschland, Italien, Liechtenstein, Schweiz" },
{ "Nachbarländer Ost", "Slowakei, Slowenien, Tschechien, Ungarn" },
@ -463,7 +287,7 @@ void rate_1003(void) {
{ "Fernzone 1", "" },
{ "5 Freunde", "" },
{ "Fernzone 2", "Österreich" },
{ "Mobilfunk", "0663,0664,0676,0699" },
{ "Mobilfunk", "+43663,+43664,+43676,+43699" },
{ "Deutschland spezial", "Deutschland" },
{ "Europa spezial", "Belgien, Frankreich, Großbritannien" },
{ "Ausland Zone 1", "Czech Republic, Hungary, Italy, Slovakia, Slovenia, Switzerland" },
@ -514,7 +338,7 @@ void rate_1003(void) {
void rate_1005(void) {
char *Zone[][2] = {{ "National", "Österreich" },
{ "Mobilfunknetz", "0663,0664,0676,0699" },
{ "Mobilfunknetz", "+43663,+43664,+43676,+43699" },
{ "Europa 1 / USA", "Belgien, Dänemark, Deutschland, Finnland, Frankreich, Griechenland, Grossbritannien, Irland, Italien, Liechtenstein, Luxemburg, Monaco, Niederlande, Nordirland, Norwegen, Schweden, Schweiz, Slowakei, Slowenien, Spanien, Tschechien, Ungarn" },
{ "Europa 2", "Albanien, Algerien, Andorra, Bosnien-Herzegowina, Bulgarien, Estland, Färöer-Inseln, Gibraltar, Island, Israel, Jugoslawien, Kroatien, Lettland, Litauen, Mazedonien, Malta, Marokko, Polen, Portugal, Rumänien, Russland, San Marino, Tunesien, Türkei, Zypern" },
{ "Welt 1", "Australien, Hongkong, Japan, Neuseeland, Südkorea, Singapur" },
@ -541,7 +365,7 @@ void rate_1007(void) {
char *Zone[][2] = {{ "Fernzone 1", "" },
{ "Fernzone 2", "Österreich" },
{ "Mobilfunk", "0663,0664,0676,0699" },
{ "Mobilfunk", "+43663,+43664,+43676,+43699" },
{ "Ausland Zone 1", "Deutschland, Italien, Liechtenstein, Schweiz, Slowakei, Slowenien, Tschechien, Ungarn" },
{ "Ausland Zone 2", "Albanien, Andorra, Belarus, Belgien, Bosnien-Herzegowina, Bulgarien, Dänemark,Finnland, Frankreich, Großbritannien, Nordirland, Irland, Jugoslawien, Serbien, Montenegro, Kroatien, Luxemburg, Malta, Mazedonien, Monaco, Niederlande, Norwegen, Rumänien, San Marino, Schweden, Spanien, Ukraine, Vatikanstadt, Zypern" },
{ "Ausland Zone 3", "Algerien, Estland, Färöer-Inseln, Georgien, Gibraltar, Island, Israel, Lettland, Litauen, Marokko, Portugal, Russische Föderation, Tadschikistan, Turkmenistan, Usbekistan" },
@ -634,7 +458,7 @@ void rate_1011(void) {
char *Zone[][2] = {{ "Bundesland", "" },
{ "Österreich", "Österreich" },
{ "Mobilfunk", "0663,0664,0676,0699" },
{ "Mobilfunk", "+43663,+43664,+43676,+43699" },
{"Deutschland", "Deutschland"},
{"Ausland 1", "Frankreich, Großbritannien, Italien, Liechtenstein, Paraguay, Schweiz, Slowakei, Slowenien, Tschechien, Ungarn, Vatikanstadt"},
{"Ausland 2", "Belgien, Dänemark, Finnland, Irland, Kanada, Luxemburg, Niederlande, Norwegen, Papua-Neuguinea, San Marino, Schweden, Spanien, Vereinigte Staaten (USA)"},
@ -699,7 +523,7 @@ void rate_1012(void) {
char *Zone[][2] = {{ "Nah", "" },
{ "Fern", "Österreich" },
{ "Mobilfunk", "0663,0664,0676,0699" },
{ "Mobilfunk", "+43663,+43664,+43676,+43699" },
{ "Deutschland spezial", "Deutschland" },
{ "Nachbarn", "Frankreich, Italien, Schweiz, Liechtenstein, Slowakei, Slowenien, Tschechien, Ungarn" },
{ "Europa 1 + USA", "Belgien, Dänemark, Finnland, Großbritannien, Irland, Kanada, Luxemburg, Niederlande, Norwegen, Schweden, Spanien, Vereinigte Staaten (USA)" },
@ -790,8 +614,8 @@ void rate_1029(void) {
char *Zone[][2] = {{ "Regionalzone", "" },
{ "Fernzone 1", "" },
{ "Fernzone 2", "Österreich" },
{ "Mobilfunk A1, max", "0663,0664,0676" },
{ "Mobilfunk One", "0699" },
{ "Mobilfunk A1, max", "+43663,+43664,+43676" },
{ "Mobilfunk One", "+43699" },
{ "Deutschland", "Deutschland" },
{ "Schweiz", "Schweiz" },
{ "USA", "Vereinigte Staaten (USA)" },
@ -859,7 +683,7 @@ void rate_1044(void) {
char *Zone[][2] = {{ "Regional", "" },
{ "Österreich", "Österreich" },
{ "Mobilfunk", "0663,0664,0676,0699" },
{ "Mobilfunk", "+43663,+43664,+43676,+43699" },
{ "Ausland", "+" }};
double Tarif[][2] = {{ 1.20, 1.20 },
@ -892,7 +716,7 @@ void rate_1049(void) {
char *Zone[][2] = {{ "Regionalzone", ""},
{ "Fernzone 1", "" },
{ "Fernzone 2", "Österreich" },
{ "Mobilfunk", "0663,0664,0676,0699" },
{ "Mobilfunk", "+43663,+43664,+43676,+43699" },
{ "Europa 1", "Deutschland, Italien, Liechtenstein, Schweiz, Slowakei, Slowenien, Tschechien, Ungarn" },
{ "Europa 2", "Albanien, Andorra, Belarus, Belgien, Bosnien-Herzegowina, Bulgarien, Dänemark,Finnland, Frankreich, Großbritannien, Nordirland, Irland, Jugoslawien, Serbien, Montenegro, Kroatien, Luxemburg, Malta, Mazedonien, Monaco, Niederlande, Norwegen, Rumänien, San Marino, Schweden, Spanien, Ukraine, Vatikanstadt, Zypern" },
{ "Global 1", "Algerien, Estland, Färöer-Inseln, Georgien, Gibraltar, Island, Israel, Lettland, Litauen, Marokko, Portugal, Russische Föderation, Tadschikistan, Turkmenistan, Usbekistan" },
@ -949,9 +773,10 @@ void rate_1066(void) {
char *Zone[][2] = {{ "Regionalzone", "" },
{ "Österreich", "Österreich" },
{ "Mobilfunk", "0663,0664,0676,0699" },
{ "Mobilfunk", "+43663,+43664,+43676,+43699" },
{ "Euro 1", "Deutschland, Frankreich, Großbritannien, Nordirland, Italien, Liechtenstein, Schweiz, Slowakei, Slowenien, Tschechien, Ungarn" },
{ "Euro 2", "Andorra, Belarus, Belgien, Bosnien-Herzegowina, Bulgarien, Dänemark, Estland, Finnland, Griechenland, Irland, Jugoslawien, Kroatien, Luxemburg, Monaco, Niederlande, Norwegen, Polen, Portugal, Rumänien, San Marino, Schweden, Spanien, Tunesien, Türkei, Ukraine, Vatikanstadt, Zypern" },
/* Fixme: nur Stadt Luxemburg! (wie nennen wir's?) */
{ "Euro City", "Amsterdam, Brüssel, Frankfurt, London, Luxemburg, Mailand, Paris, Zürich" },
{ "Welt 1", "Hawaii, Amerikanische Jungferninseln, Puerto Rico, Vereinigte Staaten (USA), Kanada" },
{ "Welt 2", "Albanien, Antarktis, Armenien, Aserbaidschan, Australien, Bahamas, Chile, Weihnachtsinseln, Kokosinseln, Dominikanische Republik, Georgien, Gibraltar, Guadeloupe, Französisch-Guayana, Hongkong, Island, Israel, Japan, Lettland, Libyen, Litauen, Mazedonien, Malaysia, Malta, Marokko, Martinique, Mayotte, Moldau, Neuseeland, Niederländische Antillen, Philippinen, Russische Föderation, Reunion, St. Pierre und Miquelon, Singapur, Südafrika, Südkorea, Saipan" },
@ -989,8 +814,8 @@ void rate_1066(void) {
void rate_1069(void) {
char *Zone[][2] = {{ "Festnetz", "Österreich" },
{ "ONE Mobilfunknetz", "0699" },
{ "andere Mobilfunknetze", "0663,0664,0676" },
{ "One Mobilfunknetz", "+43699" },
{ "andere Mobilfunknetze", "+43663,+43664,+43676" },
{ "EU und Nachbarländer", "Belgien, Dänemark, Deutschland, Finnland, Frankreich, Großbritannien, Irland, Italien, Liechtenstein, Luxemburg, Niederlande, Norwegen, Schweden, Schweiz, Slowakei, Slowenien, Spanien, Tschechien, Ungarn" },
{ "Internationale Zone 2", "Andorra, Australien, Bosnien-Herzegowina, Griechenland, Island, Japan, Jugoslawien, Kanada, Kroatien, Malta, Monaco, Neuseeland, Polen, Portugal, Puerto Rico, Mazedonien, San Marino, Vereinigte Staaten (USA), Vatikanstadt" },
{ "Internationale Zone 3", "Albanien, Algerien, Bulgarien, Estland, Gibraltar, Hongkong, Israel, Lettland,Litauen, Marokko, Rumänien, Rußland, Singapur, Tunesien, Türkei, Ukraine, Weißrußland, Zypern" },
@ -1020,10 +845,6 @@ void rate_1069(void) {
void main (int argc, char *argv[])
{
initCountry ("../countries-at.dat");
initCountry ("../countries-de.dat");
initCountry ("../countries-us.dat");
printf ("# created by rate-at.c\n\n");
printf ("# The information herein was machine-generated,\n");
printf ("# so do not contribute patches to this file.\n\n");
@ -1032,7 +853,8 @@ void main (int argc, char *argv[])
printf ("# Many thanks to Daniela Bruder <dbruder@sime.com>\n");
printf ("# for collecting and preparing most of the call charges.\n\n\n");
printf ("V:1.22-Austria [28-Apr-1999]\n");
printf ("V:1.40-Austria [01-Jun-1999]\n\n");
printf ("F:%%.3f öS\n");
#if 0
rate_1066();

View File

@ -19,6 +19,20 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log$
* Revision 1.27 1999/05/22 10:19:33 akool
* isdnlog Version 3.29
*
* - processing of "sonderrufnummern" much more faster
* - detection for sonderrufnummern of other provider's implemented
* (like 01929:FreeNet)
* - Patch from Oliver Lauer <Oliver.Lauer@coburg.baynet.de>
* - Patch from Markus Schoepflin <schoepflin@ginit.de>
* - easter computing corrected
* - rate-de.dat 1.02-Germany [22-May-1999 11:37:33] (from rate-CVS)
* - countries-de.dat 1.02-Germany [22-May-1999 11:37:47] (from rate-CVS)
* - new option "-B" added (see README)
* (using "isdnlog -B16 ..." isdnlog now works in the Netherlands!)
*
* Revision 1.26 1999/05/09 18:24:28 akool
* isdnlog Version 3.25
*
@ -678,7 +692,11 @@ char *vnum(int chan, int who)
} /* if */
} /* if */
if ((ptr = get_areacode(call[chan].num[who], &ll, flag)) != 0) {
if (!memcmp(call[chan].num[who], "+49173", 5)) {
strcpy(call[chan].area[who], "D2 Mobilfunknetz");
l = 6;
}
else if ((ptr = get_areacode(call[chan].num[who], &ll, flag)) != 0) {
strcpy(call[chan].area[who], ptr);
l = ll;
got++;

View File

@ -20,6 +20,20 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log$
* Revision 1.42 1999/05/22 10:19:36 akool
* isdnlog Version 3.29
*
* - processing of "sonderrufnummern" much more faster
* - detection for sonderrufnummern of other provider's implemented
* (like 01929:FreeNet)
* - Patch from Oliver Lauer <Oliver.Lauer@coburg.baynet.de>
* - Patch from Markus Schoepflin <schoepflin@ginit.de>
* - easter computing corrected
* - rate-de.dat 1.02-Germany [22-May-1999 11:37:33] (from rate-CVS)
* - countries-de.dat 1.02-Germany [22-May-1999 11:37:47] (from rate-CVS)
* - new option "-B" added (see README)
* (using "isdnlog -B16 ..." isdnlog now works in the Netherlands!)
*
* Revision 1.41 1999/05/13 11:40:11 akool
* isdnlog Version 3.28
*
@ -514,22 +528,15 @@
#define CITYCALL 2
#define REGIOCALL 3
#define GERMANCALL 4
#define C_MOBILBOX 5
#define C_NETZ 6
#define D1_NETZ 7
#define D2_NETZ 8
#define E_PLUS_NETZ 9
#define C_MOBILBOX 10
#define C_NETZ 10
#define D1_NETZ 10
#define D2_NETZ 10
#define E_PLUS_NETZ 10
#define E2_NETZ 10
#define EURO_CITY 11
#define EURO_1 12
#define EURO_2 13
#define WELT_1 14
#define WELT_2 15
#define WELT_3 16
#define WELT_4 17
#define INTERNET 20
#define AUKUNFT_IN 21
#define AUSKUNFT_AUS 22
#define INTERNET 100
#define AUKUNFT_IN 40
#define AUSKUNFT_AUS 41
/* Fixme: this is specific to Germany */
#define DTAG 33