Hallo,
-----Original Message-----
From: Michael Reinelt < >
To: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Date: Mittwoch, 26. Mai 1999 12:18
Subject: Re: Verzonungstabellen
>getZone() ist schlecht, das gibt es schon.
>* Schnittstelle: initZone(int provider, char *path, char**message)
> exitZone(int provider)
> getZone(int provider, char *from, char *to)
>
ausserdem kann man das umtaufen:
initInlandsZone()
exitInlandsZone()
getInlandsZone()
returns 0=ok, -1=error
da die Routinen mit Ausland sowieso nichts am Hut haben.
>* wie du das intern machst, d.h. ob du die Tabellen in den Speicher
>einliest oder die Dateien offenh�ltst ist mir egal.
Im Speicher ist trotz Reduktion IMHO nicht sinnig
dzt. Filegroessen:
Land Format Size
AT txt 150K
AT db 140K
DE txt 1.8M
DE db 870K
Die db verwendet GDBM und hat dzt. folgende Eintrage:
8bit Zone 24 bit Nummer, Schluessel ist zoneart (8bit)+ Nummer(24bit)
Die txt Datei besteht aus Zeilen:
von zu zone
Mit einer Beschraenkung auf 16bit pro Nummer im Datenteil wuerde das noch
etwas kleiner werden. Das koennte pro Datensatz mit einem Flag
mitgespeichert werden. Der Schluessel bleibt sicherheitshalber auf 24
bit/Nummer.
>* getZone liefert UNKNOWN, wenn keine Verzonung f�r diesen Provider
>vorliegt.
= -1
>* initZone() wird f�r jede Verzonungstabelle aufgerufen, wir haben dann
>auch entsprechend viele Hinweise im syslog (die kommen vom **message)
oder fuer jeden Provider?
>
>* initZone() wird von initRate() f�r jeden Provider (der eine verzonung
>hat) aufgerufen, damit �ndert sich an der Schnittstelle zur rate.c
>nichts, d.h. zone.c bleibt komplett hinter rate.c verborgen.
>
>* Wie verwalten wir den Fall, da� mehrere Provider dieselbe Verzonung
>verwenden? Ich m�chte keine zus�tzliche Datei mehr haben, und ich m�chte
>auch die einzelnen Verzonungstabellen nicht mischen. Eine bestimmte
>Verzonung ist eine Datei. Vorschlag: Ein neues Tag in der rate-xx.dat,
>das angibt, welche Verzonung zu verwenden ist (aber auf jeden Fall ohne
>Pfad!). Dann wird �ber einen Eintrag "ZONEFILE" in der isdn.conf der
>Pfad zur Datei ermittelt und initZone() aufgerufen. Dabei kann es
>passieren, da� initZone() f�r eine Datei zweimal aufgerufen wird
>(allerdings mit verschiedenen Providern). initZone k�nnte das ja
>feststellen (indem es sich den Pfad f�r jede Verzonung merkt) und intern
>nur einen Verweis speichern. Mit dieser Variante w�ren auch symbolische
>Namen f�r Verzonungen m�glich:
Gefaellt mir nicht so gut - ich bin fuer eine einzige Verzonungsdatei (nur
ein Dateihandle offen).
Dzt. ist die Verzonungsart im Schluessel drin. d.h. wir braeuchten eine
Umsetzung
Provider -> Verzonungsart
also
Variante 1)
initInlandsZone(int provider, char *path, char**message)
setProviderZoneArt(int provider, int zoneart)
bzw in einem:
initInlandsZone(int provider, int zoneart, char *path, char**message)
getInlandsZone(int provider, char *from, char *to)
oder die Umsetzung ist extern:
Variante 2)
getInlandsZone(int zoneart, char *from, char *to)
Variante 3)
oder die Zuordnung geht ueber ein Hilfsprogramm, das bei der Erstellung der
Zonenfiles die tarif-xx.dat liest und die Zuordnung Provider->Verzonungsart
in der Verzonungstabelle mitabspeichert.
>ZONEFILE=/usr/lib/isdn/zone-at-%z.dat
>
>P:01 Telekom Austria
>X:pta
>
>P:02 Junk
>X:pta
>
>P:03 Juhu
>X:flat
"flat" sollte der Einfachheit halber speziell (i.e. nicht ueber eine
Zonentabelle)
behandelt werde.
Das selbe gilt fuer Ortszone (da getInlandszone nicht weiss, was beim
jeweiligen Provider dir Ortszone ist).
>
>Fragen:
>* wie nennen wir das X:-Tag? (Z: ist leider schon vergeben)
Spricht was gegen ein kleines 'z' ?
"Verzonungsart"
>* bezieht sich das X:-Tag direkt auf den symbolischen Namen oder auf die
>Providernummer (X:01 = verwende die Verzonung von Provider 01)
>* sind mehrere Indirektionen m�glich? (P:03 verwendet die Verzonung von
>P:02, welcher die Verzonung von P:01 verwendet)
Fortlaufende Numerierung oder noch einfacher Providernummer, ev. eine
Indirektion
P:01 Telekom Austria
z:01
P:02 Junk
z:01
oder:
P:02 Junk
z:P01 # verwende Z. von Provider 01
***Und der Provider Junk muss die selben Z:-Eintraege in der rate-at.dat
haben wie der Provider P01, was dzt. ev. nicht der Fall ist, oder
Michael?***
leo
_______________________________________________
Rates4linux-devel mailing list
[EMAIL PROTECTED]
http://lists.SourceForge.net/mailman/listinfo/rates4linux-devel