diff --git a/isdnlog/Makefile.in b/isdnlog/Makefile.in index 09513e5a..57cdff81 100644 --- a/isdnlog/Makefile.in +++ b/isdnlog/Makefile.in @@ -19,6 +19,12 @@ ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ## ## $Log$ +## Revision 1.85 1999/06/13 14:06:53 akool +## isdnlog Version 3.32 +## +## - new option "-U1" (or "ignoreCOLP=1") to ignore CLIP/COLP Frames +## - TEI management decoded +## ## Revision 1.84 1999/06/09 19:57:22 akool ## isdnlog Version 3.31 ## - Release 0.91 of zone-Database (aka "Verzonungstabelle") @@ -670,7 +676,7 @@ SERVICEFILE = /etc/services # DON'T EDIT BELOW THIS LINE ###################################################################### -VERSION = 3.32 +VERSION = 3.33 MANPAGES = isdnlog/callerid.conf.5 isdnlog/isdn.conf.5 \ isdnlog/isdnformat.5 isdnlog/isdnlog.5 isdnlog/isdnlog.8 \ @@ -706,7 +712,8 @@ ISDNLOG_OBJS = isdnlog/isdnlog.o isdnlog/processor.o isdnlog/functions.o \ isdnlog/server.o isdnlog/start_prog.o isdnlog/messages.o \ connect/connect.o connect/socket.o tools/tools.o \ connect/conv_address.o isdnlog/user_access.o \ - tools/isdnconf.o tools/rate.o tools/holiday.o \ + tools/isdnconf.o \ + tools/rate.o tools/zone.o tools/country.o tools/holiday.o \ isdnlog/asn1.o isdnlog/asn1_generic.o isdnlog/asn1_aoc.o \ isdnlog/asn1_address.o isdnlog/asn1_diversion.o \ isdnlog/asn1_basic_service.o isdnlog/asn1_comp.o \ @@ -727,11 +734,11 @@ endif ISDNREP_OBJS = isdnrep/rep_main.o tools/tools.o tools/isdnconf.o \ isdnlog/messages.o isdnrep/isdnrep.o \ - tools/rate.o tools/holiday.o \ + tools/rate.o tools/zone.o tools/country.o tools/holiday.o \ $(LIBISDNDIR)/libisdn.a ISDNCONF_OBJS= isdnconf/isdnconf.o tools/tools.o tools/isdnconf.o \ - tools/rate.o tools/holiday.o \ + tools/rate.o tools/zone.o tools/country.o tools/holiday.o \ $(LIBISDNDIR)/libisdn.a ISDNLOG = bin/isdnlog diff --git a/isdnlog/README b/isdnlog/README index 04c39e75..255ed4c3 100644 --- a/isdnlog/README +++ b/isdnlog/README @@ -3979,6 +3979,12 @@ Nun die Eintraege im einzelnen: Hiermit wird die Version der Tarifdatenbank angegeben. V:Versionsstring (Vorschlag: 1.0-Germany [18-Mar-1999]) +-> U: + +Damit wird das Währungsformat und die Anzahl der Dezimalstellen +angegeben, z.B. +U:%.3 DM + -> P: Hiermit beginnt die Definition des (naechsten) Providers. @@ -4023,6 +4029,15 @@ von isdnlog noch gesondert verwendet werden, und sollten daher zumindest genug Informationen enthalten, um eine Kontaktaufnahme mit der jeweiligen Telefongesellschaft zu ermoeglichen. +-> D: + +Damit wird die Art der Inlandsverzonung (D steht für Domestic) angegeben. +Der Name wird mit dem Eintrag in der isdn.conf + +ZONEFILE=/usr/lib/isdn/zone-de-%s.dat + +zum Pfad zur Verzonungstabelle zusammengebaut. Mehrere Provider können +dieselbe Verzonungstabelle nutzen. Nun folgen die eigentlichen Tarifinformationen. Es wird zuerst die Tarifzone, und danach die Kosten innerhalb dieser Zone angegeben. Es koennen diff --git a/isdnlog/configure.in b/isdnlog/configure.in index bfc2fa6c..06fe77b6 100644 --- a/isdnlog/configure.in +++ b/isdnlog/configure.in @@ -116,8 +116,8 @@ AC_PROG_MAKE_SET AC_PATH_PROGS(BZIP2, bzip2, /usr/bin/bzip2, $PATH:/bin:/usr/bin:/usr/local/bin) dnl Checks for libraries. -AC_CHECK_LIB(dbm, dbm_open, DBMLIB=-ldbm; AC_DEFINE(HAVE_LIBDBM), - AC_CHECK_LIB(gdbm, gdbm_open, DBMLIB=-lgdbm; AC_DEFINE(HAVE_LIBGDBM), +AC_CHECK_LIB(gdbm, gdbm_open, DBMLIB=-lgdbm; AC_DEFINE(HAVE_LIBGDBM), + AC_CHECK_LIB(dbm, dbm_open, DBMLIB=-ldbm; AC_DEFINE(HAVE_LIBDBM), AC_CHECK_LIB(db, dbm_open, DBMLIB=-ldb; AC_DEFINE(HAVE_LIBDB)))) AC_CHECK_POSTGRES AC_CHECK_MYSQLDB diff --git a/isdnlog/countries-de.dat b/isdnlog/countries-de.dat index 7be29072..94edc64c 100644 --- a/isdnlog/countries-de.dat +++ b/isdnlog/countries-de.dat @@ -1,800 +1,1130 @@ -V:1.02-Germany [01-Jun-1999 20:52:35] +V:1.02-German [03-Jun-1999 19:46:35] -# $Id$ -# -+999:DUMMY -+998:Usbekistan:Uzbekistan -+996:Kirgisien -+995:Georgien -+994:Aserbaidschan -+993:Turkmenistan -+992:Tadschikistan:Tajikistan -+98:Iran:Iran (Islamische Republik) -+977:Nepal -+976:Mongolei:Mongolische VR -+975:Bhutan -+974:Katar -+973:Bahrain -+97255:Israel Mobilfunk -+97254:Israel Mobilfunk -+97253:Israel Mobilfunk -+97252:Israel Mobilfunk -+97251:Israel Mobilfunk -+97250:Israel Mobilfunk -+972:Israel -+971:Ver. Arabische Emirate:Vereinigte Arabische Emirate:Ver.Arab. Emirate:Vereinigte Arab. Emirate -+969:Jemen, (Arab. Republik):Jemen (Arabische Republik):Jemen:Jemen Arab. Rep. -+968:Oman:Oman (Sultanat) -+967:Jemen, (Arab. Republik):Jemen (Arabische Republik):Jemen Arab. Rep.:Jemen -+966:Saudi Arabien:Saudi-Arabien -+965:Kuwait:Kuweit -+964:Irak -+963:Syrien:Syrien (Arabische Republik) -+962:Jordanien -+9613:Libanon Mobilfunk -+961:Libanon -+960:Malediven -+95:Myanmar, Burma:Myanmar (Birma):Burma:Birma:Myanmar:Birma (Myanmar) -+94:Sri Lanka -+93:Afghanistan -+92:Pakistan -+91:Indien -+905:Türkei Mobilfunk -+90:Türkei:Türkei, Nordzypern:Zypern (türk.):Zypern (Nordzypern):Zypern (Türkisch) -+8869:Taiwan Mobilfunk -+886:China, (Taiwan):Taiwan:China (Taiwan) -+8817:Iridium 008817:Iridium B:Iridium Iridium-Homed -+8816:Iridium 008816:Iridium A:Iridium GSM-Homed -+880:Bangladesch:Bangladesh -+8748:Inmarsat A Daten/Fax -+87476:Inmarsat Mini-M:Inmarsat Phone (Mini-M) -+8746:Inmarsat M -+8745:Inmarsat Aero -+87439:Inmarsat B HSD -+8743:Inmarsat B -+8741:Inmarsat A -+874:Atlantischer Ozean (West) -+8738:Inmarsat A Daten/Fax -+87376:Inmarsat Mini-M:Inmarsat Phone (Mini-M) -+8736:Inmarsat M -+8735:Inmarsat Aero -+87339:Inmarsat B HSD -+8733:Inmarsat B -+8731:Inmarsat A -+873:Indischer Ozean -+8728:Inmarsat A Daten/Fax -+87276:Inmarsat Mini-M:Inmarsat Phone (Mini-M) -+8726:Inmarsat M -+8725:Inmarsat Aero -+87239:Inmarsat B HSD -+8723:Inmarsat B -+8721:Inmarsat A -+872:Pazifischer Ozean -+8718:Inmarsat A Daten/Fax -+87176:Inmarsat Mini-M:Inmarsat Phone (Mini-M) -+8716:Inmarsat M -+8715:Inmarsat Aero -+87139:Inmarsat B HSD -+8713:Inmarsat B -+8711:Inmarsat A -+871:Atlantischer Ozean (Ost) -+87076:Inmarsat Mini-M (Worldwide):Inmarsat Mini-M:Inmarsat Phone (Mini-M) -+86886:China Mobilfunk -+8613:China Mobilfunk -+86:China, (Volksrepublik):China (Volksrepublik):China:V.R. China -+856:Laos -+855:Kambodscha -+853:Macao:Macau -+8529:Hong Kong Mobilfunk -+8522:Hong Kong Mobilfunk -+852:Hongkong:Hong Kong:Honkong -+850:Korea (Dem. Republik), Nordkorea:Korea (Demokratische Republik):Korea (North):Korea (DVR):Nordkorea:Nordkorea (DVR):Korea (Nord):V.R. Korea -+84:Vietnam -+8227:Korea Rep. (South) Mobilfunk -+821:Korea Rep. (South) Mobilfunk -+82:Korea (Republik), Südkorea:Korea (Süd):Korea Rep. (South):Korea (Reublik):Südkorea:Südkorea (Republik):V.R. Korea:Republik Korea -+8190:Japan Mobilfunk -+8170:Japan Mobilfunk -+813:Tokyo -+81:Japan -+800:international freephone:International Freephone -+7902:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7901:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7863:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7862:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7861:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7820:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7817:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7816:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7815:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7814:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7812:St. Petersburg:Rußland St. Petersburg:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7811:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7590:Usbekistan:Uzbekistan -+7543:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7517:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+751285:St. Petersburg:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+75112:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+75110:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7510:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7505:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7503:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7502:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation):Rußland Moskau Overlay:Russische Föderation / Moskau -+7501:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation):Rußland Moskau Overlay:Russische Föderation / Moskau -+7436:Usbekistan:Uzbekistan -+7433:Tadschikistan:Tajikistan -+7431:Tadschikistan:Tajikistan -+743:Usbekistan:Uzbekistan -+74:Tadschikistan:Tajikistan -+7379:Tadschikistan:Tajikistan -+7377:Tadschikistan:Tajikistan -+7376:Tadschikistan:Tajikistan -+7375:Usbekistan:Uzbekistan -+7374:Usbekistan:Uzbekistan -+7373:Usbekistan:Uzbekistan -+7372:Usbekistan:Uzbekistan -+7371:Usbekistan:Uzbekistan -+737:Usbekistan:Uzbekistan -+7369:Usbekistan:Uzbekistan -+7367:Usbekistan:Uzbekistan -+7366:Usbekistan:Uzbekistan -+7365:Usbekistan:Uzbekistan -+7364:Tadschikistan:Tajikistan -+7362:Usbekistan:Uzbekistan -+7361:Usbekistan:Uzbekistan -+7339:Kirgistan:Kirgisistan -+7336:Kasachstan -+7335:Kirgistan:Kirgisistan -+7334:Kirgistan:Kirgisistan -+7333:Kirgistan:Kirgisistan -+7332:Kirgistan:Kirgisistan -+7331:Kirgistan:Kirgisistan -+7330:Kasachstan -+733:Kirgistan:Kirgisistan -+7329:Kasachstan -+7328:Kasachstan -+7327:Kasachstan -+7326:Kasachstan -+7325:Kasachstan -+7324:Kasachstan -+7323:Kasachstan -+7322:Kasachstan -+7321:Kasachstan -+7319:Kirgistan:Kirgisistan -+7318:Kasachstan -+7317:Kasachstan -+7316:Kasachstan -+7315:Kasachstan -+7314:Kasachstan -+7313:Kasachstan -+7312:Kasachstan -+7311:Kasachstan -+7310:Kasachstan -+73:Kasachstan -+7096:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7096:Moskau:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation):Russische Föderation / Moskau -+7095:Moskau:Rußland Moskau:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation):Russische Föderation / Moskau -+709246:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+709245:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+709244:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+709243:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+709237:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7091:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7087:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7086:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7085:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7084:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7083:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7082:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7081:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7074:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7073:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7072:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7071:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7011:Russische Föderat. (westl.):Rußland (westl.):GUS (Russische Föderation) -+7:Russische Förderation (östl.):GUS (Russische Föderation):Rußland:Rußland (östl.):Russische Föderation -+6998:Midway-Inseln:Midway Inseln -+6996:Chatham-Inseln -+6993:Wake Inseln -+692:Marshallinseln:Marshall-Inseln:Marshall Inseln -+691:Mikronesien -+690:Tokelan:Tokelau:Tokelauinseln -+689:Französisch-Polynesien:Franz. Polynesien:Französisch Polynesien -+688:Tuvalu -+687:Neukaledonien -+686:Kiribati -+685:Samoa (West):Western Samoa:Samoa (Western) -+684:Amerikanisch-Samoa:Samoa (US) -+683:Niue-Inseln:Niue Islands:Niue -+682:Cookinseln:Cook Islands -+681:Wallis und Futuna:Wallis und Futuna Inseln -+680:Palau /Belau:Palau (=Belau):Palau:Belau:Palau Inseln:Palau-Inseln -+679:Fidschi:Fidschi Inseln:Fidschi-Inseln -+678:Vanuatu -+677:Salomonen:Solomon Inseln:Solomonen:Salomoninseln -+676:Tonga -+675:Papua-Neuguinea:Papua Neu Guinea -+674:Nauru -+673:Brunei:Brunei Darussalam:Brunei-Darussalam -+6724:Weihnachtsinsel (Australien):Weihnachtsinseln -+6723:Norfolkinseln (Australien):Norfolk Islands:Norfolk:Norfolk-Inseln -+6722:Kokosinseln (Australien) -+6721:Antarktis:Davis (Antarktis):Mawson (Antarktis):Casey (Antarktis):Macquarrie Island (Antarktis) -+672:Antarktis -+671:Guam -+670:Marianen:Saipan -+66:Thailand -+65:Singapur -+649:Pitcairn Inseln -+64:Neuseeland -+63:Philippinen -+62:Indonesien -+6189162:Kokos-Inseln -+61500:Australien Mobilfunk -+6142:Australien Mobilfunk -+6141:Australien Mobilfunk -+6140:Australien Mobilfunk -+6119:Australien Mobilfunk -+6118:Australien Mobilfunk -+6117:Australien Mobilfunk -+6116:Australien Mobilfunk -+6115:Australien Mobilfunk -+6114:Australien Mobilfunk -+6113:Australien Mobilfunk -+6112:Australien Mobilfunk -+61071:Australien Mobilfunk -+61:Australien -+60:Malaysia -+599:Niederl. Antillen:Niederländische Antillen:Antillen (Niederlande) -+598:Uruguay -+597:Suriname -+596:Martinique / Franz. Antillen:Martinique:Französische Antillen -+595:Paraguay -+594:Französisch-Guayana:Französisch Guyana:Franz. Guyana -+5939:Ecuador Mobilfunk -+593:Ecuador:Equador -+592:Guyana:Guayana -+591:Bolivien -+590:Guadeloupe -+5816:Venezuela Mobilfunk -+5814:Venezuela Mobilfunk -+58:Venezuela -+573:Kolumbien Mobilfunk -+57:Kolumbien -+56:Chile -+55664:Brasilien Mobilfunk -+55663:Brasilien Mobilfunk -+55:Brasilien -+54414:Argentinien Mobilfunk -+5440:Argentinien Mobilfunk -+5430:Argentinien Mobilfunk -+5428:Argentinien Mobilfunk -+5426:Argentinien Mobilfunk -+5422:Argentinien Mobilfunk -+5421:Argentinien Mobilfunk -+5420:Argentinien Mobilfunk -+54197:Argentinien Mobilfunk -+54193:Argentinien Mobilfunk -+54167:Argentinien Mobilfunk -+54156:Argentinien Mobilfunk -+54153:Argentinien Mobilfunk -+5414:Argentinien Mobilfunk -+54:Argentinien -+5399:Guantanamo Bay:Guatanamo Bay -+5321:Guantanamo:Guatanamo Bay -+53:Kuba -+52:Mexiko:Mexico -+51946:Peru Mobilfunk -+51846:Peru Mobilfunk -+51746:Peru Mobilfunk -+51646:Peru Mobilfunk -+51546:Peru Mobilfunk -+51446:Peru Mobilfunk -+51346:Peru Mobilfunk -+51246:Peru Mobilfunk -+5119:Peru Mobilfunk -+5116:Peru Mobilfunk -+5115:Peru Mobilfunk -+5114:Peru Mobilfunk -+51:Peru -+509:Haiti -+508:St. Pierre und Miquelon:Saint Pierre und Miquelon:St. Pierre and Miquelon:Saint Pierre et Miquelon -+5076:Panama Mobilfunk -+507:Panama -+506:Costa Rica -+505:Nicaragua -+504:Honduras -+5038:El Salvador Mobilfunk -+503:El Salvador -+502:Guatemala -+501:Belize -+500:Falklandinseln:Falkland-Inseln:Falkland Inseln -+48:Polen -+479:Norwegen Mobilfunk -+47:Norwegen -+468:Stockholm -+4673:Schweden Mobilfunk -+46709:Schweden Mobilfunk -+46708:Schweden Mobilfunk -+46707:Schweden Mobilfunk -+46706:Schweden Mobilfunk -+46705:Schweden Mobilfunk -+46704:Schweden Mobilfunk -+46703:Schweden Mobilfunk -+46702:Schweden Mobilfunk -+4610:Schweden Mobilfunk -+46:Schweden -+4574:Sønderjylland -+4573:Sønderjylland -+45503:Dänemark Mobilfunk -+45502:Dänemark Mobilfunk -+45501:Dänemark Mobilfunk -+45409:Dänemark Mobilfunk -+45408:Dänemark Mobilfunk -+45407:Dänemark Mobilfunk -+45406:Dänemark Mobilfunk -+45405:Dänemark Mobilfunk -+45404:Dänemark Mobilfunk -+45403:Dänemark Mobilfunk -+45402:Dänemark Mobilfunk -+45401:Dänemark Mobilfunk -+4530:Dänemark Mobilfunk -+4528:Dänemark Mobilfunk -+4526:Dänemark Mobilfunk -+4523:Dänemark Mobilfunk -+4522:Dänemark Mobilfunk -+4521:Dänemark Mobilfunk -+45209:Dänemark Mobilfunk -+45208:Dänemark Mobilfunk -+45207:Dänemark Mobilfunk -+45206:Dänemark Mobilfunk -+45205:Dänemark Mobilfunk -+45204:Dänemark Mobilfunk -+45203:Dänemark Mobilfunk -+45202:Dänemark Mobilfunk -+45201:Dänemark Mobilfunk -+45:Dänemark -+44991:Großbritannien Mobilfunk -+44979:Großbritannien Mobilfunk -+44976:Großbritannien Mobilfunk -+44973:Großbritannien Mobilfunk -+44966:Großbritannien Mobilfunk -+44961:Großbritannien Mobilfunk -+449589:Großbritannien Mobilfunk -+449587:Großbritannien Mobilfunk -+449586:Großbritannien Mobilfunk -+449585:Großbritannien Mobilfunk -+449584:Großbritannien Mobilfunk -+449583:Großbritannien Mobilfunk -+449582:Großbritannien Mobilfunk -+44941:Großbritannien Mobilfunk -+44930:Großbritannien Mobilfunk -+44918:Großbritannien Mobilfunk -+44910:Großbritannien Mobilfunk -+4489:Großbritannien Mobilfunk -+44881:Großbritannien Mobilfunk -+44860:Großbritannien Mobilfunk -+44853:Großbritannien Mobilfunk -+44850:Großbritannien Mobilfunk -+44839:Großbritannien Mobilfunk -+44836:Großbritannien Mobilfunk -+44831:Großbritannien Mobilfunk -+44802:Großbritannien Mobilfunk -+447:Großbritannien Mobilfunk -+44696:Großbritannien Mobilfunk -+4466:Großbritannien Mobilfunk -+44640:Großbritannien Mobilfunk -+44632:Großbritannien Mobilfunk -+44589:Großbritannien Mobilfunk -+44585:Großbritannien Mobilfunk -+44469:Großbritannien Mobilfunk -+44468:Großbritannien Mobilfunk -+44467:Großbritannien Mobilfunk -+444624:Großbritannien Mobilfunk -+44448:Großbritannien Mobilfunk -+44441:Großbritannien Mobilfunk -+444325:Großbritannien Mobilfunk -+44421:Großbritannien Mobilfunk -+44411:Großbritannien Mobilfunk -+44410:Großbritannien Mobilfunk -+44403:Großbritannien Mobilfunk -+44402:Großbritannien Mobilfunk -+44401:Großbritannien Mobilfunk -+44378:Großbritannien Mobilfunk -+443749:Großbritannien Mobilfunk -+443748:Großbritannien Mobilfunk -+443747:Großbritannien Mobilfunk -+443746:Großbritannien Mobilfunk -+443744:Großbritannien Mobilfunk -+443743:Großbritannien Mobilfunk -+443742:Großbritannien Mobilfunk -+443741:Großbritannien Mobilfunk -+443740:Großbritannien Mobilfunk -+44338:Großbritannien Mobilfunk -+44336:Großbritannien Mobilfunk -+44331:Großbritannien Mobilfunk -+44181:London (Außenbezirk) -+44171:London (Innenbezirk) -+441693:Großbritannien Mobilfunk -+441523:Großbritannien Mobilfunk -+441459:Großbritannien Mobilfunk -+441426:Großbritannien Mobilfunk -+44139:Großbritannien Mobilfunk -+44131:Edinburgh -+44:Großbritannien, Insel Man, Kanalinseln:Großbritanien:Großbritannien und Nordirland:Insel Man (Großbritannien):Kanalinseln (Großbritannien):Großbritannien:Nordirland:Grossbritannien:Insel Man:Kanalinseln -+43699:Österreich Mobilfunk -+43676:Österreich Mobilfunk -+43664:Österreich Mobilfunk -+43663:Österreich Mobilfunk -+4366211811:Österreich Auskunft:Auskunft Austria -+431:Wien -+43:Österreich -+423:Liechtenstein:Lichtenstein -+421:Slowakei, Slowakische Republik:Slowakische Rep.:Slowakei:Slowak. Rep.:Slowakische Republik -+420:Tschechien, Tschechische Republik:Tschechische Rep.:Tschechische Republik:Tschechien:Tschech. Rep. -+41800:Freephone Schweiz:Plus Freephone Service (Schweiz) -+4179:Schweiz Mobilfunk -+4178:Schweiz Mobilfunk -+4176:Schweiz Mobilfunk -+4175:Liechtenstein:Lichtenstein -+4122:Genf -+411:Zürich -+41:Schweiz -+40:Rumänien -+39368:Italien Mobilfunk -+39360:Italien Mobilfunk -+39349:Italien Mobilfunk -+39348:Italien Mobilfunk -+39347:Italien Mobilfunk -+39339:Italien Mobilfunk -+39338:Italien Mobilfunk -+39337:Italien Mobilfunk -+39336:Italien Mobilfunk -+39335:Italien Mobilfunk -+39330:Italien Mobilfunk -+39329:Italien Mobilfunk -+39328:Italien Mobilfunk -+3906:Vatikanstadt / Rom:Vatikanstadt -+3902:Mailand -+39:Italien -+389:Mazedonien -+387:Bosnien-Herzegowina -+386:Slowenien -+385:Kroatien -+381:Jugoslawien(Serbien/Montenegro):Jugoslawien Montenegro:Jugoslawien:Serbien:Montenegro:Jugoslawien Serbien und Montenegro -+380:Ukraine -+379:Vatican City:Vatikanstadt -+378:San Marino -+377:Monaco -+376:Andorra -+375:Weissrussland, Belarus:Belarus (Weißrußland):Weißrußland (Belarus):Weißrußland/Belarus:Belarus:Weißrußland:Weißrussland -+374:Armenien -+373:Moldavien, Moldau (Republik):Moldau Republik:Moldavien:Moldawien:Moldau (Republik):Moldau -+372:Estland -+371:Lettland -+370:Litauen -+36:Ungarn -+359:Bulgarien -+358:Finnland:Finland -+357:Zypern:Zypern (griech.):Zypern (Griechisch):Zypern (griechisch) -+356:Malta -+355:Albanien -+354:Island -+35389:Irland Mobilfunk -+35388:Irland Mobilfunk -+35387:Irland Mobilfunk -+35386:Irland Mobilfunk -+353:Irland -+352:Luxemburg:Luxembourg -+35196:Azoren -+35195:Azoren -+35192:Azoren -+35191:Madeira -+351:Portugal -+350:Gibraltar -+34977:Tarragona -+34972:Gerona -+34971:Mallorca -+3496:Valencia -+3494:Bilbao -+3493:Barcelona -+34928:Kanarische Inseln -+34922:Teneriffa -+3491:Madrid -+34689:Spanien Mobilfunk -+34670:Spanien Mobilfunk -+34649:Spanien Mobilfunk -+34639:Spanien Mobilfunk -+34630:Spanien Mobilfunk -+34629:Spanien Mobilfunk -+34619:Spanien Mobilfunk -+34617:Spanien Mobilfunk -+34616:Spanien Mobilfunk -+34610:Spanien Mobilfunk -+34609:Spanien Mobilfunk -+34608:Spanien Mobilfunk -+34607:Spanien Mobilfunk -+34606:Spanien Mobilfunk -+34:Spanien -+336:Frankreich Mobilfunk -+331:Paris -+33:Frankreich -+3275:Belgien Mobilfunk -+32496:Belgien Mobilfunk -+32495:Belgien Mobilfunk -+32486:Belgien Mobilfunk -+32477:Belgien Mobilfunk -+32476:Belgien Mobilfunk -+32475:Belgien Mobilfunk -+323:Antwerpen -+322:Brüssel -+3218:Belgien Mobilfunk -+3217:Belgien Mobilfunk -+3216:Leuven -+32:Belgien -+31800:Freephone Niederlande:Freephone NL:Freephone (Niederl.):Plus Freephone Service (Niederl.) -+3170:Den Haag -+3165:Niederlande Mobilfunk -+3162:Niederlande Mobilfunk -+3120:Amsterdam -+3110:Rotterdam -+31:Niederlande -+30:Griechenland -+299:Grönland -+298:Färöer, Faeröer:Färöer:Faeroeer:Faeröer:Färöer Inseln:Faeroer:Faröer Inseln:Färöer -+297:Aruba -+291:Eritrea -+290:St. Helena:Saint Helena -+2897:Tristan da Cunha -+27:Südafrika -+2697:Komoren -+269:Mayotte:Komoren -+268:Swasiland -+267:Botsuana, Botswana:Botswana Republic:Botsuana -+266:Lesotho -+265:Malawi -+264:Namibia -+263:Simbabwe -+262:Reunion:Réunion -+261:Madagaskar -+260:Sambia -+258:Mosambik:Mozambik -+257:Burundi -+256:Uganda -+255:Tansania, Sansiba:Tansania:Sansibar -+254:Kenia -+253:Dschibuti -+252:Somalia -+251:Äthiopien -+250:Ruanda -+249:Sudan -+248:Seyschellen, Seychellen:Seyschellen:Seychellen -+247:Ascension:Ascension Inseln -+246:Diego Garcia -+245:Guinea-Bissau -+244:Angola -+243:Zaire:Kongo (Demokratische Republik):Kongo (DR) -+242:Kongo:Kongo (Republik):Kongo (R) -+241:Gabun -+240:Äquatorial-Guinea:Äquatorialguinea -+239:Sao Tome und Principe:Sao Tome et Principe -+238:Cape Verde, Kap Verde:Kap Verde:Cape Verde -+237:Kamerun -+236:Zentralafrikanische Republik:Zentral Afrika (Rep.) -+235:Tschad -+234:Nigeria -+233:Ghana -+232:Sierra Leone -+231:Liberia -+230:Mauritius -+229:Benin -+228:Togo -+227:Niger -+226:Burkina Faso, Obervolta:Obervolta:Burkina Faso:Burkina-Faso -+225:Elfenbeinküste, Cote de Ivoire:Cote d'Ivoire (Elfenbeinküste):Cote d'Ivoire:Elfenbeinküste -+224:Guinea -+223:Mali -+222:Mauretanien -+221:Senegal -+220:Gambia -+218:Libyen, Libysch-Arabische Dschamahirija:Libyen:Libysch-Arabische Dschamahirija:Lybien:Libysch-Arabische-Republik -+216:Tunesien -+213:Algerien -+212:Marokko -+20:Ägypten -+1907:Alaska -+1905:Kanada -+1902:Kanada -+1876:Jamaika:Jamaica -+1869:St. Kitts und Nevis:St. Kitts & Nevis:Saint Kitts and Nevis:St Kitts:Nevis Islands:St. Kitts -+1868:Trinidad und Tobago:Trinidad & Tobago:Trinidad and Tobago -+1867:Kanada -+184:Dominikanische Republik -+1819:Kanada -+1809971:Dominikanische Republik -+1809970:Dominikanische Republik -+1809946:Turks- und Caicosinseln:Turks and Caicos Islands -+1809941:Turks- und Caicosinseln:Turks and Caicos Islands -+1809908:Dominikanische Republik -+1809818:Dominikanische Republik -+1809814:Dominikanische Republik -+1809813:Dominikanische Republik -+1809810:Dominikanische Republik -+1809808:Dominikanische Republik -+1809807:Dominikanische Republik -+1809806:Dominikanische Republik -+180977:Amerikanische Jungferninseln:Jungferninseln (USA):Amerikan. Jungferninseln -+1809719:Amerikanische Jungferninseln:Jungferninseln (USA):Amerikan. Jungferninseln -+1809715:Amerikanische Jungferninseln:Jungferninseln (USA):Amerikan. Jungferninseln -+1809714:Amerikanische Jungferninseln:Jungferninseln (USA):Amerikan. Jungferninseln -+1809713:Amerikanische Jungferninseln:Jungferninseln (USA):Amerikan. Jungferninseln -+1809712:Amerikanische Jungferninseln:Jungferninseln (USA):Amerikan. Jungferninseln -+1809710:Dominikanische Republik -+1809707:Dominikanische Republik -+1809701:Dominikanische Republik -+1809699:Dominikanische Republik -+1809698:Dominikanische Republik -+1809697:Dominikanische Republik -+1809696:Dominikanische Republik -+1809695:Dominikanische Republik -+1809694:Dominikanische Republik -+1809693:Amerikanische Jungferninseln:Jungferninseln (USA):Amerikan. Jungferninseln -+1809692:Amerikanische Jungferninseln:Jungferninseln (USA):Amerikan. Jungferninseln -+1809690:Amerikanische Jungferninseln:Jungferninseln (USA):Amerikan. Jungferninseln -+1809689:Dominikanische Republik -+1809688:Dominikanische Republik -+1809687:Dominikanische Republik -+1809686:Dominikanische Republik -+1809685:Dominikanische Republik -+1809684:Dominikanische Republik -+1809683:Dominikanische Republik -+1809682:Dominikanische Republik -+1809681:Dominikanische Republik -+1809680:Trinidad und Tobago:Trinidad & Tobago -+180967:Trinidad und Tobago:Trinidad & Tobago -+180966:Trinidad und Tobago:Trinidad & Tobago -+180965:Trinidad und Tobago:Trinidad & Tobago -+180964:Trinidad und Tobago:Trinidad & Tobago -+180963:Trinidad und Tobago:Trinidad & Tobago -+180962:Trinidad und Tobago:Trinidad & Tobago -+1809619:Trinidad und Tobago:Trinidad & Tobago -+1809616:Dominikanische Republik -+1809615:Dominikanische Republik -+1809612:Dominikanische Republik -+1809611:Amerikanische Jungferninseln:Jungferninseln (USA):Amerikan. Jungferninseln -+1809606:Dominikanische Republik -+1809604:Dominikanische Republik -+180959:Dominikanische Republik -+180958:Dominikanische Republik -+180957:Dominikanische Republik -+180956:Dominikanische Republik -+1809559:Dominikanische Republik -+1809558:Dominikanische Republik -+1809557:Dominikanische Republik -+1809556:Dominikanische Republik -+1809554:Dominikanische Republik -+1809553:Dominikanische Republik -+1809552:Dominikanische Republik -+1809551:Dominikanische Republik -+1809550:Dominikanische Republik -+180954:Dominikanische Republik -+180953:Dominikanische Republik -+180952:Dominikanische Republik -+1809519:Dominikanische Republik -+1809518:Dominikanische Republik -+1809513:Amerikanische Jungferninseln:Jungferninseln (USA):Amerikan. Jungferninseln -+1809512:Dominikanische Republik -+1809508:Dominikanische Republik -+1809506:Dominikanische Republik -+1809504:Dominikanische Republik -+1809499:Britische Jungferninseln:Jungferninseln (GB):Jungferninseln (britisch) -+1809496:Britische Jungferninseln:Jungferninseln (GB):Jungferninseln (britisch) -+1809495:Britische Jungferninseln:Jungferninseln (GB):Jungferninseln (britisch) -+1809494:Britische Jungferninseln:Jungferninseln (GB):Jungferninseln (britisch) -+1809493:St. Vincent und Grenadinen:St. Vincent and the Grenadines:Saint Vincent und die Grenadinen:St. Vincent and Grenadines:St. Vincent und die Grenadien:St. Vincent Und Die Grenadinen -+1809490:St. Vincent und Grenadinen:St. Vincent and the Grenadines:Saint Vincent und die Grenadinen:St. Vincent and Grenadines:St. Vincent und die Grenadien:St. Vincent Und Die Grenadinen -+1809485:St. Vincent und Grenadinen:St. Vincent and the Grenadines:Saint Vincent und die Grenadinen:St. Vincent and Grenadines:St. Vincent und die Grenadien:St. Vincent Und Die Grenadinen -+1809481:Dominikanische Republik -+180947:Dominikanische Republik -+1809458:St. Vincent und Grenadinen:St. Vincent and the Grenadines:Saint Vincent und die Grenadinen:St. Vincent and Grenadines:St. Vincent und die Grenadien:St. Vincent Und Die Grenadinen -+1809457:St. Vincent und Grenadinen:St. Vincent and the Grenadines:Saint Vincent und die Grenadinen:St. Vincent and Grenadines:St. Vincent und die Grenadien:St. Vincent Und Die Grenadinen -+1809456:St. Vincent und Grenadinen:St. Vincent and the Grenadines:Saint Vincent und die Grenadinen:St. Vincent and Grenadines:St. Vincent und die Grenadien:St. Vincent Und Die Grenadinen -+1809449:Dominica:Domenica -+1809448:Dominica:Domenica -+1809447:Dominica:Domenica -+1809446:Dominica:Domenica -+1809445:Dominica:Domenica -+1809444:Grenada -+1809443:Grenada -+1809442:Grenada -+1809441:Grenada -+1809440:Grenada -+1809414:Dominikanische Republik -+1809412:Dominikanische Republik -+1809408:Grenada -+1809407:Grenada -+1809350:Dominikanische Republik -+1809343:Dominikanische Republik -+1809320:Dominikanische Republik -+1809310:Dominikanische Republik -+1809301:Dominikanische Republik -+1809299:Dominikanische Republik -+1809295:Dominikanische Republik -+1809293:Dominikanische Republik -+1809292:Dominikanische Republik -+1809291:Dominikanische Republik -+1809290:Dominikanische Republik -+1809282:Dominikanische Republik -+1809281:Dominikanische Republik -+1809280:Dominikanische Republik -+1809279:Dominikanische Republik -+1809278:Dominikanische Republik -+1809277:Dominikanische Republik -+1809276:Dominikanische Republik -+1809275:Dominikanische Republik -+1809274:Dominikanische Republik -+1809273:Dominikanische Republik -+1809248:Dominikanische Republik -+1809247:Dominikanische Republik -+1809246:Dominikanische Republik -+1809245:Dominikanische Republik -+1809244:Dominikanische Republik -+1809243:Dominikanische Republik -+1809242:Dominikanische Republik -+1809241:Dominikanische Republik -+1809240:Dominikanische Republik -+1809239:Dominikanische Republik -+1809238:Dominikanische Republik -+1809237:Dominikanische Republik -+1809236:Dominikanische Republik -+1809235:Dominica:Domenica -+1809234:Dominikanische Republik -+1809233:Dominikanische Republik -+1809231:Dominikanische Republik -+1809227:Dominikanische Republik -+1809226:Dominikanische Republik -+1809225:Dominikanische Republik -+1809224:Dominikanische Republik -+1809223:Dominikanische Republik -+1809222:Dominikanische Republik -+1809221:Dominikanische Republik -+1809220:Dominikanische Republik -+1809209:Dominikanische Republik -+1809208:Dominikanische Republik -+1809204:Dominikanische Republik -+1809188:Dominikanische Republik -+1809:Britische Jungferninseln:Jungferninseln (GB):Dominikanische Rep.:Jungferninseln (britisch) -+1808:Hawaii:Hawai -+1807:Kanada -+1787:Puerto Rico -+1784:St. Vincent und Grenadinen:St. Vincent and the Grenadines:Saint Vincent und die Grenadinen:St. Vincent and Grenadines:St. Vincent und die Grenadien:St. Vincent Und Die Grenadinen:St. Vincent & Grenadinen -+1767:Dominica:Domenica -+1758:St. Lucia:Saint Lucia -+1709:Kanada -+1705:Kanada -+1671:Marianen (Guam):Guam -+1670:Marianen (Saipan,Nord-):Nördliche Marianen:Marianen:Marianen (Saipan) -+1664:Montserrat -+1649:Turks- und Caicosinseln:Turks and Caicos Islands -+1613:Kanada -+1604:Kanada -+1600:Kanada -+1519:Kanada -+1514:Kanada -+1506:Kanada -+1473:Grenada -+1441:Bermuda -+1418:Kanada -+1416:Kanada -+1403:Kanada -+1345:Kaimaninseln:Cayman-Inseln:Kaiman Inseln -+1340:Amerikanische Jungferninseln:Jungferninseln (USA):Amerikan. Jungferninseln -+1306:Kanada -+1284:Britische Jungferninseln:Jungferninseln (GB):Brit. Jungferninseln:Jungferninseln (britisch) -+1268:Antigua und Barbuda:Antigua & Barbuda:Antigua & Barbadu:Antigua Und Barbadu -+1264:Anguilla -+1250:Kanada -+1246:Barbados -+1242:Bahamas -+1204:Kanada -+1:USA:Vereinigte Staaten (USA):Kanada:Vereinigte Staaten von Amerika +N:Usbekistan +A:Uzbekistan +C:+998, +7590, +7436, +743, +7375, +7374, +7373, +7372, +7371, +737, +7369, +7367, +7366, +7365, +7362, +7361 + +N:Kirgisien +A:Kirgizia +C:+996 + +N:Georgien +A:Georgia +C:+995 + +N:Aserbaidschan +A:Azerbaijan +C:+994 + +N:Turkmenistan +C:+993 + +N:Tadschikistan +A:Tajikistan +C:+992, +7433, +7431, +74, +7379, +7377, +7376, +7364 + +N:Iran +C:+98 + +N:Nepal +C:+977 + +N:Mongolei +A:Mongolische VR, Mongolia +C:+976 + +N:Bhutan +C:+975 + +N:Katar +A:Quatar +C:+974 + +N:Bahrain +C:+973 + +N:Israel Mobilfunk +C:+97255, +97254, +97253, +97252, +97251, +97250 + +N:Israel +C:+972 + +N:Ver. Arabische Emirate +A:Vereinigte Arabische Emirate, Ver.Arab. Emirate, Vereinigte Arab. Emirate, United Arab Emirates +C:+971 + +N:Jemen (Arab. Republik) +A:Jemen (Arabische Republik), Jemen, Jemen Arab. Rep. +C:+969, +967 + +N:Oman +C:+968 + +N:Saudi Arabien +A:Saudi Arabia +C:+966 + +N:Kuwait +A:Kuweit +C:+965 + +N:Irak +A:Iraq +C:+964 + +N:Syrien +A:Syria +C:+963 + +N:Jordanien +A:Jordan +C:+962 + +N:Libanon Mobilfunk +C:+9613 + +N:Libanon +A:Lebanon +C:+961 + +N:Malediven +A:Maldives +C:+960 + +N:Myanmar Burma +A:Myanmar (Birma), Burma, Birma, Myanmar, Birma (Myanmar) +C:+95 + +N:Sri Lanka +C:+94 + +N:Afghanistan +C:+93 + +N:Pakistan +C:+92 + +N:Indien +A:India +C:+91 + +N:Türkei Mobilfunk +C:+905 + +N:Türkei +A:Turkey +C:+90 + +N:Taiwan Mobilfunk +C:+8869 + +N:Taiwan +A:China (Taiwan) +C:+886 + +N:Iridium 008817 +C:+8817 + +N:Iridium 008816 +C:+8816 + +N:Bangladesch +A:Bangladesh +C:+880 + +N:Inmarsat A Daten/Fax +C:+8748, +8738, +8728, +8718 + +N:Inmarsat Mini-M +A:Inmarsat Phone (Mini-M) +# FIXME: +87076 ist eigentlich "Inmarsat Mini-M (Worldwide)" +C:+87476, +87376, +87276, +87176, +87076 + +N:Inmarsat M +C:+8746, +8736, +8726, +8716 + +N:Inmarsat Aero +C:+8745, +8735, +8725, +8715 + +N:Inmarsat B HSD +C:+87439, +87339, +87239, +87139 + +N:Inmarsat B +C:+8743, +8733, +8723, +8713 + +N:Inmarsat A +C:+8741, +8731, +8721, +8711 + +N:Atlantischer Ozean (West) +A:Atlantic Ocean (west) +C:+874 + +N:Indischer Ozean +A:Indian Ocean +C:+873 + +N:Pazifischer Ozean +A:Pacific Ocean +C:+872 + +N:Atlantischer Ozean (Ost) +A:Atlantic Ocean (east) +C:+871 + +N:China Mobilfunk +C:+86886, +8613 + +N:China +A:China (Volksrepublik), China (People's Republic) +C:+86 + +N:Laos +A:Lao +C:+856 + +N:Kambodscha +A:Cambodia +C:+855 + +N:Macao +A:Macau +C:+853 + +N:Hong Kong Mobilfunk +C:+8529, +8522 + +N:Hongkong +C:+852 + +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 +C:+84 + +N:Korea Rep. (South) Mobilfunk +C:+8227, +821 + +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 +C:+8190, +8170 + +N:Tokyo +C:+813 + +N:Japan +C:+81 + +N:international freephone +C:+800 + +N:Russische Föderat. (westl.) +A:Rußland (westl.), GUS (Russische Föderation) +C:+7902, +7901, +7863, +7862, +7861, +7820, +7817, +7816, +7815, +7814, +7811, +7543, +7517, +75112, +75110, +7510, +7505, +7503, +7502, +7501, +709246, +709245, +709244, +709243, +709237, +7091, +7087, +7086, +7085, +7084, +7083, +7082, +7081, +7074, +7073, +7072, +7071, +7011 + +N:St. Petersburg +C:+7812, +751285 + +N:Kirgistan +A:Kirgisistan +C:+7339, +7335, +7334, +7333, +7332, +7331, +733, +7319 + +N:Kasachstan +C:+7336, +7330, +7329, +7328, +7327, +7326, +7325, +7324, +7323, +7322, +7321, +7318, +7317, +7316, +7315, +7314, +7313, +7312, +7311, +7310, +73 + +N:Moskau +C:+7096, +7095 + +N:Russische Förderation (östl.) +A:Rußland, Rußland (östl.), Russische Föderation, Russian Federation, Kazakhstan, Kyrgyzstan +C:+7 + +N:Midway-Inseln +C:+6998 + +N:Chatham-Inseln +C:+6996 + +N:Wake Inseln +A:Wake Island +C:+6993 + +N:Marshallinseln +A:Marshall Islands +C:+692 + +N:Mikronesien +A:Micronesia +C:+691 + +N:Tokelan +A:Tokelau, Tokelauinseln +C:+690 + +N:Französisch-Polynesien +A:French Polynesia +C:+689 + +N:Tuvalu +C:+688 + +N:Neukaledonien +A:New Caledonia +C:+687 + +N:Kiribati +A:Kirlbati +C:+686 + +N:West-Samoa +A:Samoa (West), Western Samoa +C:+685 + +N:Amerikanisch-Samoa +A:Samoa, Samoa (US), American Samoa +C:+684 + +N:Niue-Inseln +A:Niue Islands, Niue +C:+683 + +N:Cookinseln +A:Cook Islands +C:+682 + +N:Wallis und Futuna +A:Wallis- und Futuna-Inseln, Wallis & Fortuna Islands +C:+681 + +N:Palau /Belau +A:Palau +C:+680 + +N:Fidschi +A:Fiji +C:+679 + +N:Vanuatu +C:+678 + +N:Salomonen +A:Solomon Inseln, Solomonen, Salomoninseln, Solomon Islands +C:+677 + +N:Tonga +C:+676 + +N:Papua-Neuguinea +A:Papua New Guinea +C:+675 + +N:Nauru +C:+674 + +N:Brunei +C:+673 + +N:Weihnachtsinseln +A:Weihnachtsinsel (Australien), Christmas Island, Christmas Island (Antarctica) +C:+6724 + +N:Norfolkinseln +A:Norfolkinseln (Australien), Norfolk Islands, Norfolk, Norfolk Island, Norfolk Island (Antarctica) +C:+6723 + +N:Kokosinseln +A:Kokosinseln (Australien), Cocos Island, Cocos Island (Antarctica) +C:+6722, +6189162 + +N:Antarktis +A:Antarctica +C:+6721, +672 + +N:Guam +C:+671 + +N:Thailand +C:+66 + +N:Singapur +A:Singapore +C:+65 + +N:Pitcairn Inseln +N:Pitcairn Islands +C:+649 + +N:Neuseeland +A:New Zealand, New Zealand & Chatham Island +C:+64 + +N:Philippinen +A:Phillipines +C:+63 + +N:Indonesien +A:Indonesia +C:+62 + +N:Australien Mobilfunk +C:+61500, +6142, +6141, +6140, +6119, +6118, +6117, +6116, +6115, +6114, +6113, +6112, +61071 + +N:Australien +A:Australia +C:+61 + +N:Malaysia +C:+60 + +N:Niederl. Antillen +A:Niederländische Antillen, Antillen (Niederlande), Netherlands Antilles +C:+599 + +N:Uruguay +C:+598 + +N:Suriname +A:Surinam +C:+597 + +N:Martinique / Franz. Antillen +A:Martinique, Französische Antillen, Martinique (French Antilles) +C:+596 + +N:Paraguay +C:+595 + +N:Französisch-Guayana +A:Französisch Guyana, Franz. Guyana, French Guyana +C:+594 + +N:Ecuador Mobilfunk +C:+5939 + +N:Ecuador +A:Equador +C:+593 + +N:Guyana +A:Guayana +C:+592 + +N:Bolivien +A:Bolivia +C:+591 + +N:Guadeloupe +A:Guadaloupe +C:+590 + +N:Venezuela Mobilfunk +C:+5816, +5814 + +N:Venezuela +C:+58 + +N:Kolumbien Mobilfunk +C:+573 + +N:Kolumbien +A:Colombia +C:+57 + +N:Chile +A:Chile & Easter Island +C:+56 + +N:Brasilien Mobilfunk +C:+55664, +55663 + +N:Brasilien +A:Brazil +C:+55 + +N:Argentinien Mobilfunk +C:+54414, +5440, +5430, +5428, +5426, +5422, +5421, +5420, +54197, +54193, +54167, +54156, +54153, +5414 + +N:Argentinien +A:Argentina +C:+54 + +N:Guantanamo Bay +A:Guatanamo Bay, Guantanamo Bay (Cuba) +C:+5399 + +N:Guantanamo +C:+5321 + +N:Kuba +A:Cuba +C:+53 + +N:Mexiko +A:Mexico +C:+52 + +N:Peru Mobilfunk +C:+51946, +51846, +51746, +51646, +51546, +51446, +51346, +51246, +5119, +5116, +5115, +5114 + +N:Peru +C:+51 + +N:Haiti +C:+509 + +N:St. Pierre und Miquelon +A:Saint Pierre und Miquelon, St. Pierre and Miquelon, Saint Pierre et Miquelon +C:+508 + +N:Panama Mobilfunk +C:+5076 + +N:Panama +C:+507 + +N:Costa Rica +C:+506 + +N:Nicaragua +C:+505 + +N:Honduras +C:+504 + +N:El Salvador Mobilfunk +C:+5038 + +N:El Salvador +C:+503 + +N:Guatemala +C:+502 + +N:Belize +C:+501 + +N:Falklandinseln +A:Falkland Islands +C:+500 + +N:Deutschland +A:Germany +C:+49 + +N:Frankfurt +C:+496102 + +N:Polen +A:Poland +C:+48 + +N:Norwegen Mobilfunk +C:+479 + +N:Norwegen +A:Norway +C:+47 + +N:Stockholm +C:+468 + +N:Schweden Mobilfunk +C:+4673, +46709, +46708, +46707, +46706, +46705, +46704, +46703, +46702, +4610 + +N:Schweden +A:Sweden +C:+46 + +N:Sønderjylland +C:+4574, +4573 + +N:Dänemark Mobilfunk +C:+45503, +45502, +45501, +45409, +45408, +45407, +45406, +45405, +45404, +45403, +45402, +45401, +4530, +4528, +4526, +4523, +4522, +4521, +45209, +45208, +45207, +45206, +45205, +45204, +45203, +45202, +45201 + +N:Dänemark +A:Denmark +C:+45 + +N:Großbritannien Mobilfunk +C:+44991, +44979, +44976, +44973, +44966, +44961, +449589, +449587, +449586, +449585, +449584, +449583, +449582, +44941, +44930, +44918, +44910, +4489, +44881, +44860, +44853, +44850, +44839, +44836, +44831, +44802, +447, +44696, +4466, +44640, +44632, +44589, +44585, +44469, +44468, +44467, +444624, +44448, +44441, +444325, +44421, +44411, +44410, +44403, +44402, +44401, +44378, +443749, +443748, +443747, +443746, +443744, +443743, +443742, +443741, +443740, +44338, +44336, +44331, +441693, +441523, +441459, +441426, +44139 + +N:London +C:+44171,+44181 + +N:Edinburgh +C:+44131 + +N:Großbritannien +A:Großbritannien Insel Man Kanalinseln, Great Britain +C:+44 + +N:Nordirland +C:+44 /* Fixme */ + +N:Österreich +A:Austria +C:+43 + +N:Wien +A:Vienna +C:+431,+43222 + +N:Österreich Mobilfunk +C:+43663, +43664, +43676, +43699 + +N:Österreich Auskunft +A:Auskunft Austria +C:+4366211811 + +N:Liechtenstein +A:Lichtenstein +C:+423, +4175 + +N:Slowakische Republik +A:Slowakei, Slowakische Rep., Slowak. Rep., Slovakia +C:+421 + +N:Tschechische Republik +A:Tschechien, Tschechische Rep., Tschech. Rep., Czech Republic +C:+420 + +N:Freephone Schweiz +A:Plus Freephone Service (Schweiz) +C:+41800 + +N:Schweiz Mobilfunk +C:+4179, +4178, +4176 + +N:Genf +C:+4122 + +N:Zürich +C:+411 + +N:Schweiz +A:Switzerland +C:+41 + +N:Rumänien +A:Romania +C:+40 + +N:Italien Mobilfunk +C:+39368, +39360, +39349, +39348, +39347, +39339, +39338, +39337, +39336, +39335, +39330, +39329, +39328 + +N:Vatikan +A:Vatikanstadt / Rom, Vatikanstadt, Vatican City +C:+379, +3906 + +N:Mailand +C:+3902 + +N:Italien +A:Italy +C:+39 + +N:Mazedonien +A:Macedonia +C:+389 + +N:Bosnien-Herzegowina +A:Bosnia and Hercegovina +C:+387 + +N:Slowenien +A:Slovenia +C:+386 + +N:Kroatien +A:Croatia +C:+385 + +N:Jugoslawien +A:Jugoslawien (Serbien/Montenegro), Serbien, Montenegro, Yugoslavia (Servia & Montenegro) +C:+381 + +N:Ukraine +C:+380 + +N:San Marino +C:+378 + +N:Monaco +C:+377 + +N:Andorra +C:+376 + +N:Weissrussland +A:Weissrussland Belarus, Belarus +C:+375 + +N:Armenien +A:Armenia +C:+374 + +N:Moldavien Moldau (Republik) +A:Moldau Republik, Moldavien, Moldawien, Moldau, Moldova +C:+373 + +N:Estland +A:Estonia +C:+372 + +N:Lettland +A:Latvia +C:+371 + +N:Litauen +A:Lithuania +C:+370 + +N:Ungarn +A:Hungary +C:+36 + +N:Bulgarien +A:Bulgaria +C:+359 + +N:Finnland +A:Finland +C:+358 + +N:Zypern +A:Cyprus +C:+357 + +N:Malta +C:+356 + +N:Albanien +A:Albania +C:+355 + +N:Island +A:Iceland +C:+354 + +N:Irland Mobilfunk +C:+35389, +35388, +35387, +35386 + +N:Irland +A:Ireland +C:+353 + +N:Luxemburg +A:Luxembourg +C:+352 + +N:Luxemburg City +C:+3521 + +N:Azoren +C:+35196, +35195, +35192 + +N:Madeira +C:+35191 + +N:Portugal +C:+351 + +N:Gibraltar +C:+350 + +N:Tarragona +C:+34977 + +N:Gerona +C:+34972 + +N:Mallorca +C:+34971 + +N:Valencia +C:+3496 + +N:Bilbao +C:+3494 + +N:Barcelona +C:+3493 + +N:Kanarische Inseln +C:+34928 + +N:Teneriffa +C:+34922 + +N:Madrid +C:+3491 + +N:Spanien Mobilfunk +C:+34689, +34670, +34649, +34639, +34630, +34629, +34619, +34617, +34616, +34610, +34609, +34608, +34607, +34606 + +N:Spanien +A:Spain +C:+34 + +N:Frankreich Mobilfunk +C:+336 + +N:Paris +C:+331 + +N:Frankreich +A:France +C:+33 + +N:Belgien Mobilfunk +C:+3275, +32496, +32495, +32486, +32477, +32476, +32475, +3218, +3217 + +N:Antwerpen +C:+323 + +N:Brüssel +C:+322 + +N:Leuven +C:+3216 + +N:Belgien +A:Belgium +C:+32 + +N:Freephone Niederlande +A:Freephone NL, Freephone (Niederl.), Plus Freephone Service (Niederl.) +C:+31800 + +N:Den Haag +C:+3170 + +N:Niederlande Mobilfunk +C:+3165, +3162 + +N:Amsterdam +C:+3120 + +N:Rotterdam +C:+3110 + +N:Niederlande +A:Netherlands +C:+31 + +N:Griechenland +A:Greece +C:+30 + +N:Grönland +A:Greenland +C:+299 + +N:Färöer-Inseln +A:Färöer, Faroe Islands +C:+298 + +N:Aruba +C:+297 + +N:Eritrea +C:+291 + +N:St. Helena +A:Saint Helena +C:+290 + +N:Tristan da Cunha +C:+2897 + +N:Südafrika +A:South Africa +C:+27 + +N:Mayotte +A:Komoren, Comoros +C:+269 + +N:Swasiland +A:Swaziland +C:+268 + +N:Botsuana Botswana +A:Botswana Republic, Botsuana, Botswana +C:+267 + +N:Lesotho +C:+266 + +N:Malawi +C:+265 + +N:Namibia +C:+264 + +N:Simbabwe +A:Zimbabwe +C:+263 + +N:Reunion +A:Réunion, Reunion Island +C:+262 + +N:Madagaskar +A:Madagascar +C:+261 + +N:Sambia +A:Zambia +C:+260 + +N:Mosambik +A:Mozambik, Mozambique +C:+258 + +N:Burundi +C:+257 + +N:Uganda +C:+256 + +N:Tansania +A:Sansiba, Tanzania +C:+255 + +N:Kenia +A:Kenya +C:+254 + +N:Dschibuti +A:Djibouti +C:+253 + +N:Somalia +C:+252 + +N:Äthiopien +A:Ethiopia +C:+251 + +N:Ruanda +A:Rwanda +C:+250 + +N:Sudan +C:+249 + +N:Seyschellen +A:Seychellen, Seychelles Islands +C:+248 + +N:Ascension +A:Ascension Isle +C:+247 + +N:Diego Garcia +C:+246 + +N:Guinea-Bissau +C:+245 + +N:Angola +C:+244 + +N:Zaire +A:Kongo (Demokratische Republik), Kongo (DR) +C:+243 + +N:Kongo +A:Congo +C:+242 + +N:Gabun +A:Gabon +C:+241 + +N:Äquatorial-Guinea +A:Equatorial Guinea +C:+240 + +N:Sao Tome und Principe +A:Sao Tome et Principe, Sao Tome and Principa +C:+239 + +N:Cape Verde +A:Kap Verde +C:+238 + +N:Kamerun +A:Cameroon +C:+237 + +N:Zentralafrikanische Republik +A:Zentral Afrika (Rep.), Central African Republic +C:+236 + +N:Tschad +A:Chad, Chad Republic +C:+235 + +N:Nigeria +C:+234 + +N:Ghana +C:+233 + +N:Sierra Leone +C:+232 + +N:Liberia +C:+231 + +N:Mauritius +C:+230 + +N:Benin +C:+229 + +N:Togo +C:+228 + +N:Niger +A:Niger Republic +C:+227 + +N:Burkina Faso Obervolta +A:Obervolta, Burkina Faso +C:+226 + +N:Elfenbeinküste Cote de Ivoire +A:Cote d'Ivoire (Elfenbeinküste), Cote d'Ivoire, Elfenbeinküste, Ivory Coast +C:+225 + +N:Guinea +C:+224 + +N:Mali +C:+223 + +N:Mauretanien +A:Mauritania +C:+222 + +N:Senegal +A:Senegal Republic +C:+221 + +N:Gambia +C:+220 + +N:Libyen +A:Libysch-Arabische Dschamahirija, Libya +C:+218 + +N:Tunesien +A:Tunesia +C:+216 + +N:Algerien +A:Algeria +C:+213 + +N:Marokko +A:Marocco +C:+212 + +N:Ägypten +A:Egypt +C:+20 + +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 +A:Jamaica +C:+1876 + +N:St. Kitts und Nevis +A:St. Kitts & Nevis, Saint Kitts und Nevis, Saint Kitts and Nevis, St Kitts, Nevis Islands +C:+1869 + +N:Trinidad und Tobago +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, Turks & Caicos Islands +C:+1809946, +1809941, +1649 + +N:Amerikanische 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), British Virgin Isles +C:+1809499, +1809496, +1809495, +1809494, +1809, +1284 + +N:St. Vincent und Grenadinen +A:St. Vincent and the Grenadines, Saint Vincent und die Grenadinen, St. Vincent and Grenadines, St. Vincent und die Grenadien, St. Vincent Und Die Grenadinen +C:+1809493, +1809490, +1809485, +1809458, +1809457, +1809456, +1784 + +N:Dominica +A:Domenica +C:+1809449, +1809448, +1809447, +1809446, +1809445, +1809235, +1767 + +N:Grenada +C:+1809444, +1809443, +1809442, +1809441, +1809440, +1809408, +1809407, +1473 + +N:Hawaii +A:Hawai +C:+1808 + +N:Puerto Rico +C:+1787 + +N:St. Lucia +A:Saint Lucia +C:+1758 + +N:Marianen (SaipanNord-) +A:Nördliche Marianen, Marianen, Marianen (Saipan), Saipan, Salpan +C:+1670, +1671 + +N:Montserrat +C:+1664 + +N:Bermuda +C:+1441 + +N:Kaimaninseln +A:Cayman-Inseln, Cayman Islands +C:+1345 + +N:Antigua und Barbuda +A:Antigua & Barbuda, Antigua & Barbadu, Antigua und Barbadu +C:+1268 + +N:Anguilla +C:+1264 + +N:Barbados +C:+1246 + +N:Bahamas +C:+1242 + +N:USA +A:Vereinigte Staaten (USA), United States of America, United States of America & Canada +C:+1 diff --git a/isdnlog/holiday-at.dat b/isdnlog/holiday-at.dat index fa760fac..593d2de9 100644 --- a/isdnlog/holiday-at.dat +++ b/isdnlog/holiday-at.dat @@ -1,4 +1,4 @@ -V:1.1-Austria [12-Apr-1999] +V:1.20-Austria [05-Jun-1999] W:1 Montag W:2 Dienstag diff --git a/isdnlog/isdnconf/isdnconf.c b/isdnlog/isdnconf/isdnconf.c index 259a8793..72a7c04e 100644 --- a/isdnlog/isdnconf/isdnconf.c +++ b/isdnlog/isdnconf/isdnconf.c @@ -20,6 +20,12 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Log$ + * Revision 1.31 1999/06/13 14:07:28 akool + * isdnlog Version 3.32 + * + * - new option "-U1" (or "ignoreCOLP=1") to ignore CLIP/COLP Frames + * - TEI management decoded + * * Revision 1.30 1999/06/09 19:58:12 akool * isdnlog Version 3.31 * - Release 0.91 of zone-Database (aka "Verzonungstabelle") @@ -231,6 +237,7 @@ */ #include "isdnconf.h" +#include "tools/zone.h" /*****************************************************************************/ #define ZAUNPFAHL 1 /* FIXME: Michi: Offset */ @@ -881,7 +888,7 @@ retry: 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)); + print_msg(PRT_NORMAL, "DEBUG::tz=%d, zone=%d, Hour=%02d, P=%d, %s lasthour=%d, lastprovider=%d, now=%s", tz, *p, hour, provider, getProvider(provider), lasthour, lastprovider, ctime(&Rate.start)); #endif if (lastprovider == UNKNOWN) { @@ -898,7 +905,7 @@ retry: if (lastprovider == UNKNOWN) px = ""; else - px = getProvidername(lastprovider); + px = getProvider(lastprovider); 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, @@ -930,7 +937,7 @@ retry: if (lastprovider == UNKNOWN) px = ""; else - px = getProvidername(lastprovider); + px = getProvider(lastprovider); if ((lasthour == 7) && (hour == 7)) print_msg(PRT_NORMAL, " immer %s%02d:%s%*s = %s %s (%s) [DTAG: %s %s]\n", @@ -959,7 +966,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), max(WIDTH, strlen(getProvidername(provider))) - strlen(getProvidername(provider)), "", hours[provider]); + print_msg(PRT_NORMAL, "%s%02d:%s%*s(%d hours)\n", vbn, provider, getProvider(provider), max(WIDTH, strlen(getProvider(provider))) - strlen(getProvider(provider)), "", hours[provider]); useds++; if (hours[provider] < maxhour) { @@ -973,7 +980,7 @@ retry: if (ignoreprovider != leastprovider) { print_msg(PRT_NORMAL, "OOOPS: More than 5 providers used. Retry with %s%02d:%s ignored\n", - vbn, leastprovider, getProvidername(leastprovider)); + vbn, leastprovider, getProvider(leastprovider)); ignoreprovider = leastprovider; goto retry; @@ -1002,6 +1009,8 @@ static void showWorld(int duration) if ((p = strchr(s, '\n'))) *p = 0; + /* Fixme */ +#define abroad(x,y) 1 if (abroad(s, areacode)) { memset(&Rate, 0, sizeof(Rate)); @@ -1012,7 +1021,7 @@ static void showWorld(int duration) n = 0; for (Rate.prefix = 0; Rate.prefix < MAXPROVIDER; Rate.prefix++) { - Rate.zone = getZone(Rate.prefix, areacode); + Rate.zone = getZone(Rate.prefix, myarea, areacode); if (Rate.zone != UNKNOWN) { @@ -1030,7 +1039,7 @@ static void showWorld(int duration) #if 0 if (provider = getLeastCost(&Rate, UNKNOWN)) { print_msg(PRT_NORMAL, "%-50s %s %s%d:%s (%s)\n", - s, areacode, vbn, provider, getProvidername(provider), explainRate(&Rate)); + s, areacode, vbn, provider, getProvider(provider), explainRate(&Rate)); break; } /* if */ #endif @@ -1042,7 +1051,7 @@ static void showWorld(int duration) print_msg(PRT_NORMAL, "%-46s %-9s %s%d:%s (%s)\n", s, areacode, vbn, sort[0].prefix, - getProvidername(sort[0].prefix), sort[0].explain); + getProvider(sort[0].prefix), sort[0].explain); } /* if */ } @@ -1062,9 +1071,10 @@ int main(int argc, char *argv[], char *envp[]) section *conf_dat = NULL; char *myname = basename(argv[0]); FILE *fp; + COUNTRY *Country; RATE Rate; char *msg; - char country[BUFSIZ]; + char *country; static char usage[] = "%s: usage: %s [ -%s ]\n"; @@ -1224,7 +1234,7 @@ int main(int argc, char *argv[], char *envp[]) initHoliday(holifile, NULL); - initRate("/etc/isdn/rate.conf", "/usr/lib/isdn/rate-de.dat", "/usr/lib/isdn/countries-de.dat", NULL, NULL); + initRate("/etc/isdn/rate.conf", "/usr/lib/isdn/rate-de.dat", "/usr/lib/isdn/zone-de-%s.gdbm", NULL); /* initRate(NULL, "/usr/lib/isdn/rate-de.dat", "/usr/lib/isdn/countries-de.dat", NULL, NULL); */ currency = strdup("DM"); vbn = strdup("010"); @@ -1257,8 +1267,8 @@ int main(int argc, char *argv[], char *envp[]) } else { if (isalpha(*areacode)) { - if (abroad(areacode, country)) - strcpy(areacode, country); + if (getCountry(areacode, &Country)) + strcpy(areacode, Country->Code[0]); } /* if */ zone = area_diff(NULL, areacode); @@ -1282,11 +1292,11 @@ int main(int argc, char *argv[], char *envp[]) zone2 = zone; #if 0 else - zone2 = getZone(DTAG, areacode); + zone2 = getZone(DTAG, myarea, areacode); #endif if (zone2 == UNKNOWN) { - if (abroad(areacode, country)) + if (getCountrycode(areacode, &country)) print_msg(PRT_NORMAL, "Ein %d Sekunden langes Gespraech nach %s (%s) kostet am %s", duration, country, areacode, ctime(&Rate.start)); else @@ -1309,7 +1319,7 @@ int main(int argc, char *argv[], char *envp[]) if (zone != UNKNOWN) Rate.zone = zone; else - Rate.zone = getZone(Rate.prefix, areacode); + Rate.zone = getZone(Rate.prefix, myarea, areacode); if (Rate.zone != UNKNOWN) { diff --git a/isdnlog/isdnlog/functions.c b/isdnlog/isdnlog/functions.c index 96b020bd..62e4f100 100644 --- a/isdnlog/isdnlog/functions.c +++ b/isdnlog/isdnlog/functions.c @@ -19,6 +19,11 @@ * along with this program; if not, write to the Free Software * * $Log$ + * Revision 1.23 1999/06/03 18:50:27 akool + * isdnlog Version 3.30 + * - rate-de.dat V:1.02-Germany [03-Jun-1999 19:49:22] + * - small fixes + * * Revision 1.22 1999/04/19 19:24:35 akool * isdnlog Version 3.18 * @@ -107,7 +112,7 @@ * (first dialed digit comes with SETUP-Frame) * * Revision 1.14 1998/09/09 12:49:31 paul - * fixed crash when using mysql (call to Providername() was omitted) + * fixed crash when using mysql (call to Provider() was omitted) * * Revision 1.13 1998/06/21 11:52:43 akool * First step to let isdnlog generate his own AOCD messages @@ -412,8 +417,8 @@ void logger(int chan) mysql_db_set.currency_factor = currency_factor; strcpy(mysql_db_set.currency, currency); mysql_db_set.pay = call[chan].pay; - /* Fixme: getProvidername() should be changed to call[chan].Rate.Provider */ - strcpy(mysql_db_set.provider, getProvidername(call[chan].provider)); + /* Fixme: getProvider() should be changed to call[chan].Rate.Provider */ + strcpy(mysql_db_set.provider, getProvider(call[chan].provider)); mysql_dbAdd(&mysql_db_set); #endif } /* logger */ diff --git a/isdnlog/isdnlog/isdnlog.c b/isdnlog/isdnlog/isdnlog.c index b22678a8..02fd1407 100644 --- a/isdnlog/isdnlog/isdnlog.c +++ b/isdnlog/isdnlog/isdnlog.c @@ -19,6 +19,12 @@ * along with this program; if not, write to the Free Software * * $Log$ + * Revision 1.44 1999/06/13 14:07:44 akool + * isdnlog Version 3.32 + * + * - new option "-U1" (or "ignoreCOLP=1") to ignore CLIP/COLP Frames + * - TEI management decoded + * * Revision 1.43 1999/05/22 10:18:28 akool * isdnlog Version 3.29 * @@ -1111,7 +1117,7 @@ int main(int argc, char *argv[], char *envp[]) register int i, res = 0; auto int lastarg; auto char rlogfile[PATH_MAX]; - auto char *version, *cversion; + auto char *version; auto char **devices = NULL; sigset_t unblock_set; #ifdef TESTCENTER @@ -1331,11 +1337,11 @@ int main(int argc, char *argv[], char *envp[]) if (!Q931dmp && *version) print_msg(PRT_NORMAL, "%s\n", version); - initRate(rateconf, ratefile, countryfile, &version, &cversion); - - if (!Q931dmp && *cversion) - print_msg(PRT_NORMAL, "%s\n", cversion); + initCountry(countryfile, &version); + if (!Q931dmp && *version) + print_msg(PRT_NORMAL, "%s\n", version); + initRate(rateconf, ratefile, zonefile, &version); if (!Q931dmp && *version) print_msg(PRT_NORMAL, "%s\n", version); diff --git a/isdnlog/isdnlog/processor.c b/isdnlog/isdnlog/processor.c index a578a66b..90e552ce 100644 --- a/isdnlog/isdnlog/processor.c +++ b/isdnlog/isdnlog/processor.c @@ -19,6 +19,12 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Log$ + * Revision 1.66 1999/06/13 14:07:50 akool + * isdnlog Version 3.32 + * + * - new option "-U1" (or "ignoreCOLP=1") to ignore CLIP/COLP Frames + * - TEI management decoded + * * Revision 1.65 1999/06/09 19:58:26 akool * isdnlog Version 3.31 * - Release 0.91 of zone-Database (aka "Verzonungstabelle") @@ -932,9 +938,9 @@ void buildnumber(char *num, int oc3, int oc3a, char *result, int version, auto char s[BUFSIZ]; if (*provider < 100) - sprintf(s, "Via provider \"%s%02d\", %s", vbn, *provider, getProvidername(*provider)); + sprintf(s, "Via provider \"%s%02d\", %s", vbn, *provider, getProvider(*provider)); else - sprintf(s, "Via provider \"%s%03d\", %s", vbn, *provider - 100, getProvidername(*provider)); + sprintf(s, "Via provider \"%s%03d\", %s", vbn, *provider - 100, getProvider(*provider)); Q931dump(TYPE_STRING, -1, s, version); } /* if */ @@ -944,8 +950,8 @@ void buildnumber(char *num, int oc3, int oc3a, char *result, int version, if (*provider == UNKNOWN) *provider = preselect; - if (!dir && (who == CALLED)) - *sondernummer = is_sonderrufnummer(num); + if (*num && !dir && (who == CALLED) && getArea(*provider, num)) + *sondernummer = strlen(num); } /* if */ if (Q931dmp) { @@ -3452,19 +3458,15 @@ static void addlist(int chan, int type, int mode) /* mode :: 0 = Add new entry, void processRate(int chan) { - if (call[chan].zone != UNKNOWN) { - call[chan].Rate.prefix = call[chan].provider; - call[chan].Rate.zone = call[chan].zone; - call[chan].Rate.start = call[chan].connect; - call[chan].Rate.now = call[chan].disconnect = cur_time; + call[chan].Rate.start = call[chan].connect; + call[chan].Rate.now = call[chan].disconnect = cur_time; - if (getRate(&call[chan].Rate, NULL) == UNKNOWN) - call[chan].tarifknown = 0; - else { - call[chan].tarifknown = 1; - call[chan].pay = call[chan].Rate.Charge; - } /* else */ - } /* if */ + if (getRate(&call[chan].Rate, NULL) == UNKNOWN) { + call[chan].tarifknown = 0; + } else { + call[chan].tarifknown = 1; + call[chan].pay = call[chan].Rate.Charge; + } /* else */ } /* processRate */ @@ -3498,13 +3500,13 @@ static void processLCR(int chan, char *hint) if ((call[chan].provider != preselect) && (prepreis != -1.00) && (prepreis != call[chan].pay)) sprintf(sy, " saving vs. preselect (%s%02d:%s) %s %s", - vbn, preselect, getProvidername(preselect), + vbn, preselect, getProvider(preselect), currency, double2str(prepreis - call[chan].pay, 6, 3, DEB)); if ((call[chan].hint != UNKNOWN) && (call[chan].hint != bestRate.prefix)) sprintf(sz, " saving vs. hint (%s%02d:%s) %s %s", - vbn, call[chan].hint, getProvidername(call[chan].hint), + vbn, call[chan].hint, getProvider(call[chan].hint), currency, double2str(hintpreis - call[chan].pay, 6, 3, DEB)); @@ -3534,31 +3536,20 @@ static void showRates(char *message) static void prepareRate(int chan, char **msg, char **tip, int viarep) { - auto int zone = UNKNOWN; auto RATE lcRate, ckRate; - auto char pro[BUFSIZ]; static char message[BUFSIZ]; static char lcrhint[BUFSIZ]; - if (msg) *(*msg = message) = '\0'; if (tip) *(*tip = lcrhint) = '\0'; - call[chan].Rate.Provider = ""; - call[chan].Rate.Zone = ""; - call[chan].Rate.Day = ""; - call[chan].Rate.Hour = ""; - call[chan].Rate.Duration = 0; - call[chan].Rate.Price = 0; - call[chan].Rate.Units = 0; - call[chan].Rate.Charge = 0; - call[chan].Rate.Time = 0; - call[chan].Rate.Rest = 0; + clearRate (&call[chan].Rate); if (call[chan].intern[CALLED]) { + call[chan].Rate.zone = UNZONE; call[chan].zone = INTERN; call[chan].tarifknown = 0; @@ -3568,10 +3559,17 @@ static void prepareRate(int chan, char **msg, char **tip, int viarep) return; } /* if */ - zone = getZone(call[chan].provider, call[chan].num[CALLED]); + call[chan].Rate.prefix = call[chan].provider; + call[chan].Rate.src = call[chan].num[CALLING]; + call[chan].Rate.dst = call[chan].num[CALLED]; - if (!zone) { /* FreeCall */ - call[chan].zone = FREECALL; + if (getRate(&call[chan].Rate, msg)==UNKNOWN) + return; + + if (msg) + *(*msg = message) = '\0'; + + if (call[chan].Rate.zone == FREECALL) { /* FreeCall */ call[chan].tarifknown = 0; if (msg) @@ -3580,26 +3578,7 @@ static void prepareRate(int chan, char **msg, char **tip, int viarep) return; } /* if */ - if (zone == UNKNOWN) { - if (call[chan].local[CALLED]) - zone = LOCALCALL; - else { - zone = area_diff(NULL, call[chan].num[CALLED]); - - switch (zone) { - case AREA_ERROR : - case AREA_UNKNOWN : zone = UNKNOWN; break; - case AREA_LOCAL : zone = CITYCALL; break; - case AREA_R50 : zone = REGIOCALL; break; - case AREA_FAR : zone = GERMANCALL; break; - case AREA_ABROAD : zone = UNKNOWN; break; - } /* switch */ - } /* else */ - } /* if */ - - call[chan].zone = zone; - - if (zone == UNKNOWN) + if (call[chan].Rate.zone == UNKNOWN) call[chan].tarifknown = 0; else processRate(chan); @@ -3607,24 +3586,8 @@ static void prepareRate(int chan, char **msg, char **tip, int viarep) if (viarep) return; - if (msg) { - if (call[chan].tarifknown) - showRates(message); - else { - - if (call[chan].provider < 100) - sprintf(pro, "%s%02d", vbn, call[chan].provider); - else - sprintf(pro, "%s%03d", vbn, call[chan].provider - 100); - - if (call[chan].zone == UNKNOWN) - sprintf(message, "CHARGE: Uh-oh: No zone info for provider %s, number %s", - pro, call[chan].num[CALLED]); - else - sprintf(message, "CHARGE: Uh-oh: No charge info for provider %s, zone %d, number %s", - pro, call[chan].zone, call[chan].num[CALLED]); - } /* else */ - } /* if */ + if (msg && call[chan].tarifknown) + showRates(message); lcRate = call[chan].Rate; @@ -3661,7 +3624,7 @@ static void LCR(int chan, char *s) print_msg(PRT_NORMAL, ">> LCR: OUTGOING SETUP(%s)\n", s + 5); print_msg(PRT_NORMAL, ">> LCR: from TEI %d, to number \"%s\", Provider=%s%d:%s, Sonderrufnummer=%d, InternalCall=%d, LocalCall=%d\n", - call[chan].tei, call[chan].num[CALLED], vbn, call[chan].provider, getProvidername(call[chan].provider), + call[chan].tei, call[chan].num[CALLED], vbn, call[chan].provider, getProvider(call[chan].provider), call[chan].sondernummer[CALLED], call[chan].intern[CALLED], call[chan].local[CALLED]); if (!call[chan].intern[CALLED]) { /* keine Hausinternen Gespr„che */ diff --git a/isdnlog/isdnrep/isdnrep.c b/isdnlog/isdnrep/isdnrep.c index 36f85a7a..6308fa24 100644 --- a/isdnlog/isdnrep/isdnrep.c +++ b/isdnlog/isdnrep/isdnrep.c @@ -24,6 +24,11 @@ * * * $Log$ + * Revision 1.67 1999/06/09 19:58:44 akool + * isdnlog Version 3.31 + * - Release 0.91 of zone-Database (aka "Verzonungstabelle") + * - "rate-de.dat" V:1.02-Germany [09-Jun-1999 21:45:26] + * * Revision 1.66 1999/06/03 18:50:46 akool * isdnlog Version 3.30 * - rate-de.dat V:1.02-Germany [03-Jun-1999 19:49:22] @@ -905,7 +910,7 @@ int read_logfile(char *myname) /* FIXME: */ initHoliday(holifile, NULL); - initRate("/etc/isdn/rate.conf", "/usr/lib/isdn/rate-de.dat", "/usr/lib/isdn/countries-de.dat", NULL, NULL); + initRate("/etc/isdn/rate.conf", "/usr/lib/isdn/rate-de.dat", "/usr/lib/isdn/rate-de-%s.gdbm", NULL); currency = strdup("DM"); vbn = strdup("010"); interns0 = 3; @@ -1283,7 +1288,7 @@ static int print_bottom(double unit, char *start, char *stop) else *sx = 0; - print_line3(NULL, "Provider", string, getProvidername(i), + print_line3(NULL, "Provider", string, getProvider(i), usage_provider[i], double2clock(duration_provider[i]), print_currency(pay_provider[i], 0), sx); @@ -1740,7 +1745,7 @@ static int print_line(int status, one_call *cur_call, int computed, char *overla { register char *p; - p = (cur_call->provider > 0) ? getProvidername(cur_call->provider) : ""; + p = (cur_call->provider > 0) ? getProvider(cur_call->provider) : ""; if (cur_call->dir == DIALIN) p = ""; diff --git a/isdnlog/prefixes.dat b/isdnlog/prefixes.dat deleted file mode 100644 index 11b533ed..00000000 --- a/isdnlog/prefixes.dat +++ /dev/null @@ -1,1126 +0,0 @@ -V:1.02-German [03-Jun-1999 19:46:35] - -N:Usbekistan -A:Uzbekistan -C:+998, +7590, +7436, +743, +7375, +7374, +7373, +7372, +7371, +737, +7369, +7367, +7366, +7365, +7362, +7361 - -N:Kirgisien -A:Kirgizia -C:+996 - -N:Georgien -A:Georgia -C:+995 - -N:Aserbaidschan -A:Azerbaijan -C:+994 - -N:Turkmenistan -C:+993 - -N:Tadschikistan -A:Tajikistan -C:+992, +7433, +7431, +74, +7379, +7377, +7376, +7364 - -N:Iran -C:+98 - -N:Nepal -C:+977 - -N:Mongolei -A:Mongolische VR, Mongolia -C:+976 - -N:Bhutan -C:+975 - -N:Katar -A:Quatar -C:+974 - -N:Bahrain -C:+973 - -N:Israel Mobilfunk -C:+97255, +97254, +97253, +97252, +97251, +97250 - -N:Israel -C:+972 - -N:Ver. Arabische Emirate -A:Vereinigte Arabische Emirate, Ver.Arab. Emirate, Vereinigte Arab. Emirate, United Arab Emirates -C:+971 - -N:Jemen (Arab. Republik) -A:Jemen (Arabische Republik), Jemen, Jemen Arab. Rep. -C:+969, +967 - -N:Oman -C:+968 - -N:Saudi Arabien -A:Saudi Arabia -C:+966 - -N:Kuwait -A:Kuweit -C:+965 - -N:Irak -A:Iraq -C:+964 - -N:Syrien -A:Syria -C:+963 - -N:Jordanien -A:Jordan -C:+962 - -N:Libanon Mobilfunk -C:+9613 - -N:Libanon -A:Lebanon -C:+961 - -N:Malediven -A:Maldives -C:+960 - -N:Myanmar Burma -A:Myanmar (Birma), Burma, Birma, Myanmar, Birma (Myanmar) -C:+95 - -N:Sri Lanka -C:+94 - -N:Afghanistan -C:+93 - -N:Pakistan -C:+92 - -N:Indien -A:India -C:+91 - -N:Türkei Mobilfunk -C:+905 - -N:Türkei -A:Turkey -C:+90 - -N:Taiwan Mobilfunk -C:+8869 - -N:Taiwan -A:China (Taiwan) -C:+886 - -N:Iridium 008817 -C:+8817 - -N:Iridium 008816 -C:+8816 - -N:Bangladesch -A:Bangladesh -C:+880 - -N:Inmarsat A Daten/Fax -C:+8748, +8738, +8728, +8718 - -N:Inmarsat Mini-M -A:Inmarsat Phone (Mini-M) -# FIXME: +87076 ist eigentlich "Inmarsat Mini-M (Worldwide)" -C:+87476, +87376, +87276, +87176, +87076 - -N:Inmarsat M -C:+8746, +8736, +8726, +8716 - -N:Inmarsat Aero -C:+8745, +8735, +8725, +8715 - -N:Inmarsat B HSD -C:+87439, +87339, +87239, +87139 - -N:Inmarsat B -C:+8743, +8733, +8723, +8713 - -N:Inmarsat A -C:+8741, +8731, +8721, +8711 - -N:Atlantischer Ozean (West) -A:Atlantic Ocean (west) -C:+874 - -N:Indischer Ozean -A:Indian Ocean -C:+873 - -N:Pazifischer Ozean -A:Pacific Ocean -C:+872 - -N:Atlantischer Ozean (Ost) -A:Atlantic Ocean (east) -C:+871 - -N:China Mobilfunk -C:+86886, +8613 - -N:China -A:China (Volksrepublik), China (People's Republic) -C:+86 - -N:Laos -A:Lao -C:+856 - -N:Kambodscha -A:Cambodia -C:+855 - -N:Macao -A:Macau -C:+853 - -N:Hong Kong Mobilfunk -C:+8529, +8522 - -N:Hongkong -C:+852 - -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 -C:+84 - -N:Korea Rep. (South) Mobilfunk -C:+8227, +821 - -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 -C:+8190, +8170 - -N:Tokyo -C:+813 - -N:Japan -C:+81 - -N:international freephone -C:+800 - -N:Russische Föderat. (westl.) -A:Rußland (westl.), GUS (Russische Föderation) -C:+7902, +7901, +7863, +7862, +7861, +7820, +7817, +7816, +7815, +7814, +7811, +7543, +7517, +75112, +75110, +7510, +7505, +7503, +7502, +7501, +709246, +709245, +709244, +709243, +709237, +7091, +7087, +7086, +7085, +7084, +7083, +7082, +7081, +7074, +7073, +7072, +7071, +7011 - -N:St. Petersburg -C:+7812, +751285 - -N:Kirgistan -A:Kirgisistan -C:+7339, +7335, +7334, +7333, +7332, +7331, +733, +7319 - -N:Kasachstan -C:+7336, +7330, +7329, +7328, +7327, +7326, +7325, +7324, +7323, +7322, +7321, +7318, +7317, +7316, +7315, +7314, +7313, +7312, +7311, +7310, +73 - -N:Moskau -C:+7096, +7095 - -N:Russische Förderation (östl.) -A:Rußland, Rußland (östl.), Russische Föderation, Russian Federation, Kazakhstan, Kyrgyzstan -C:+7 - -N:Midway-Inseln -C:+6998 - -N:Chatham-Inseln -C:+6996 - -N:Wake Inseln -A:Wake Island -C:+6993 - -N:Marshallinseln -A:Marshall Islands -C:+692 - -N:Mikronesien -A:Micronesia -C:+691 - -N:Tokelan -A:Tokelau, Tokelauinseln -C:+690 - -N:Französisch-Polynesien -A:French Polynesia -C:+689 - -N:Tuvalu -C:+688 - -N:Neukaledonien -A:New Caledonia -C:+687 - -N:Kiribati -A:Kirlbati -C:+686 - -N:West-Samoa -A:Samoa (West), Western Samoa -C:+685 - -N:Amerikanisch-Samoa -A:Samoa, Samoa (US), American Samoa -C:+684 - -N:Niue-Inseln -A:Niue Islands, Niue -C:+683 - -N:Cookinseln -A:Cook Islands -C:+682 - -N:Wallis und Futuna -A:Wallis- und Futuna-Inseln, Wallis & Fortuna Islands -C:+681 - -N:Palau /Belau -A:Palau -C:+680 - -N:Fidschi -A:Fiji -C:+679 - -N:Vanuatu -C:+678 - -N:Salomonen -A:Solomon Inseln, Solomonen, Salomoninseln, Solomon Islands -C:+677 - -N:Tonga -C:+676 - -N:Papua-Neuguinea -A:Papua New Guinea -C:+675 - -N:Nauru -C:+674 - -N:Brunei -C:+673 - -N:Weihnachtsinseln -A:Weihnachtsinsel (Australien), Christmas Island, Christmas Island (Antarctica) -C:+6724 - -N:Norfolkinseln -A:Norfolkinseln (Australien), Norfolk Islands, Norfolk, Norfolk Island, Norfolk Island (Antarctica) -C:+6723 - -N:Kokosinseln -A:Kokosinseln (Australien), Cocos Island, Cocos Island (Antarctica) -C:+6722, +6189162 - -N:Antarktis -A:Antarctica -C:+6721, +672 - -N:Guam -C:+671 - -N:Thailand -C:+66 - -N:Singapur -A:Singapore -C:+65 - -N:Pitcairn Inseln -N:Pitcairn Islands -C:+649 - -N:Neuseeland -A:New Zealand, New Zealand & Chatham Island -C:+64 - -N:Philippinen -A:Phillipines -C:+63 - -N:Indonesien -A:Indonesia -C:+62 - -N:Australien Mobilfunk -C:+61500, +6142, +6141, +6140, +6119, +6118, +6117, +6116, +6115, +6114, +6113, +6112, +61071 - -N:Australien -A:Australia -C:+61 - -N:Malaysia -C:+60 - -N:Niederl. Antillen -A:Niederländische Antillen, Antillen (Niederlande), Netherlands Antilles -C:+599 - -N:Uruguay -C:+598 - -N:Suriname -A:Surinam -C:+597 - -N:Martinique / Franz. Antillen -A:Martinique, Französische Antillen, Martinique (French Antilles) -C:+596 - -N:Paraguay -C:+595 - -N:Französisch-Guayana -A:Französisch Guyana, Franz. Guyana, French Guyana -C:+594 - -N:Ecuador Mobilfunk -C:+5939 - -N:Ecuador -A:Equador -C:+593 - -N:Guyana -A:Guayana -C:+592 - -N:Bolivien -A:Bolivia -C:+591 - -N:Guadeloupe -A:Guadaloupe -C:+590 - -N:Venezuela Mobilfunk -C:+5816, +5814 - -N:Venezuela -C:+58 - -N:Kolumbien Mobilfunk -C:+573 - -N:Kolumbien -A:Colombia -C:+57 - -N:Chile -A:Chile & Easter Island -C:+56 - -N:Brasilien Mobilfunk -C:+55664, +55663 - -N:Brasilien -A:Brazil -C:+55 - -N:Argentinien Mobilfunk -C:+54414, +5440, +5430, +5428, +5426, +5422, +5421, +5420, +54197, +54193, +54167, +54156, +54153, +5414 - -N:Argentinien -A:Argentina -C:+54 - -N:Guantanamo Bay -A:Guatanamo Bay, Guantanamo Bay (Cuba) -C:+5399 - -N:Guantanamo -C:+5321 - -N:Kuba -A:Cuba -C:+53 - -N:Mexiko -A:Mexico -C:+52 - -N:Peru Mobilfunk -C:+51946, +51846, +51746, +51646, +51546, +51446, +51346, +51246, +5119, +5116, +5115, +5114 - -N:Peru -C:+51 - -N:Haiti -C:+509 - -N:St. Pierre und Miquelon -A:Saint Pierre und Miquelon, St. Pierre and Miquelon, Saint Pierre et Miquelon -C:+508 - -N:Panama Mobilfunk -C:+5076 - -N:Panama -C:+507 - -N:Costa Rica -C:+506 - -N:Nicaragua -C:+505 - -N:Honduras -C:+504 - -N:El Salvador Mobilfunk -C:+5038 - -N:El Salvador -C:+503 - -N:Guatemala -C:+502 - -N:Belize -C:+501 - -N:Falklandinseln -A:Falkland Islands -C:+500 - -N:Deutschland -A:Germany -C:+49 - -N:Polen -A:Poland -C:+48 - -N:Norwegen Mobilfunk -C:+479 - -N:Norwegen -A:Norway -C:+47 - -N:Stockholm -C:+468 - -N:Schweden Mobilfunk -C:+4673, +46709, +46708, +46707, +46706, +46705, +46704, +46703, +46702, +4610 - -N:Schweden -A:Sweden -C:+46 - -N:Sønderjylland -C:+4574, +4573 - -N:Dänemark Mobilfunk -C:+45503, +45502, +45501, +45409, +45408, +45407, +45406, +45405, +45404, +45403, +45402, +45401, +4530, +4528, +4526, +4523, +4522, +4521, +45209, +45208, +45207, +45206, +45205, +45204, +45203, +45202, +45201 - -N:Dänemark -A:Denmark -C:+45 - -N:Großbritannien Mobilfunk -C:+44991, +44979, +44976, +44973, +44966, +44961, +449589, +449587, +449586, +449585, +449584, +449583, +449582, +44941, +44930, +44918, +44910, +4489, +44881, +44860, +44853, +44850, +44839, +44836, +44831, +44802, +447, +44696, +4466, +44640, +44632, +44589, +44585, +44469, +44468, +44467, +444624, +44448, +44441, +444325, +44421, +44411, +44410, +44403, +44402, +44401, +44378, +443749, +443748, +443747, +443746, +443744, +443743, +443742, +443741, +443740, +44338, +44336, +44331, +441693, +441523, +441459, +441426, +44139 - -N:London (Außenbezirk) -C:+44181 - -N:London (Innenbezirk) -C:+44171 - -N:Edinburgh -C:+44131 - -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 - -N:Österreich Auskunft -A:Auskunft Austria -C:+4366211811 - -N:Wien -C:+431 - -N:Österreich -A:Austria -C:+43 - -N:Liechtenstein -A:Lichtenstein -C:+423, +4175 - -N:Slowakische Republik -A:Slowakei, Slowakische Rep., Slowak. Rep., Slovakia -C:+421 - -N:Tschechische Republik -A:Tschechien, Tschechische Rep., Tschech. Rep., Czech Republic -C:+420 - -N:Freephone Schweiz -A:Plus Freephone Service (Schweiz) -C:+41800 - -N:Schweiz Mobilfunk -C:+4179, +4178, +4176 - -N:Genf -C:+4122 - -N:Zürich -C:+411 - -N:Schweiz -A:Switzerland -C:+41 - -N:Rumänien -A:Romania -C:+40 - -N:Italien Mobilfunk -C:+39368, +39360, +39349, +39348, +39347, +39339, +39338, +39337, +39336, +39335, +39330, +39329, +39328 - -N:Vatikan -A:Vatikanstadt / Rom, Vatikanstadt, Vatican City -C:+379, +3906 - -N:Mailand -C:+3902 - -N:Italien -A:Italy -C:+39 - -N:Mazedonien -A:Macedonia -C:+389 - -N:Bosnien-Herzegowina -A:Bosnia and Hercegovina -C:+387 - -N:Slowenien -A:Slovenia -C:+386 - -N:Kroatien -A:Croatia -C:+385 - -N:Jugoslawien -A:Jugoslawien (Serbien/Montenegro), Serbien, Montenegro, Yugoslavia (Servia & Montenegro) -C:+381 - -N:Ukraine -C:+380 - -N:San Marino -C:+378 - -N:Monaco -C:+377 - -N:Andorra -C:+376 - -N:Weissrussland -A:Weissrussland Belarus, Belarus -C:+375 - -N:Armenien -A:Armenia -C:+374 - -N:Moldavien Moldau (Republik) -A:Moldau Republik, Moldavien, Moldawien, Moldau, Moldova -C:+373 - -N:Estland -A:Estonia -C:+372 - -N:Lettland -A:Latvia -C:+371 - -N:Litauen -A:Lithuania -C:+370 - -N:Ungarn -A:Hungary -C:+36 - -N:Bulgarien -A:Bulgaria -C:+359 - -N:Finnland -A:Finland -C:+358 - -N:Zypern -A:Cyprus -C:+357 - -N:Malta -C:+356 - -N:Albanien -A:Albania -C:+355 - -N:Island -A:Iceland -C:+354 - -N:Irland Mobilfunk -C:+35389, +35388, +35387, +35386 - -N:Irland -A:Ireland -C:+353 - -N:Luxemburg -A:Luxembourg -C:+352 - -N:Azoren -C:+35196, +35195, +35192 - -N:Madeira -C:+35191 - -N:Portugal -C:+351 - -N:Gibraltar -C:+350 - -N:Tarragona -C:+34977 - -N:Gerona -C:+34972 - -N:Mallorca -C:+34971 - -N:Valencia -C:+3496 - -N:Bilbao -C:+3494 - -N:Barcelona -C:+3493 - -N:Kanarische Inseln -C:+34928 - -N:Teneriffa -C:+34922 - -N:Madrid -C:+3491 - -N:Spanien Mobilfunk -C:+34689, +34670, +34649, +34639, +34630, +34629, +34619, +34617, +34616, +34610, +34609, +34608, +34607, +34606 - -N:Spanien -A:Spain -C:+34 - -N:Frankreich Mobilfunk -C:+336 - -N:Paris -C:+331 - -N:Frankreich -A:France -C:+33 - -N:Belgien Mobilfunk -C:+3275, +32496, +32495, +32486, +32477, +32476, +32475, +3218, +3217 - -N:Antwerpen -C:+323 - -N:Brüssel -C:+322 - -N:Leuven -C:+3216 - -N:Belgien -A:Belgium -C:+32 - -N:Freephone Niederlande -A:Freephone NL, Freephone (Niederl.), Plus Freephone Service (Niederl.) -C:+31800 - -N:Den Haag -C:+3170 - -N:Niederlande Mobilfunk -C:+3165, +3162 - -N:Amsterdam -C:+3120 - -N:Rotterdam -C:+3110 - -N:Niederlande -A:Netherlands -C:+31 - -N:Griechenland -A:Greece -C:+30 - -N:Grönland -A:Greenland -C:+299 - -N:Färöer-Inseln -A:Färöer, Faroe Islands -C:+298 - -N:Aruba -C:+297 - -N:Eritrea -C:+291 - -N:St. Helena -A:Saint Helena -C:+290 - -N:Tristan da Cunha -C:+2897 - -N:Südafrika -A:South Africa -C:+27 - -N:Mayotte -A:Komoren, Comoros -C:+269 - -N:Swasiland -A:Swaziland -C:+268 - -N:Botsuana Botswana -A:Botswana Republic, Botsuana, Botswana -C:+267 - -N:Lesotho -C:+266 - -N:Malawi -C:+265 - -N:Namibia -C:+264 - -N:Simbabwe -A:Zimbabwe -C:+263 - -N:Reunion -A:Réunion, Reunion Island -C:+262 - -N:Madagaskar -A:Madagascar -C:+261 - -N:Sambia -A:Zambia -C:+260 - -N:Mosambik -A:Mozambik, Mozambique -C:+258 - -N:Burundi -C:+257 - -N:Uganda -C:+256 - -N:Tansania -A:Sansiba, Tanzania -C:+255 - -N:Kenia -A:Kenya -C:+254 - -N:Dschibuti -A:Djibouti -C:+253 - -N:Somalia -C:+252 - -N:Äthiopien -A:Ethiopia -C:+251 - -N:Ruanda -A:Rwanda -C:+250 - -N:Sudan -C:+249 - -N:Seyschellen -A:Seychellen, Seychelles Islands -C:+248 - -N:Ascension -A:Ascension Isle -C:+247 - -N:Diego Garcia -C:+246 - -N:Guinea-Bissau -C:+245 - -N:Angola -C:+244 - -N:Zaire -A:Kongo (Demokratische Republik), Kongo (DR) -C:+243 - -N:Kongo -A:Congo -C:+242 - -N:Gabun -A:Gabon -C:+241 - -N:Äquatorial-Guinea -A:Equatorial Guinea -C:+240 - -N:Sao Tome und Principe -A:Sao Tome et Principe, Sao Tome and Principa -C:+239 - -N:Cape Verde -A:Kap Verde -C:+238 - -N:Kamerun -A:Cameroon -C:+237 - -N:Zentralafrikanische Republik -A:Zentral Afrika (Rep.), Central African Republic -C:+236 - -N:Tschad -A:Chad, Chad Republic -C:+235 - -N:Nigeria -C:+234 - -N:Ghana -C:+233 - -N:Sierra Leone -C:+232 - -N:Liberia -C:+231 - -N:Mauritius -C:+230 - -N:Benin -C:+229 - -N:Togo -C:+228 - -N:Niger -A:Niger Republic -C:+227 - -N:Burkina Faso Obervolta -A:Obervolta, Burkina Faso -C:+226 - -N:Elfenbeinküste Cote de Ivoire -A:Cote d'Ivoire (Elfenbeinküste), Cote d'Ivoire, Elfenbeinküste, Ivory Coast -C:+225 - -N:Guinea -C:+224 - -N:Mali -C:+223 - -N:Mauretanien -A:Mauritania -C:+222 - -N:Senegal -A:Senegal Republic -C:+221 - -N:Gambia -C:+220 - -N:Libyen -A:Libysch-Arabische Dschamahirija, Libya -C:+218 - -N:Tunesien -A:Tunesia -C:+216 - -N:Algerien -A:Algeria -C:+213 - -N:Marokko -A:Marocco -C:+212 - -N:Ägypten -A:Egypt -C:+20 - -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 -A:Jamaica -C:+1876 - -N:St. Kitts und Nevis -A:St. Kitts & Nevis, Saint Kitts und Nevis, Saint Kitts and Nevis, St Kitts, Nevis Islands -C:+1869 - -N:Trinidad und Tobago -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, Turks & Caicos Islands -C:+1809946, +1809941, +1649 - -N:Amerikanische 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), British Virgin Isles -C:+1809499, +1809496, +1809495, +1809494, +1809, +1284 - -N:St. Vincent und Grenadinen -A:St. Vincent and the Grenadines, Saint Vincent und die Grenadinen, St. Vincent and Grenadines, St. Vincent und die Grenadien, St. Vincent Und Die Grenadinen -C:+1809493, +1809490, +1809485, +1809458, +1809457, +1809456, +1784 - -N:Dominica -A:Domenica -C:+1809449, +1809448, +1809447, +1809446, +1809445, +1809235, +1767 - -N:Grenada -C:+1809444, +1809443, +1809442, +1809441, +1809440, +1809408, +1809407, +1473 - -N:Hawaii -A:Hawai -C:+1808 - -N:Puerto Rico -C:+1787 - -N:St. Lucia -A:Saint Lucia -C:+1758 - -N:Marianen (SaipanNord-) -A:Nördliche Marianen, Marianen, Marianen (Saipan), Saipan, Salpan -C:+1670, +1671 - -N:Montserrat -C:+1664 - -N:Bermuda -C:+1441 - -N:Kaimaninseln -A:Cayman-Inseln, Cayman Islands -C:+1345 - -N:Antigua und Barbuda -A:Antigua & Barbuda, Antigua & Barbadu, Antigua und Barbadu -C:+1268 - -N:Anguilla -C:+1264 - -N:Barbados -C:+1246 - -N:Bahamas -C:+1242 - -N:USA -A:Vereinigte Staaten (USA), United States of America, United States of America & Canada -C:+1 diff --git a/isdnlog/rate-at.dat b/isdnlog/rate-at.dat index 69dd9d6f..cabee6d2 100644 --- a/isdnlog/rate-at.dat +++ b/isdnlog/rate-at.dat @@ -10,16 +10,17 @@ # for collecting and preparing most of the call charges. -V:1.40-Austria [01-Jun-1999] +V:1.56-Austria [11-Jun-1999] -F:%.3f öS +U:%.3f öS P:01,1 Telekom Austria C:Tarif: Minimumtarif (ATS 1.116 / Impuls) +D:pta # Verzonung Z:0 FreePhone T:*/*=0/72 -A:+43800 +A:122, 133, 144, +43800 Z:1 Regionalzone T:1-5/08-12=1.116/57.6 Tageszeit 1 @@ -241,10 +242,11 @@ A:+43717 P:01,2 Telekom Austria C:Tarif: Standartarif (ATS 1.056 / Impuls) +D:pta # Verzonung Z:0 FreePhone T:*/*=0/72 -A:+43800 +A:122, 133, 144, +43800 Z:1 Regionalzone T:1-5/08-12=1.056/57.6 Tageszeit 1 @@ -466,10 +468,11 @@ A:+43717 P:01,3 Telekom Austria C:Tarif: Geschäftstarif 1 (ATS 0.996 / Impuls) +D:pta # Verzonung Z:0 FreePhone T:*/*=0/72 -A:+43800 +A:122, 133, 144, +43800 Z:1 Regionalzone T:1-5/08-12=0.996/57.6 Tageszeit 1 @@ -691,10 +694,11 @@ A:+43717 P:01,4 Telekom Austria C:Tarif: Geschäftstarif 2 (ATS 0.936 / Impuls) +D:pta # Verzonung Z:0 FreePhone T:*/*=0/72 -A:+43800 +A:122, 133, 144, +43800 Z:1 Regionalzone T:1-5/08-12=0.936/57.6 Tageszeit 1 @@ -915,6 +919,7 @@ T:E,H/*=0.936/15 Sparzeit A:+43717 P:02 UTA +C:Fixme: Bundesland-Verzonung nicht implementiert Z:1 Bundeslandzone T:*/*=1.00(60)/1 Geschäftszeit T:*/*=0.88(60)/1 Freizeit @@ -1386,6 +1391,7 @@ T:1-5/18-8=2.112(60)/1 Sparzeit T:E,H/*=2.112(60)/1 Sparzeit P:12 1012 +D:1012 # Verzonung Z:1 Nah T:1-5/8-18=1.00(60)/60/1 Tag T:1-5/18-8=0.90(60)/60/1 Nacht @@ -1610,7 +1616,8 @@ Z:6 Euro City T:1-5/8-18=3.76(60)/4.79/1 Tag T:1-5/18-8=3.46(60)/5.20/1 Nacht T:E,H/*=3.46(60)/5.20/1 Weekend -A:Amsterdam, Brüssel, Frankfurt, London, Luxemburg, Mailand, Paris, Zürich +A:Amsterdam, Brüssel, Frankfurt, London, Luxemburg City, Mailand, Paris +A:Zürich Z:7 Welt 1 T:*/*=6.66(60)/2.70/1 rund um die Uhr A:Hawaii, Amerikanische Jungferninseln, Puerto Rico, Vereinigte Staaten (USA) diff --git a/isdnlog/tools/Makefile b/isdnlog/tools/Makefile index 49487c53..961c290f 100644 --- a/isdnlog/tools/Makefile +++ b/isdnlog/tools/Makefile @@ -3,7 +3,7 @@ CC=gcc -m486 -O2 -pg -Wall -DSTANDALONE -I. -I.. -I../isdnlog all: rate zone country holiday rate-at rate: rate.u zone.u country.u holiday.u - ${CC} -o rate rate.u country.u holiday.u + ${CC} -lgdbm -o rate rate.u zone.u country.u holiday.u zone: zone.c zone.h ${CC} -DZONETEST -lgdbm -o zone zone.c diff --git a/isdnlog/tools/country.c b/isdnlog/tools/country.c index e835f4a3..81a1a801 100644 --- a/isdnlog/tools/country.c +++ b/isdnlog/tools/country.c @@ -19,6 +19,11 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Log$ + * Revision 1.2 1999/06/03 18:51:11 akool + * isdnlog Version 3.30 + * - rate-de.dat V:1.02-Germany [03-Jun-1999 19:49:22] + * - small fixes + * * Revision 1.1 1999/05/27 18:19:57 akool * first release of the new country decoding module * @@ -33,6 +38,17 @@ * void initCountry(char *path, char **msg) * initialisiert die Länderdatenbank * + * int getCountry (char *name, COUTRY **country) + * sucht das Land oder die Vorwahl *name und + * stellt den Eintrag in **country zur Verfügung. + * Rückgabewert ist der phonetische Abstand + * (0 = exakte Übereinsatimmung) + * + * int getCountrycode (char *number, char **name) + * sucht die passende Auslandsvorwahl zu *number + * liefert den Namen des Landes in *name + * Rückgabewert ist die Länge der Vorwahl + * */ #define _COUNTRY_C_ @@ -46,7 +62,7 @@ #include #include #include -#if 0 +#if 1 extern const char *basename (const char *name); #endif #else @@ -367,7 +383,7 @@ int getCountry (char *name, COUNTRY **country) } return UNKNOWN; } - + xname=xlat(name); for (i=0; im && strncmp (number, Country[i].Code[j], l)==0) { + m=l; + if (name) *name=Country[i].Name; + } + } + } + return m; +} + + #ifdef COUNTRYTEST void main (int argc, char *argv[]) { @@ -402,11 +439,16 @@ void main (int argc, char *argv[]) printf ("%s\n", msg); for (i=1; i unknown country!\n", argv[i]); else printf ("<%s>=<%s> d=%d\n", argv[i], country->Name, d); +#else + d=getCountrycode (argv[i], &msg); + printf ("<%s>=<%s> d=%d\n", argv[i], msg, d); +#endif } } #endif diff --git a/isdnlog/tools/country.h b/isdnlog/tools/country.h index 99663a79..6ddb6cc6 100644 --- a/isdnlog/tools/country.h +++ b/isdnlog/tools/country.h @@ -19,6 +19,11 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Log$ + * Revision 1.2 1999/06/03 18:51:19 akool + * isdnlog Version 3.30 + * - rate-de.dat V:1.02-Germany [03-Jun-1999 19:49:22] + * - small fixes + * * Revision 1.1 1999/05/27 18:19:58 akool * first release of the new country decoding module * @@ -36,8 +41,9 @@ typedef struct { int nCode; } COUNTRY; -int initCountry(char *path, char **msg); -void exitCountry(void); -int getCountry(char *name, COUNTRY **country); +int initCountry (char *path, char **msg); +void exitCountry (void); +int getCountry (char *name, COUNTRY **country); +int getCountrycode (char *number, char **name); #endif diff --git a/isdnlog/tools/holiday.c b/isdnlog/tools/holiday.c index 24685370..467d4542 100644 --- a/isdnlog/tools/holiday.c +++ b/isdnlog/tools/holiday.c @@ -19,6 +19,20 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Log$ + * Revision 1.12 1999/05/22 10:19:21 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 + * - Patch from Markus Schoepflin + * - 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.11 1999/05/09 18:24:18 akool * isdnlog Version 3.25 * @@ -123,7 +137,7 @@ /* * Schnittstelle: * - * int initHoliday(char *path) + * int initHoliday(char *path, char **msg) * initialisiert die Feiertagsberechnung, liest die Feiertagsdatei * und gibt die Anzahl der Feiertage zurück, im Fehlerfall -1 * @@ -166,7 +180,10 @@ typedef struct { char *name; } HOLIDATE; -static char *defaultWeekday[] = { "", +static char *defaultWeekday[] = { "", /* not used */ + "", /* empty "Everyday" */ + "Workday", + "Weekend", "Monday", "Tuesday", "Wednesday", @@ -174,9 +191,7 @@ static char *defaultWeekday[] = { "", "Friday", "Saturday", "Sunday", - "Workday", - "Weekend", - "Holiday" }; + "Holiday" }; static int line = 0; static char *Weekday[COUNT(defaultWeekday)] = { NULL, }; @@ -202,8 +217,8 @@ static void warning (char *file, char *fmt, ...) static julian date2julian(int y, int m, int d) { - if (m<3) {m+=9; y--;} else m-=3; - return (146097*(y/100))/4+(1461*(y%100))/4+(153*m+2)/5+d; + if (m<3) {m+=9; y--;} else m-=3; + return (146097*(y/100))/4+(1461*(y%100))/4+(153*m+2)/5+d; } #if 0 /* not used by now */ @@ -320,10 +335,11 @@ int initHoliday(char *path, char **msg) s+=2; while (isblank(*s)) s++; if (isdigit(*s)) { d=strtol(s,&s,10); - if (d<1 || d>7) { - warning(path, "invalid weekday %d", d); + if (d<1 || d>7) { + warning(path, "invalid weekday %d", d); continue; } + d+=MONDAY-1; } else if (*s=='W') { d=WORKDAY; s++; @@ -362,6 +378,7 @@ int initHoliday(char *path, char **msg) d=atof(strsep(&date,".")); m=atof(strsep(&date,".")); } + Holiday=(HOLIDATE*)realloc(Holiday,(nHoliday+1)*sizeof(HOLIDATE)); Holiday[nHoliday].day=d; Holiday[nHoliday].month=m; @@ -370,7 +387,8 @@ int initHoliday(char *path, char **msg) break; case 'V': /* V:xxx Version der Datenbank */ - strcpy(version, s+2); + s+=2; while(isblank(*s)) s++; + strcpy(version, s); break; default: @@ -380,7 +398,7 @@ int initHoliday(char *path, char **msg) fclose(stream); if (msg) snprintf (message, LENGTH, "Holiday Version %s loaded [%d entries from %s]", - version, nHoliday, path); + version, nHoliday, path); return nHoliday; } @@ -407,48 +425,36 @@ static int isHoliday(struct tm *tm, char **name) int isDay(struct tm *tm, bitfield mask, char **name) { julian day; - char *s; + int holiday; + char *holiname; static char buffer[BUFSIZ]; - int holiday; - holiday = isHoliday(tm, &s); + holiday=isHoliday(tm, &holiname); if ((mask & (1<tm_year+1900,tm->tm_mon+1,tm->tm_mday)-6)%7+1; + day=(date2julian(tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday)-6)%7+MONDAY; - if ((mask & (1<5 && !holiday) { + if ((mask & (1<entries,CONF_ENT_CALLFMT)) != NULL) callfmt = CEPtr->value; + if ((CEPtr = Get_Entry(Ptr->entries,CONF_ENT_HOLIFILE)) != NULL) + holifile = CEPtr->value; + if ((CEPtr = Get_Entry(Ptr->entries,CONF_ENT_COUNTRYFILE)) != NULL) countryfile = CEPtr->value; - if ((CEPtr = Get_Entry(Ptr->entries,CONF_ENT_HOLIFILE)) != NULL) - holifile = CEPtr->value; + if ((CEPtr = Get_Entry(Ptr->entries,CONF_ENT_ZONEFILE)) != NULL) + zonefile = CEPtr->value; if ((CEPtr = Get_Entry(Ptr->entries,CONF_ENT_RATECONF)) != NULL) rateconf = CEPtr->value; diff --git a/isdnlog/tools/rate-at.c b/isdnlog/tools/rate-at.c index ffdacb12..e6ff4f1a 100644 --- a/isdnlog/tools/rate-at.c +++ b/isdnlog/tools/rate-at.c @@ -127,7 +127,7 @@ void rate_1001(void) { double Tarif[] = { 1.116, 1.056, 0.996, 0.936, 0.816 }; - char *Zone[][2] = {{"FreePhone", "+43800" }, + char *Zone[][2] = {{ "FreePhone", "122,133,144,+43800" }, { "Regionalzone", "+43660" }, { "Fernzone 1", "" }, { "Fernzone 2", "Österreich" }, @@ -202,6 +202,7 @@ void rate_1001(void) { rprintf ("Telekom Austria", "P:01,%d", t+1); sprintf (s, "%s (ATS %.3f / Impuls)", Name[t], Tarif[t]); rprintf (s, "C:Tarif:"); + rprintf ("# Verzonung", "D:pta"); for (z=0; z\n"); printf ("# for collecting and preparing most of the call charges.\n\n\n"); - printf ("V:1.40-Austria [01-Jun-1999]\n\n"); - printf ("F:%%.3f öS\n"); + printf ("V:1.56-Austria [11-Jun-1999]\n\n"); + printf ("U:%%.3f öS\n"); #if 0 rate_1066(); diff --git a/isdnlog/tools/rate.c b/isdnlog/tools/rate.c index d7ee785a..e635c2a8 100644 --- a/isdnlog/tools/rate.c +++ b/isdnlog/tools/rate.c @@ -19,6 +19,11 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Log$ + * Revision 1.20 1999/06/09 19:59:20 akool + * isdnlog Version 3.31 + * - Release 0.91 of zone-Database (aka "Verzonungstabelle") + * - "rate-de.dat" V:1.02-Germany [09-Jun-1999 21:45:26] + * * Revision 1.19 1999/06/01 19:33:43 akool * rate-de.dat V:1.02-Germany [01-Jun-1999 20:52:32] * @@ -191,15 +196,18 @@ * void exitRate(void) * deinitialisiert die Tarifdatenbank * - * void initRate(char *conf, char *dat, char *countryfile, char **msg, char **countrymsg) + * void initRate(char *conf, char *dat, char *dom, char **msg) * initialisiert die Tarifdatenbank * - * char* getProvidername (int prefix) + * char* getProvider (int prefix) * liefert den Namen des Providers oder NULL wenn unbekannt * - * int getZone (int prefix, char *num) - * liefert die Zone, mit der die Rufnummer beim Provider prefix - * verrechnet wird, oder unknown + * int getArea (int prefix, char *number) + * überprüft, ob die Nummer einem A:-Tag entspricht + * wird für die Sondernummern benötigt + * + * void clearRate (RATE *Rate) + * setzt alle Felder von *Rate zurück * * int getRate(RATE*Rate, char **msg) * liefert die Tarifberechnung in *Rate, UNKNOWN im @@ -211,14 +219,17 @@ * *Rate bereits den billigsten Tarif enthält. Der Provider * 'skip' wird übersprungen (falls überlastet). * - * int guessZone (RATE *Rate, int units) + * int guessZone (RATE *Rate, int aoc_units) * versucht die Zone zu erraten, wenn mit den Daten in Rate - * units Einheiten gemeldet wurden + * aoc_units Einheiten gemeldet wurden * * char *explainRate (RATE *Rate) * liefert eine textuelle Begründung für den Tarif in der Form * "Provider, Zone, Wochentag, Zeit" * + * char *printRate (double value) + * liefert eine formatierte Zahl mit Währung gemäß dem U:-Tag + * */ #define _RATE_C_ @@ -232,33 +243,28 @@ #include #include extern const char *basename (const char *name); +#define mycountry "+43" +#define vbn "010" #else #include "isdnlog.h" #include "tools.h" #endif #include "holiday.h" +#include "zone.h" +#include "country.h" #include "rate.h" -#define LENGTH 250 /* max length of lines in data file */ +#define LENGTH 250 /* max length of lines in data file */ +#define STRINGS 8 /* number of buffers for printRate() */ +#define STRINGL 64 /* length of printRate() buffer */ +#define DEFAULT_FORMAT "%.2f" /* default format for printRate() */ + #ifdef STANDALONE #define TESTDURATION 153 #define MAXPROVIDER 1000 #define UNKNOWN -1 #endif -#if 0 -#define WMAX 64 -#define P 1 -#define Q 1 -#define R 1 -#define DISTANCE 2 -#endif - -typedef struct _STACK { - int data; - struct _STACK *next; -} STACK; - typedef struct { double Duration; double Delay; @@ -269,47 +275,64 @@ typedef struct { char *Name; bitfield Day; bitfield Hour; + int Freeze; int nUnit; UNIT *Unit; } HOUR; typedef struct { char *Code; + char *Name; int Zone; } AREA; typedef struct { - int used; + char *Name; + int Zone; +} SERVICE; + +typedef struct { char *Name; + char *Flag; + int nNumber; + int *Number; int nHour; HOUR *Hour; } ZONE; typedef struct { - int booked; - int used; - char *Name; - int nZone; - ZONE *Zone; - int nArea; - AREA *Area; + int booked; + int used; + char *Name; + int nZone; + ZONE *Zone; + int nArea; + AREA *Area; + int nService; + SERVICE *Service; } PROVIDER; -typedef struct { - char *prefix; - char *name; - char *match; - char *hints; -} COUNTRY; - +static char Format[STRINGL]=""; static PROVIDER *Provider=NULL; -static COUNTRY *Country = (COUNTRY *)NULL; static int nProvider=0; static int line=0; -static int nCountry = 0; -static char sonderrufnummern[8192]; +static void notice (char *fmt, ...) +{ + va_list ap; + char msg[BUFSIZ]; + + va_start (ap, fmt); + vsnprintf (msg, BUFSIZ, fmt, ap); + va_end (ap); +#ifdef STANDALONE + fprintf(stderr, "%s\n", msg); +#else + print_msg(PRT_NORMAL, "%s\n", msg); +#endif +} + static void warning (char *file, char *fmt, ...) { va_list ap; @@ -318,259 +341,10 @@ static void warning (char *file, char *fmt, ...) va_start (ap, fmt); vsnprintf (msg, BUFSIZ, fmt, ap); va_end (ap); -#ifdef STANDALONE - fprintf(stderr, "WARNING: %s line %3d: %s\n", basename(file), line, msg); -#else - print_msg(PRT_NORMAL, "WARNING: %s line %3d: %s\n", basename(file), line, msg); -#endif + notice ("WARNING: %s line %3d: %s", basename(file), line, msg); } -int is_sonderrufnummer(char *num) -{ - register char *p1, *p2 = sonderrufnummern; - register int l; - - - while ((p1 = strchr(p2, ':'))) { - *p1 = 0; - - l = strlen(p2); - - if (!strncmp(p2, num, l)) { - *p1 = ':'; - - return(l); - } /* if */ - - *p1 = ':'; - - p2 = p1 + 1; - } /* while */ - - return(UNKNOWN); -} /* is_sonderrufnummer */ - - -static void down(char *p) -{ - auto char s[BUFSIZ]; - register char *p1 = s, *p2 = p; - - - while (*p2) { - *p2 = tolower(*p2); - - if ((*p2 < 'a') || (*p2 > 'z')) - ; - else - *p1++ = *p2; - - p2++; - } /* while */ - - *p1 = 0; - strcpy(p, s); -} /* down */ - - -static void initCountry(char *fn, char *version) -{ - register char *p1, *p2; - auto char s[BUFSIZ]; - auto FILE *f; - - - *version = 0; - - if ((f = fopen(fn, "r")) != (FILE *)NULL) { - while (fgets(s, BUFSIZ, f)) { - if ((p1 = strchr(s, '#'))) - *p1 = 0; - - if ((p1 = strchr(s, '\n'))) - *p1 = 0; - - if (*s) { - if (!memcmp(s, "V:", 2)) - strcpy(version, s + 2); - else { - if ((p1 = strchr(s, ':'))) { - *p1 = 0; - - if ((p2 = strchr(p1 + 1, ':'))) - *p2 = 0; - - Country = realloc(Country, (nCountry + 1) * sizeof(COUNTRY)); - Country[nCountry].prefix = strdup(s); - Country[nCountry].name = strdup(p1 + 1); - Country[nCountry].match = strdup(p1 + 1); - down(Country[nCountry].match); - - if (p2 != NULL) { - Country[nCountry].hints = strdup(p2 + 1); - down(Country[nCountry].hints); - } - else - Country[nCountry].hints = strdup(""); - - nCountry++; - } /* if */ - } /* else */ - } /* if */ - } /* while */ - - fclose(f); - - } - else - sprintf(version, "Error: could not load country database from %s: %s", fn, strerror(errno)); -} /* initCountry */ - - -#if 0 -static int min3(register int x, register int y, register int z) -{ - if (x < y) - y = x; - if (y < z) - z = y; - - return(z); -} /* min */ - - -static int wld(register char *nadel, register char *heuhaufen) /* weighted Levenshtein distance */ -{ - register int i, j; - auto int l1 = strlen(nadel); - auto int l2 = strlen(heuhaufen); - auto 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] + ((nadel[i - 1] == heuhaufen[j - 1]) ? 0 : P), dw[i][j - 1] + Q, dw[i - 1][j] + R); - - return(dw[l1][l2]); -} /* wld */ -#endif - - -static int countrymatch(char *name, char *num) -{ - register int i, test = (num == NULL); - auto char k[BUFSIZ]; - - - 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); -#if 0 - 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); -#endif - 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 */ - } - else { /* mode == 2 */ - res = 1; - - for (i = 0; i < nCountry; i++) - if ((match = !strncmp(Country[i].match, k, strlen(Country[i].match)))) - break; - - if (!match) - for (i = 0; i < nCountry; i++) - if ((match = (strstr(Country[i].match, k) != NULL))) - break; - - if (!match) - for (i = 0; i < nCountry; i++) - if ((match = (strstr(Country[i].hints, k) != NULL))) - break; - -#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 */ - - static char *strip (char *s) { char *p; @@ -586,7 +360,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; @@ -627,42 +401,28 @@ static int strmatch (const char *pattern, const char *string) return length; } -static void push (STACK **stack, int data) +static int appendArea (int prefix, char *code, char *name, int zone, int *domestic, char *msg) { - STACK *new=malloc(sizeof(STACK)); - new->data=data; - new->next=*stack; - *stack=new; -} + int i; -static int pop (STACK **stack) -{ - STACK *old=*stack; - int data; - - if (!old) - return UNKNOWN; - data=old->data; - *stack=old->next; - return (data); -} - -static void empty (STACK **stack) -{ - STACK *old; - while (*stack) { - old=*stack; - *stack=old->next; - free(old); + for (i=0; iCode, ((AREA*)b)->Code); + if (strcmp(code, mycountry)==0) + *domestic=1; + + Provider[prefix].Area=realloc(Provider[prefix].Area, (Provider[prefix].nArea+1)*sizeof(AREA)); + Provider[prefix].Area[Provider[prefix].nArea].Code=strdup(code); + Provider[prefix].Area[Provider[prefix].nArea].Name=name?strdup(name):NULL; + Provider[prefix].Area[Provider[prefix].nArea].Zone=zone; + Provider[prefix].nArea++; + return 1; } -#endif void exitRate(void) { @@ -671,57 +431,54 @@ void exitRate(void) for (i=0; i= MAXPROVIDER) { warning (dat, "Invalid provider-number %d", prefix); + prefix=UNKNOWN; continue; } while (isblank(*s)) s++; @@ -823,6 +593,7 @@ int initRate(char *conf, char *dat, char *countries, char **msg, char **cmsg) s++; while (isblank(*s)) s++; if (!isdigit(*s)) { warning (dat, "Invalid variant '%c'", *s); + prefix=UNKNOWN; continue; } v=strtol(s, &s, 10); @@ -852,10 +623,12 @@ int initRate(char *conf, char *dat, char *countries, char **msg, char **cmsg) Provider[prefix].Zone=NULL; Provider[prefix].nArea=0; Provider[prefix].Area=NULL; + Provider[prefix].nService=0; + Provider[prefix].Service=NULL; Providers++; break; - case 'G': /* P:tt.mm.jjjj Hour gueltig ab */ + case 'G': /* G:tt.mm.jjjj Hour gueltig ab */ if (ignore) continue; break; @@ -863,6 +636,21 @@ int initRate(char *conf, char *dat, char *countries, char **msg, char **cmsg) if (ignore) continue; break; + case 'D': /* D:Verzonung */ + if (ignore) continue; + if (prefix == UNKNOWN || zone != UNKNOWN) { + warning (dat, "Unexpected tag '%c'", *s); + break; + } + s+=2; while (isblank(*s)) s++; + snprintf (path, LENGTH, dom, s); + if (initZone(prefix, path, &c)==0) { + notice (c); + } else { + warning (dat, c); + } + break; + case 'Z': /* Z:n[-n][,n] Bezeichnung */ if (ignore) continue; if (prefix == UNKNOWN) { @@ -870,32 +658,48 @@ int initRate(char *conf, char *dat, char *countries, char **msg, char **cmsg) break; } s+=2; - empty(&zones); + number=NULL; + numbers=0; while (1) { while (isblank(*s)) s++; - if (!isdigit(*s)) { - warning (dat, "Invalid zone '%c'", *s); - empty(&zones); - break; - } - zone1=strtol(s,&s,10); - while (isblank(*s)) s++; - if (*s=='-') { - s++; while (isblank(*s)) s++; - if (!isdigit(*s)) { + if (*s=='*') { + zone1=zone2=UNKNOWN; + } else { + if (!isdigit(*s) && *s!='*') { warning (dat, "Invalid zone '%c'", *s); - empty(&zones); + numbers=0; break; } - zone2=strtol(s,&s,10); - if (zone2=Provider[prefix].nZone) { - Provider[prefix].Zone=realloc(Provider[prefix].Zone, (z+1)*sizeof(ZONE)); - for (i=Provider[prefix].nZone; iName, zone, &domestic, dat); + } else if (d>2) { + warning (dat, "Unknown country '%s' (%s?), ignoring", c, Country->Name); + } else { + if (d>0) + warning (dat, "Unknown country '%s', using '%s'", c, Country->Name); + for (i=0; inCode; i++) + Areas += appendArea (prefix, Country->Code[i], Country->Name, zone, &domestic, NULL); + } + } else { /* unknown country or Sondernummer */ + Areas += appendArea (prefix, c, NULL, zone, &domestic, dat); + } + } else { + warning (dat, "Ignoring empty areacode"); + } + if (*s==',') { + s++; + continue; + } + break; + } + break; + + case 'S': /* S:service[,service...] */ + if (ignore) continue; + if (zone==UNKNOWN) { + warning (dat, "Unexpected tag '%c'", *s); + break; + } + s+=2; + while(1) { + if (*(c=strip(str2list(&s)))) { + for (i=0; idata || - ((zones->data > 39) && (zones->data < 200)))) { -/* ^MICHI: - Anstelle dieser wuesten Abfrage auf die Zonen [0,5..10,20..99] - benoetige ich das besprochene neue Flag in der "rate-xx.dat"! -*/ - auto char sx[100]; - - sprintf(sx, "%s:", c); - - if (strstr(sonderrufnummern, sx) == NULL) { - strcat(sonderrufnummern, c); - strcat(sonderrufnummern, ":"); - ns++; - } /* if */ - } /* else */ - - Provider[prefix].Area[Provider[prefix].nArea].Code=strdup(c); - Provider[prefix].Area[Provider[prefix].nArea].Zone=zones->data; /* ugly: use first zone */ - Provider[prefix].nArea++; - Areas++; + Provider[prefix].Service=realloc(Provider[prefix].Service, (Provider[prefix].nService+1)*sizeof(SERVICE)); + Provider[prefix].Service[Provider[prefix].nService].Name=strdup(c); + Provider[prefix].Service[Provider[prefix].nService].Zone=zone; + Provider[prefix].nService++; + Services++; } } else { - warning (dat, "Ignoring empty areacode"); + warning (dat, "Ignoring empty service"); } - if (*a==',') { - a++; + if (*s==',') { + s++; continue; } break; } - s=a; + break; + + case 'F': /* F:Flags */ + if (ignore) continue; + if (zone==UNKNOWN) { + warning (dat, "Unexpected tag '%c'", *s); + break; + } + if (Provider[prefix].Zone[zone].Flag) { + warning (dat, "Flags redefined"); + free (Provider[prefix].Zone[zone].Flag); + } + Provider[prefix].Zone[zone].Flag=strdup(strip(s+2)); break; case 'T': /* T:d-d/h-h=p/s:t[=]Bezeichnung */ if (ignore) continue; - if (!zones) { + if (zone==UNKNOWN) { warning (dat, "Unexpected tag '%c'", *s); break; } s+=2; day=0; hour=0; + freeze=0; while (1) { while (isblank(*s)) s++; if (*s=='*') { /* jeder Tag */ @@ -1095,22 +923,25 @@ int initRate(char *conf, char *dat, char *countries, char **msg, char **cmsg) if (!hour) break; + if (*s=='!') { + freeze=1; + s++; + while (isblank(*s)) s++; + } + if (*s!='=') { warning (dat, "expected '=', got '%s'!", s); hour=0; } - zp=zones; - while (zp) { - z=pop(&zp); - t=Provider[prefix].Zone[z].nHour++; - Provider[prefix].Zone[z].Hour = realloc(Provider[prefix].Zone[z].Hour, (t+1)*sizeof(HOUR)); - Provider[prefix].Zone[z].Hour[t].Name=NULL; - Provider[prefix].Zone[z].Hour[t].Day=day; - Provider[prefix].Zone[z].Hour[t].Hour=hour; - Provider[prefix].Zone[z].Hour[t].nUnit=0; - Provider[prefix].Zone[z].Hour[t].Unit=NULL; - } + t=Provider[prefix].Zone[zone].nHour++; + Provider[prefix].Zone[zone].Hour = realloc(Provider[prefix].Zone[zone].Hour, (t+1)*sizeof(HOUR)); + Provider[prefix].Zone[zone].Hour[t].Name=NULL; + Provider[prefix].Zone[zone].Hour[t].Day=day; + Provider[prefix].Zone[zone].Hour[t].Hour=hour; + Provider[prefix].Zone[zone].Hour[t].Freeze=freeze; + Provider[prefix].Zone[zone].Hour[t].nUnit=0; + Provider[prefix].Zone[zone].Hour[t].Unit=NULL; s++; while (1) { @@ -1168,23 +999,24 @@ int initRate(char *conf, char *dat, char *countries, char **msg, char **cmsg) warning(dat, "zero duration must not have a delay, duration set to %d!", delay); duration=delay; } - zp=zones; - while (zp) { - z=pop(&zp); - t=Provider[prefix].Zone[z].nHour-1; - u=Provider[prefix].Zone[z].Hour[t].nUnit++; - Provider[prefix].Zone[z].Hour[t].Unit=realloc(Provider[prefix].Zone[z].Hour[t].Unit, (u+1)*sizeof(UNIT)); - Provider[prefix].Zone[z].Hour[t].Unit[u].Duration=duration; - Provider[prefix].Zone[z].Hour[t].Unit[u].Delay=delay; - if (duration!=0.0 && divider!=0.0) - Provider[prefix].Zone[z].Hour[t].Unit[u].Price=price*duration/divider; - else - Provider[prefix].Zone[z].Hour[t].Unit[u].Price=price; - } + + if (!duration && !*s) { /* FIXME!!AK:14-Jun-99 */ + warning(dat, "zero duration impossible, duration set to 60!"); + duration = 60; + } /* if */ + + u=Provider[prefix].Zone[zone].Hour[t].nUnit++; + Provider[prefix].Zone[zone].Hour[t].Unit=realloc(Provider[prefix].Zone[zone].Hour[t].Unit, (u+1)*sizeof(UNIT)); + Provider[prefix].Zone[zone].Hour[t].Unit[u].Duration=duration; + Provider[prefix].Zone[zone].Hour[t].Unit[u].Delay=delay; + if (duration!=0.0 && divider!=0.0) + Provider[prefix].Zone[zone].Hour[t].Unit[u].Price=price*duration/divider; + else + Provider[prefix].Zone[zone].Hour[t].Unit[u].Price=price; if (*s=='/') { continue; } - Hours++; + Hours++; break; } if (*s==',') { @@ -1194,17 +1026,13 @@ int initRate(char *conf, char *dat, char *countries, char **msg, char **cmsg) break; } while (isblank(*s)) s++; - zp=zones; - while (zp) { - z=pop(&zp); - t=Provider[prefix].Zone[z].nHour-1; - Provider[prefix].Zone[z].Hour[t].Name=*s?strdup(s):NULL; - Hours++; - } + Provider[prefix].Zone[zone].Hour[t].Name=*s?strdup(s):NULL; + Hours++; break; case 'V': /* V:xxx Version der Datenbank */ - strcpy(Version, s+2); + s+=2; while(isblank(*s)) s++; + strcpy(Version, s); break; default: @@ -1213,26 +1041,23 @@ int initRate(char *conf, char *dat, char *countries, char **msg, char **cmsg) } } fclose(stream); - empty(&zones); -#if 0 /* why the hell? */ - for (i=0; i=nProvider || !Provider[prefix].used) { return NULL; @@ -1240,34 +1065,28 @@ char *getProvidername (int prefix) return Provider[prefix].Name; } -int getZone (int prefix, char *number) +int getArea (int prefix, char *number) { - int a, l, m, max, z; + int l, i; - if (prefix<0 || prefix>=nProvider || !Provider[prefix].used) { - return UNKNOWN; + if (prefix<0 || prefix>=nProvider || !Provider[prefix].used) + return 0; + + l=strlen(number); + for (i=0; i=l) + return 1; } + return 0; +} - l=0; - max=0; - z=UNKNOWN; - for (a=0; amax) { - z=Provider[prefix].Area[a].Zone; - max=m; - } - l=m; - } /* else */ - } - return z; +void clearRate (RATE *Rate) +{ + memset (Rate, 0, sizeof(RATE)); + Rate->prefix=UNKNOWN; + Rate->zone=UNKNOWN; + Rate->_area=UNKNOWN; + Rate->_zone=UNKNOWN; } int getRate(RATE *Rate, char **msg) @@ -1277,32 +1096,73 @@ int getRate(RATE *Rate, char **msg) ZONE *Zone; HOUR *Hour; UNIT *Unit; - int prefix, zone, hour, i; + int prefix, freeze, hour, cur, max, i, j; double now, run, end; - struct tm tm; + char *day; time_t time; + struct tm tm; if (msg) *(*msg=message)='\0'; - if (!Rate) + if (!Rate || Rate->_zone==UNZONE) return UNKNOWN; prefix=Rate->prefix; if (prefix<0 || prefix>=nProvider || !Provider[prefix].used) { - if (msg) snprintf(message, LENGTH, "unknown provider %d", prefix); + if (msg) snprintf(message, LENGTH, "Unknown provider %d", prefix); return UNKNOWN; } - zone=Rate->zone; - if (zone<1 || zone>=Provider[prefix].nZone || !Provider[prefix].Zone[zone].used) { - if (msg) snprintf(message, LENGTH, "unknown zone %d", zone); + if (Rate->_area==UNKNOWN) { + int a, x=0; + for (a=0; adst); + if (m>x) { + x=m; + Rate->_area = a; + Rate->domestic = strcmp(Provider[prefix].Area[a].Code, mycountry)==0 || *(Rate->dst)!='+'; + } + } + if (Rate->_area==UNKNOWN) { + if (msg) snprintf (message, LENGTH, "No area info for provider %d, destination %s", prefix, Rate->dst); + Rate->_zone=UNZONE; + return UNKNOWN; + } + } + + if (Rate->_zone==UNKNOWN) { + Rate->_zone=Provider[prefix].Area[Rate->_area].Zone; + if (Rate->domestic && *(Rate->dst)=='+') { + int l=strlen(mycountry); + int z=getZone(prefix, Rate->src+l, Rate->dst+l); + if (z!=UNKNOWN) { + for (i=0; i_zone=i; + goto done; + } + } + } + if (msg) snprintf (message, LENGTH, "Provider %d domestic zone %d not found in rate database", prefix, z); + Rate->_zone=UNZONE; + return UNKNOWN; + done: + } + } + } + + if (Rate->_zone<0 || Rate->_zone>=Provider[prefix].nZone) { + if (msg) snprintf(message, LENGTH, "Invalid zone %d", Rate->_zone); return UNKNOWN; } - Zone=&Provider[prefix].Zone[zone]; - Rate->Provider=Provider[prefix].Name; - Rate->Zone=Zone->Name; + Rate->Provider = Provider[prefix].Name; + Rate->Country = Provider[prefix].Area[Rate->_area].Name; + Rate->Zone = Provider[prefix].Zone[Rate->_zone].Name; + Rate->zone = Provider[prefix].Zone[Rate->_zone].Number[0]; + Rate->Basic=0; Rate->Price=0; Rate->Duration=0; @@ -1310,9 +1170,14 @@ int getRate(RATE *Rate, char **msg) Rate->Charge=0; Rate->Rest=0; + if (Rate->start==0) + return 0; + + Zone=&Provider[prefix].Zone[Rate->_zone]; Hour=NULL; Unit=NULL; hour=UNKNOWN; /* Stundenwechsel erzwingen */ + freeze=0; now=Rate->start; end=Rate->now; Rate->Time=end-now; @@ -1320,20 +1185,25 @@ int getRate(RATE *Rate, char **msg) while (end>=now) { time=now; tm=*localtime(&time); - if (hour!=tm.tm_hour) { /* Neuberechnung bei Stundenwechsel */ + if (hour==UNKNOWN || (!freeze && hour!=tm.tm_hour)) { /* Neuberechnung bei Stundenwechsel */ hour=tm.tm_hour; hourBits=1<nHour; i++) { - Hour = &Zone->Hour[i]; - if ((Hour->Hour & hourBits) && isDay(&tm, Hour->Day, &Rate->Day)) - break; + if ((Zone->Hour[i].Hour & hourBits) && ((cur=isDay(&tm, Zone->Hour[i].Day, &day)) > max)) { + max=cur; + Rate->Day=day; + Hour=&(Zone->Hour[i]); + } } - if (i==Zone->nHour) { + if (!Hour) { if (msg) snprintf(message, LENGTH, - "no rate found for provider=%d zone=%d day=%d hour=%d", - prefix, zone, tm.tm_wday+1, tm.tm_hour); + "No rate found for provider=%d, zone=%d day=%d hour=%d", + prefix, Zone->Number[0], tm.tm_wday+1, tm.tm_hour); return UNKNOWN; } + freeze=Hour->Freeze; Rate->Hour=Hour->Name; Unit=Hour->Unit; } @@ -1351,7 +1221,7 @@ int getRate(RATE *Rate, char **msg) Rate->Units++; if (Unit->Delay!=UNKNOWN && Unit->Delay<=run) Unit++; -} + } Rate->Rest-=Rate->Time; return 0; @@ -1376,7 +1246,7 @@ int getLeastCost (RATE *Rate, int skip) if (getRate(&Curr, NULL)!=UNKNOWN && Curr.Chargeprefix) @@ -1386,7 +1256,7 @@ int getLeastCost (RATE *Rate, int skip) return min; } -int guessZone (RATE *Rate, int units) +int guessZone (RATE *Rate, int aoc_units) { #if 0 px=""; @@ -1408,7 +1278,7 @@ int guessZone (RATE *Rate, int units) char *explainRate (RATE *Rate) { - char p[BUFSIZ], z[BUFSIZ], d[BUFSIZ]="", h[BUFSIZ]=""; + char p[BUFSIZ], z[BUFSIZ], c[BUFSIZ]="", d[BUFSIZ]="", h[BUFSIZ]=""; static char r[BUFSIZ]; if (Rate->Provider && *Rate->Provider) @@ -1421,20 +1291,33 @@ char *explainRate (RATE *Rate) else snprintf (z, BUFSIZ, ", Zone %d", Rate->zone); + if (!Rate->domestic && Rate->Country && *Rate->Country) + snprintf (c, BUFSIZ, " (%s)", Rate->Country); + if (Rate->Day && *Rate->Day) snprintf (d, BUFSIZ, ", %s", Rate->Day); if (Rate->Hour && *Rate->Hour) snprintf (h, BUFSIZ, ", %s", Rate->Hour); - snprintf (r, BUFSIZ, "%s%s%s%s", p, z, d, h); + snprintf (r, BUFSIZ, "%s%s%s%s%s", p, z, c, d, h); return r; } + +char *printRate (double value) +{ + static char buffer[STRINGS][STRINGL]; + static int index=0; + + if (++index>=STRINGS) index=0; + snprintf (buffer[index], STRINGL, Format, value); + return buffer[index]; +} + #ifdef STANDALONE void main (int argc, char *argv[]) { - int z; char *msg; struct tm now; @@ -1443,20 +1326,24 @@ void main (int argc, char *argv[]) initHoliday ("../holiday-at.dat", &msg); printf ("%s\n", msg); - initRate ("/etc/isdn/rate.conf", "../auskunft.dat", &msg); + initCountry ("../prefixes.dat", &msg); printf ("%s\n", msg); - Rate.prefix = 1; - Rate.zone = 1; + initRate ("/etc/isdn/rate.conf", "../rate-at.dat", "../zone-at-%s.gdbm", &msg); + printf ("%s\n", msg); + + clearRate(&Rate); + Rate.prefix = 1; - if (argc==2) { - z=getZone(01, argv[1]); - printf("number <%s> is Zone <%d>\n", argv[1], z); - exit (0); - } if (argc==3) { - printf ("strmatch(%s, %s)=%d\n", argv[1], argv[2], strmatch(argv[1], argv[2])); - exit (0); + Rate.src=argv[1]; + Rate.dst=argv[2]; + } else { + Rate.src="+43316698260"; + if (argc==2) + Rate.dst=argv[1]; + else + Rate.dst="+4314711"; } time(&Rate.start); @@ -1466,7 +1353,13 @@ void main (int argc, char *argv[]) exit (1); } + printf ("domestic=%d area=%d zone=%d Country=%s Zone=%s Service=%s Flags=%s\n", + Rate.domestic, Rate.area, Rate.zone, Rate.Country, Rate.Zone, Rate.Service, Rate.Flags); + printf ("%s\n\n", explainRate(&Rate)); + + exit (0); + printf ("---Date--- --Time-- --Charge-- ( Basic Price) Unit Dur Time Rest\n"); while (1) { @@ -1476,10 +1369,10 @@ void main (int argc, char *argv[]) exit (1); } now=*localtime(&Rate.now); - printf ("%02d.%02d.%04d %02d:%02d:%02d ATS %6.3f (%6.3f %6.3f) %4d %4.1f %4ld %4ld\n", + printf ("%02d.%02d.%04d %02d:%02d:%02d %s (%6.3f %6.3f) %4d %4.1f %4ld %4ld\n", now.tm_mday, now.tm_mon+1, now.tm_year+1900, now.tm_hour, now.tm_min, now.tm_sec, - Rate.Charge, Rate.Basic, Rate.Price, Rate.Units, Rate.Duration, Rate.Time, Rate.Rest); + printRate (Rate.Charge), Rate.Basic, Rate.Price, Rate.Units, Rate.Duration, Rate.Time, Rate.Rest); LCR=Rate; #if 0 diff --git a/isdnlog/tools/rate.h b/isdnlog/tools/rate.h index 7b48afa3..2e4a00b5 100644 --- a/isdnlog/tools/rate.h +++ b/isdnlog/tools/rate.h @@ -19,6 +19,20 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Log$ + * Revision 1.8 1999/05/22 10:19:30 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 + * - Patch from Markus Schoepflin + * - 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.7 1999/05/13 11:40:07 akool * isdnlog Version 3.28 * @@ -101,12 +115,20 @@ #define _RATE_H_ typedef struct { - int prefix; - int zone; - time_t start; - time_t now; + int prefix; /* Providerkennung */ + int zone; /* Zonennummer */ + char *src; /* eigene Telefonnummer */ + char *dst; /* gerufene Nummer */ + time_t start; /* Verbindungsaufbau */ + time_t now; /* momentane Zeit */ + int domestic; /* Inlandsverbindung */ + int _area; /* interner(!) Länderindex */ + int _zone; /* interner(!) Zonenindex */ char *Provider; /* Name des Providers */ + char *Country; /* Landesname (Ausland) */ char *Zone; /* Name der Zone */ + char *Service; /* Name des Dienstes (S:-Tag) */ + char *Flags; /* Inhalt des F:-Tags */ char *Day; /* Wochen- oder Feiertag */ char *Hour; /* Bezeichnung des Tarifs */ double Basic; /* Grundpreis einer Verbindung */ @@ -118,15 +140,17 @@ typedef struct { time_t Rest; /* bezahlte, aber noch nicht verbrauchte Zeit */ } RATE; -int is_sonderrufnummer(char *num); -int abroad(char *key, char *result); +#define UNZONE -2 + void exitRate(void); -int initRate(char *conf, char *dat, char *countries, char **msg, char **cmsg); -char *getProvidername(int prefix); -int getZone(int prefix, char *num); +int initRate(char *conf, char *dat, char *dom, char **msg); +char *getProvider(int prefix); +int getArea(int prefix, char *number); +void clearRate (RATE *Rate); int getRate(RATE *Rate, char **msg); int getLeastCost(RATE *Rate, int skip); -int guessZone (RATE *Rate, int units); +int guessZone (RATE *Rate, int aoc_units); char *explainRate (RATE *Rate); +char *printRate (double value); #endif diff --git a/isdnlog/tools/tools.c b/isdnlog/tools/tools.c index db4a126e..d9e7a843 100644 --- a/isdnlog/tools/tools.c +++ b/isdnlog/tools/tools.c @@ -19,6 +19,11 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Log$ + * Revision 1.28 1999/06/03 18:51:22 akool + * isdnlog Version 3.30 + * - rate-de.dat V:1.02-Germany [03-Jun-1999 19:49:22] + * - small fixes + * * Revision 1.27 1999/05/22 10:19:33 akool * isdnlog Version 3.29 * @@ -670,12 +675,13 @@ char *vnum(int chan, int who) return(retstr[retnum]); } else { - if (!memcmp(call[chan].num[who], countryprefix, strlen(countryprefix))) { /* Ausland */ - register int i; - auto char s[BUFSIZ]; + if (!memcmp(call[chan].num[who], countryprefix, strlen(countryprefix)) && + memcmp(call[chan].num[who], mycountry, strlen(mycountry))) { /* Ausland */ + register int i; + auto char *s; - i = abroad(call[chan].num[who], s); + i = getCountrycode(call[chan].num[who], &s); if (i) { Strncpy(call[chan].areacode[who], call[chan].num[who], i + 1); @@ -692,6 +698,7 @@ char *vnum(int chan, int who) } /* if */ } /* if */ + /* Fixme: raus damit */ if (!memcmp(call[chan].num[who], "+49173", 5)) { strcpy(call[chan].area[who], "D2 Mobilfunknetz"); l = 6; @@ -1048,7 +1055,7 @@ go: if (!ndigit) case 'P' : s = sx; if (call[chan].provider != -1) - sprintf(sx, " via %s", getProvidername(call[chan].provider)); + sprintf(sx, " via %s", getProvider(call[chan].provider)); else *sx = 0; p = s + strlen(s); diff --git a/isdnlog/tools/tools.h b/isdnlog/tools/tools.h index 8fd095f5..81630b0e 100644 --- a/isdnlog/tools/tools.h +++ b/isdnlog/tools/tools.h @@ -20,6 +20,12 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Log$ + * Revision 1.44 1999/06/13 14:08:28 akool + * isdnlog Version 3.32 + * + * - new option "-U1" (or "ignoreCOLP=1") to ignore CLIP/COLP Frames + * - TEI management decoded + * * Revision 1.43 1999/06/03 18:51:25 akool * isdnlog Version 3.30 * - rate-de.dat V:1.02-Germany [03-Jun-1999 19:49:22] @@ -459,6 +465,7 @@ #include "policy.h" #include "libisdn.h" #include "holiday.h" +#include "country.h" #include "rate.h" /****************************************************************************/ @@ -740,9 +747,10 @@ #define CONF_ENT_CALLFMT "CALLFMT" #define CONF_ENT_HOLIFILE "HOLIDAYS" +#define CONF_ENT_COUNTRYFILE "COUNTRYFILE" +#define CONF_ENT_ZONEFILE "ZONEFILE" #define CONF_ENT_RATECONF "RATECONF" #define CONF_ENT_RATEFILE "RATEFILE" -#define CONF_ENT_COUNTRYFILE "COUNTRYFILE" #define CONF_ENT_LCDFILE "LCDFILE" #define CONF_ENT_VBOXVER "VBOXVERSION" @@ -1019,6 +1027,7 @@ _EXTERN char* callfile = NULL; _EXTERN char* callfmt = NULL; _EXTERN char* holifile = NULL; _EXTERN char* countryfile = NULL; +_EXTERN char* zonefile = NULL; _EXTERN char* rateconf = NULL; _EXTERN char* ratefile = NULL; _EXTERN char* lcdfile = NULL; @@ -1040,8 +1049,9 @@ _EXTERN char* rebootcmd; _EXTERN char* logfile; _EXTERN char* callfile; _EXTERN char* callfmt; -_EXTERN char* countryfile; _EXTERN char* holifile; +_EXTERN char* countryfile; +_EXTERN char* zonefile; _EXTERN char* rateconf; _EXTERN char* ratefile; _EXTERN char* lcdfile; diff --git a/isdnlog/tools/zone.c b/isdnlog/tools/zone.c index cca55c37..7bbdb57a 100644 --- a/isdnlog/tools/zone.c +++ b/isdnlog/tools/zone.c @@ -19,6 +19,9 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Log$ + * Revision 1.2 1999/06/09 20:58:09 akool + * CVS-Tags added + * * * Interface: * @@ -47,7 +50,10 @@ /* Fixme: basename() ist bei libc5 anscheinend nicht definiert * könnte da mal jemand ein passende #ifdef herumstricken? */ + /* lt: folgendes funkt bei mir */ +#ifndef __USE_MISC extern const char *basename (const char *name); +#endif #else #include "isdnlog.h" #include "tools.h" @@ -70,11 +76,14 @@ typedef unsigned short US; /* len 2 */ typedef unsigned long UL; /* len 4 */ typedef enum {false,true} bool; + +#ifndef min #define min(a,b) (a) < (b) ? (a) : (b) +#endif static struct sth *sthp; static int count; -static char version[] = "0.91"; +static char version[] = "0.92"; #define LINK 127 #define INFO_LEN 80 #define LENGTH 120 @@ -335,9 +344,16 @@ static int _getZ(struct sth *sthp, char *from, char *sto) { } strncpy(newfrom, from, LENGTH-1); while (strlen(newfrom)) { - US ifrom = (US) atol(newfrom); + UL lifrom = (UL) atol(newfrom); /* keys could be long */ + US ifrom = (US) lifrom; + if (sthp->pack_key == 2) { key.dptr = (char *) &ifrom; key.dsize = sizeof(US); + } + else { + key.dptr = (char *) &lifrom; + key.dsize = sizeof(UL); + } value = gdbm_fetch(fh, key); if (value.dptr) { char *p = value.dptr; @@ -397,7 +413,7 @@ int getZone(int provider, char *from, char *to) } -#ifdef STANDALONE +#ifdef ZONETEST static int checkZone(char *zf, char* df,int num1,int num2, bool verbose) { diff --git a/isdnlog/tools/zone/at/pta/zoneall.pta.bz2 b/isdnlog/tools/zone/at/pta/zoneall.pta.bz2 index d87a6f35..5171e2d0 100644 Binary files a/isdnlog/tools/zone/at/pta/zoneall.pta.bz2 and b/isdnlog/tools/zone/at/pta/zoneall.pta.bz2 differ diff --git a/isdnlog/tools/zone/at/pta/zred.pta.bz2 b/isdnlog/tools/zone/at/pta/zred.pta.bz2 index d4f33f4e..c435fbd9 100644 Binary files a/isdnlog/tools/zone/at/pta/zred.pta.bz2 and b/isdnlog/tools/zone/at/pta/zred.pta.bz2 differ diff --git a/isdnlog/tools/zone/at/uta/README b/isdnlog/tools/zone/at/uta/README new file mode 100644 index 00000000..731a74ad --- /dev/null +++ b/isdnlog/tools/zone/at/uta/README @@ -0,0 +1,13 @@ +Angrenzende Bezirke in verschiedenen Bundeslaender werden +als Oesterreichtarif berechnet + +# mkuta ; +open OUT, ">zoneall.uta.temp" || die "Can't write"; +foreach $a (@a) { + foreach $b (@a) { + ($na, $bla) = split(/\s+/,$a); + ($nb, $blb) = split(/\s+/,$b); + $na = substr($na,1); + $nb = substr($nb,1); + if (($bla eq $blb) || + ($bla eq 'W' && $blb =~ /^N/) || + ($blb eq 'W' && $bla =~ /^N/)) { + print OUT "$na $nb 1\n"; + } + else { + print OUT "$na $nb 2\n"; + } + } +} +close(OUT); +system('sort zoneall.uta && rm zoneall.uta.temp'); \ No newline at end of file diff --git a/isdnlog/tools/zone/at/uta/zred.uta.bz2 b/isdnlog/tools/zone/at/uta/zred.uta.bz2 index 8fa93417..559b1ad9 100644 Binary files a/isdnlog/tools/zone/at/uta/zred.uta.bz2 and b/isdnlog/tools/zone/at/uta/zred.uta.bz2 differ diff --git a/isdnlog/tools/zone/compzone b/isdnlog/tools/zone/compzone index 943b5071..f3a248dd 100755 --- a/isdnlog/tools/zone/compzone +++ b/isdnlog/tools/zone/compzone @@ -118,6 +118,7 @@ sub read_compact { print "$i:\n@nums\n" if($verbose>=3); $n=0; while ( ($key, $value) = each(%db) ) { + next if ($key eq "_tAbLe\x0" || $key eq "vErSiO\x0"); my($temp) = unpack($pack_key, $key); next if( $temp !~ /\d/); my($count) = unpack('S', $value); diff --git a/isdnlog/tools/zone/de/Verzonung.dat.bz2 b/isdnlog/tools/zone/de/01033/Verzonung.dat.bz2 similarity index 100% rename from isdnlog/tools/zone/de/Verzonung.dat.bz2 rename to isdnlog/tools/zone/de/01033/Verzonung.dat.bz2 diff --git a/isdnlog/tools/zone/de/code b/isdnlog/tools/zone/de/01033/code similarity index 100% rename from isdnlog/tools/zone/de/code rename to isdnlog/tools/zone/de/01033/code diff --git a/isdnlog/tools/zone/de/mzall b/isdnlog/tools/zone/de/01033/mzall similarity index 100% rename from isdnlog/tools/zone/de/mzall rename to isdnlog/tools/zone/de/01033/mzall diff --git a/isdnlog/tools/zone/de/mzone b/isdnlog/tools/zone/de/01033/mzone similarity index 100% rename from isdnlog/tools/zone/de/mzone rename to isdnlog/tools/zone/de/01033/mzone diff --git a/isdnlog/tools/zone/de/rdde b/isdnlog/tools/zone/de/01033/rdde similarity index 100% rename from isdnlog/tools/zone/de/rdde rename to isdnlog/tools/zone/de/01033/rdde diff --git a/isdnlog/tools/zone/de/rdde.pl b/isdnlog/tools/zone/de/01033/rdde.pl similarity index 100% rename from isdnlog/tools/zone/de/rdde.pl rename to isdnlog/tools/zone/de/01033/rdde.pl diff --git a/isdnlog/tools/zone/de/scanvor.c b/isdnlog/tools/zone/de/01033/scanvor.c similarity index 100% rename from isdnlog/tools/zone/de/scanvor.c rename to isdnlog/tools/zone/de/01033/scanvor.c diff --git a/isdnlog/tools/zone/redzone b/isdnlog/tools/zone/redzone index 156ce9d0..93d3d228 100755 --- a/isdnlog/tools/zone/redzone +++ b/isdnlog/tools/zone/redzone @@ -20,7 +20,7 @@ use Getopt::Std; my ($inf, $outf, $rc,$verbose, $normalize, $newinf, $oldinf, $keep_files, $LEN); my ($opt_only); # statistics -my (@red, $redt, $tot); +my (@red, $redt, $tot, $rem); my $LINK = 127; # maxzone @@ -189,7 +189,7 @@ sub reduce { } sub reduce_2 { my ($pass) = $_[0]; - my($from, $to, $z, $i, $old, $olda, $red1, $j, $red, $k, $rem); + my($from, $to, $z, $i, $old, $olda, $red1, $j, $red, $k); my (@from, @to, @z, %zc, $redc, $eof, $line, $oldto); my ($which) = $LEN-$pass; print "Starting Pass b-$pass ...\n" if ($verbose); @@ -317,11 +317,12 @@ sub sort_opt { $newinf = "$inf.a-${pass}q"; rename($outf, $newinf); system(qq(sort < $newinf |uniq | sed -e"s/X\\+//g" > $outf)); - my ($red, $rem, $wc); + my ($red, $wc, $orem); $wc = `wc --lines $outf`; $wc =~ /(\d+)\s/; + $orem = $rem; $rem = $1; - $red = $tot - $rem; + $red = $orem - $rem; $redt += $red; print "Pass o-$pass: $red data killed $rem remaining\n" if ($verbose); $red[$pass + 10] = $red; @@ -540,4 +541,4 @@ sub optimize_2 { last if($eof); } # while $tot = $i if($pass == 1 && $opt_only); -} # optimize \ No newline at end of file +} # optimize diff --git a/isdnlog/zone-at-pta.gdbm b/isdnlog/zone-at-pta.gdbm index 4b029861..583a0b61 100644 Binary files a/isdnlog/zone-at-pta.gdbm and b/isdnlog/zone-at-pta.gdbm differ diff --git a/isdnlog/zone-at-uta.gdbm b/isdnlog/zone-at-uta.gdbm index bedfa427..23999b77 100644 Binary files a/isdnlog/zone-at-uta.gdbm and b/isdnlog/zone-at-uta.gdbm differ