Hi all,
-----Original Message-----
From: Michael Reinelt <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Date: Donnerstag, 23. September 1999 09:17
Subject: Re: Zusammenfassung - destination.c
1) Landes-Schluessel ist TLD (Topleveldomain) = ISO-CODE
>Ich denke, wir k�nnen davon ausgehen, da� jede gro�e Stadt einen
>Flughafen und damit ein solches internationales K�rzel hat.
Flugahafenkuerzel gefaellt mir nicht. Was haltet ihr von Postleitzahl. Ist
auch ein eindeutiger Schluessel (auch wenn es fuer eine Stadt mehrere gibt
ist das egal, wir brauchen ja nur einen Schluessel.
Im Prinzip brauchen ja nur die Staedte einen Schluessel, die in der
rate-CC.dat vorkommen. Das sind eine paar Staedtetarife. Da kann auch die
Stadtbezeichnung der Schluessel sein, reicht vollkommen.
2) Vorschlag: Staedteschluessel sind die Staedte selber
>Grunds�tzlich finde ich die Idee immer besser, die Destinationsdatenbank
>in eine internationalen Teil (Vorwahl zu Landes-, Gebiets- oder
>Staedtecode) und einen nationalen Teil (Landescode zu Landesnamen,
>verschiedene Schreibweisen, regionale Ortsnamen) aufzuteilen.
Effizienter waere es alles in einer Datenbank zu halten. Sind ca. 0.5 MB
(grob geschaetzt), de/code hat ca. 90 K.
>Weiters w�ren dann n�tig:
>* Ein Preprozessor, der L�ndernamen in der rate.dat in destination-codes
>umwandelt, und dabei auch verschiedene Schreibweisen akzeptiert. Nachdem
>hier Geschwindigkeit �berhaupt kein Thema ist, kann (besser: soll) das
>Perl sein.
Richtig, ist auch im Prinzip fertig, mit interaktiver Eingabemoeglichkeit,
falls kein Alias passt und einer grep-Funktion in country-de.dat. Diese
Eingabe koennte auch gleich als neuer Alias aufgenommen werden.
>* eine Funktion, die zu einer Telefonnummer das Land/Gebiet/Ort
>auswirft.
D.h. uebernehmen die Funktionen von getCountry* , getAreacode
>* eine Funktion, die eine Telefonnummer in die Bestandteile zerlegt
>(Landes- und Ortsvorwahl)
gibt's schon seit einiger Zeit:
telnum.c: normalizeNumber
>* eine Funktion, die �berpr�ft, ob und wie gut eine Telefonnummer mit
>einem destionation-Code �bereinstimmt (zur Auswertung der A:-Tags)
Versteh ich nicht ganz.
In der rate-CC.dat stehen entweder drin:
a) +nnn Vorwahlen
b1) ISO (=Landescodes)
b2) Staedte
Du hast eine Telefonnummer (schon gesplittet oder auch nicht)
Als erstes suchst du die +nnn Eintraege mit jetzigem Algorithmus durch. Das
hat Prioritaet (Sondernummern und so)
Falls kein +nnn passt fragst du getDestination(Nummer) und bekommst
Landescode und Stadt retour.
Dann suchst du in der Providertabelle (binaer) nach der Stadt und wenn nix
nach dem Land. Also in der Hierarchie wieder von unten (laengste Nummer)
nach oben (kuerzeste Nummer).
>sonst noch was?
Eine Funktion die zu einem Land/Stadt eine Vorwahl auswirft.
isdnrate -CH Rotterdam
geht jetzt auch schon.
>Wann starten wir?
Wenn der grosse halbgesichtige Meister ja sagt, hau ich in die Tasten.
Ach ja, die Schnittstelle sollten wir schon definieren oder. Ein grep durch
die betroffenen Sourcen zeigt, dass eigentlich nur tools/tools.c, rate.c und
telnum.c betroffen sind. Der isdnrep haengt mit der Geschichte noch nach
bzw. verwendet auch tools.c.
BTW Andreas: normalizeNumber liefert auch schon die aufgesplittete Nummer in
NUM zurueck, du brauchst nicht einen String formatieren und den dann wieder
aufsplitten.
int getDestination(char *Number_or_Name, TELNUM &Num)
In der struct TELNUM kommt noch der ISO-Landes-Code dazu, die struct COUNTRY
kommt raus (ich glaube nicht dass wer die Aliase als Rueckgabewert braucht),
dafuer kommt der Laendername (ex N:-Tag) rein.
In der Datenbank gibt es primaere Daten (+nnn, oder AT oder Paris) und
sekundaere Daten (ex. Aliase) die auf einen primaeren Satz verweisen.
Rueckgabewert ist immer der primaere Datensatz.
Die Frage ist ob wir zwischen Stadt und Land noch eine Hierarchie 'Gebiet'
einbauen.
z.b.
+1907xxx => (USA, Fairbanks)
oder
(USA,Alaska,Fairbanks)
>bye, Michi
leo
_______________________________________________
Rates4linux-devel mailing list
[EMAIL PROTECTED]
http://lists.SourceForge.net/mailman/listinfo/rates4linux-devel