On Wed, May 26, 1999 at 12:48:08AM +0200, Alexander Skwar wrote:
> On Tue, May 25, 1999 at 09:04:24AM +0200, Andreas Kool wrote:
> > Hallo Leute!
> >
> > Habe eben noch schnell die "countries-de.dat" in das neue, von Michael
> > vorgeschlagene Format, also
> >
> > N:Jemen, (Arab. Republik)
> > A:Jemen (Arabische Republik), Jemen, Jemen Arab. Rep.
> > C:+969, +967
> >
> > umgewandelt. Liegt als "prefixes.dat.bz2" bei.
>
> Wie ? K�nntest Du vielleicht mal das Skript (oder hast Du das von Hand
> gemacht?) mailen?
Mit der Hand? Ich? Im Leben nicht :-)
Ich habe das (ganz einfach ...) so gemacht:
1. Du nimmst einen isdnlog-3.29 (also der aktuelle aus dem I4L-CVS)
2. spielst folgenden Patch dr�ber (der kann ruhig drin bleiben -
tut nicht weh)
-------------------------------------------------------------------------
diff -rub -X distexclude isdn4k-utils.orig/isdnlog/tools/rate.c
isdn4k-utils/isdnlog/tools/rate.c
--- isdn4k-utils.orig/isdnlog/tools/rate.c Sat May 22 12:40:59 1999
+++ isdn4k-utils/isdnlog/tools/rate.c Tue May 25 08:54:50 1999
@@ -297,6 +297,8 @@
char *name;
char *match;
char *hints;
+ char *Hints;
+ int used;
} COUNTRY;
static PROVIDER *Provider=NULL;
@@ -373,8 +375,9 @@
static void initCountry(char *fn, char *version)
{
- register char *p1, *p2;
- auto char s[BUFSIZ];
+ register char *p1, *p2, *p3, *p4;
+ register int i, i1;
+ auto char s[BUFSIZ], s1[BUFSIZ];
auto FILE *f;
@@ -406,11 +409,13 @@
if (p2 != NULL) {
Country[nCountry].hints = strdup(p2 + 1);
+ Country[nCountry].Hints = strdup(p2 + 1);
down(Country[nCountry].hints);
}
else
Country[nCountry].hints = strdup("");
+ Country[nCountry].used = 0;
nCountry++;
} /* if */
} /* else */
@@ -419,6 +424,52 @@
fclose(f);
+ if ((f = fopen("/usr/lib/isdn/prefixes.dat", "w")) != (FILE *)NULL) {
+ fprintf(f, "V:%s\n", version);
+
+ for (i = 0; i < nCountry; i++) {
+ if (!Country[i].used) {
+ fprintf(f, "N:%s\n", Country[i].name);
+
+ if (Country[i].Hints) {
+ p3 = Country[i].Hints;
+ p4 = s1;
+
+ while (*p3) {
+ if (*p3 == ',') {
+ *p4++ = '\\';
+ *p4++ = ',';
+ }
+ else if (*p3 == ':') {
+ *p4++ = ',';
+ *p4++ = ' ';
+ }
+ else
+ *p4++ = *p3;
+
+ p3++;
+ } /* while */
+
+ *p4 = 0;
+
+ fprintf(f, "A:%s\n", s1);
+ } /* if */
+
+ fprintf(f, "C:%s", Country[i].prefix);
+
+ for (i1 = i + 1; i1 < nCountry; i1++)
+ if (!strcmp(Country[i].name, Country[i1].name)) {
+ fprintf(f, ", %s", Country[i1].prefix);
+ Country[i1].used = 1;
+ } /* if */
+
+ fprintf(f, "\n\n");
+ } /* if */
+
+ } /* for */
+
+ fclose(f);
+ } /* if */
}
else
sprintf(version, "Error: could not load country database from %s: %s", fn,
strerror(errno));
-------------------------------------------------------------------------=
3. Kompilierst isdnlog neu, also
cd /usr/src/isdn4k-utils
make
4. Startest dann eines der isdnlog-Programme, z.b.
/usr/src/isdn4k-utils/isdnlog/bin/isdnconf -c Irland
5. Findest die neue Datei "/usr/lib/isdn/prefixes.dat"
fertig.
> > Im "A:" sowie "C:" Tag sind alle Synonyme durch "," voneinander getrennt,
> > evtl. "," in L�nderbezeichnungen sind als "\," drin.
>
> Nein, waren als "," drin. Siehe z.B. Dein Beispiel:
> N:Jemen, (Arab. Republik)
> Scheinbar hat die Umwandlung von "," nach "\," nur bei den A: Tags
> geklappt, siehe +90 im Gegensatz zu +886 z.B..
Ooops. Dann war es doch noch etwas fr�h f�r diese Aktion :-(
Dann mu�t Du nur meinen Patch noch etwas erweitern (das, was ich beim
wegschreiben des "A:" Tags mache ( while (*p3) ... ) auch noch vor
dem wegschreiben des "N:" Tags.
> Aber, brauchen wir die Namen mit "," �berhaupt ? Kann man die eigentlich
> in der rate-de.dat angeben ? Wenn ja, wie ? Als "\," ?
Moment! Durch Komma getrennt werden die diversen Synonyme f�r die
L�nderbezeichnungen angegeben!
Der Witz ist doch der:
- Bei Tele 2 hei�t das "Ru�land"
- Bei Mobilcom hei�t das "Wei�ru�land"
- Bei Arcor hei�t das "Ukraine"
- Bei RTL hei�t das Samstag nacht - nee, Quatsch ;-)
Ergo hatte ich nur 2 M�glichkeiten:
1. Bei *allen* Providern alle L�nderbezeichnungen auf unseren Standard
ab�ndern
2. In der "countries-de.dat" alle m�glichen Schreibweisen f�r ein
Land eintragen, und die L�nderbezeichungen der Provider "as is"
lassen - was sicherlich mittelfristig die Arbeit des
"Rate-hunting" extrem vereinfachen d�rfte!
Daf�r sind diese "aliase" gedacht!
Also nochmal die Regel:
Unter "N:" steht die "offizielle" Bezeichnung f�r ein Land - genau diese
wird der isdnlog sp�ter anzeigen
Unter "A:" stehen beliebig viele, jeweils durch Komma getrennte
alternative Schreibweisen f�r dasselbe Land. Und das *nur*, um ein
einfaches Matching mit den diversen Tariftabellen der Provider
hinzubekommen!
> Alexander Skwar
> --
> My Site : http://www.digitalprojects.com
> To get my PGP key, send me an email with the Subject: Send PGP Key.
Ciao,
Andreas
--
Andreas Kool ([EMAIL PROTECTED] * http://www.pweb.de/kool.f)
PGP: 3FBF2411 Fingerprint: B5 35 34 74 25 60 2A 7A 89 06 92 C4 08 BA A5 BD
(To get my PGP key, send me a mail with subject "send pgp key")
Transmission of this message via the Microsoft Network is prohibited
_______________________________________________
Rates4linux-devel mailing list
[EMAIL PROTECTED]
http://lists.SourceForge.net/mailman/listinfo/rates4linux-devel