rate-files - Format of rate-files
DESCRIPTION
The rate-files used by isdnlog(8) and by isdnrate(1) are
textfiles defining the telephone fees for different desti
nations at certain dates/times for all providers of one
country.
The rate-files have the following overall layout:
Header entries
Provider entries
Comments starting with a hash-sign '#' and empty lines are
ignored. The first letter (tag) followed by a colon sepa
rates the entries. Additional white space may be used
after the tags to group content more readably.
Special entries
I:includefile
i:includefile
includefile get's substituted at the current posi
tion. There are two possibilities. In the rate
source file (which is prepared by pp_rate) a small
'i' puts the contents of the include file in the
outputfile. An 'I'-Tag means, for the preproces
sor, write a new output file (the includefile) and
leave the tag in the rate-files. This is for real
include files.
Includes may be nested twice. The filename should
not contain any paths (except for 'i' of course),
they are taken relative to their parent file.
Header entries
V:versionsstring
e.g. V:1.0-Germany [18-Mar-1999]
S:Servicename
N:Servicenumber[,Servicenumber...]
This defines telephone services with special num
bers. Special numbers are numbers which a) start
with no '0' or b) can not be dialed with every
provider. A number with a variable length should
have the wildcard '*' at the end, eg. 07189* which
matches all numbers starting with 07189. Numbers
with wildcards should be placed after numbers which
would match the wildcard, because matching is done
for one telephone service.
e.g.
S:Internet
N:07189*,19430
N:19440
U:currencyfmt currency
e.g. U:%.3f DEM
Provider entries
A new provider starts always with a P: tag and consists of
a Providerheader followed by Providerzones.
Providerheader
P:[daterange] providernumber providername
daterange is [[fromDate][-toDate]]
This defines a time range for the validity of rates
for this provider. Dates have to be numeric in for
mat dd.mm.yyyy. Note: as time is assumed as 00:00,
take for toDate the day+1. The daterange has to be
enclosed in square brackets. Either fromDate or
-toDate or both may be given.
The providernumber may be a simple number, normally
the last digits of the VBN-number, or providernum
ber,variant if a provider has different connection
fees.
e.g.
P:02 UTA
or
P:[01.01.1999] 1,1 Telekom Minimumfee
B:vbn
VBN-Number for provider
e.g. B:1002
This is the number to select this provider and
depends on your country.
C:COMMENT: comment
COMMENT may be an arbitrary string, but the following
entries are used already:
C:Name: Providername
C:Maintainer: Who did the hard work
C:TarifChanged: and when
C:Address: Provideraddress
C:Homepage: http:URL for provider
C:EMail: EMail-Address
C:Telefon: Telefon number
C:Telefax: Fax number
C:Hotline: Telefon number
C:Zone: Textual info about zones
C:Special: Guess
C:GT: Additional charge text
C:GF: Additional charge formula
If there are multiple comments with the same comment name,
they get appended separated by a newline char.
D:zone
Name of zone file (inserted for %s in ZONEFILE =
/usr/lib/isdn/zone-CC-%s.dat from isdn.conf)
e.g. D:1001 # zone file is zone-at-1001.gdbm
Note: if the provider has no different domestic zones, you
should not define a D:tag.
Providerzones
A Providerzone entry starts with a Z: tag followed by one
or more A: and T: tags.
A zone is a region of areas, for which the same rates
apply. Domestic and foreign zones should not be mixed and
all foreign zones should follow domestic zones.
R:prov, sub ; zonelist
Read zones from provider prov subprovider number sub. A
zonelist is defined below. If the referenced provider
doesn't have a subprovider number, the sub must be -1. The
referenced provider may be defined before or after the
R:-tag. The referenced zones must be real Z:-entries, not
references themself. The zone numbers and names are taken
from the referenced provider. The last to_zone may be
missing then all zones from the start zone are used.
e.g.
R:1,1 ; 1-4,6, 10-
Z:zonelist zonename
where zonelist is zone[-to_zone][,...]
e.g. Z:1-2,4 Interior
A:area[,area...]
area may be a telephone number (including +countrycode for
numbers which may be reached from everywhere, a telephone
the own country) or an area name or alias as defined in
country.dat. Country names have to be translated to their
code by the rate-preprocessor pp_rate.
e.g. A:19430,07189 # Online
e.g. A:+31,Belgium # Int 1
Note: There should always be exactly one zone with your
countrycode or countryname respectively:
Z:4
A:+49
T:...
Countrynames like Belgium in the above example are
replaced by their ISO-Code (or TLD) with the rate prepro
cessor pp_rate.
T:[daterange]daylist/timelist[!]=chargelist chargename
where daterange is [[fromDate][-toDate]] like the cor
resonding provider entry. Note that the daterange is
enclosed in sqare brackets, either fromDate or -toDate are
optional.
daylist is day[-day][,...] and day is a daynumber (1=Mon,
2=Tue, ...) or W (weekday), E (weekend), H (holiday) or *
(everyday).
timelist is hour[-hour][,hour] where hour is a number
0..23 or * for everytime.
After daylist/timelist follows = or != which means,
provider doesn't adjust rates on a rate boundary e.g. at
18h00.
A chargelist consists of
[MinCharge|]Charge[(Divider)]/Duration[:Delay][/Dura
tion...]
where MinCharge| is an (optional) minimum charge, Charge
the rate per Duration seconds or optional rate per
(Divider) seconds, Duration is the length of one charge
unit in seconds. After Delay the next duration is taken.
If delay is not given it equals to the duration. The last
duration may not have a delay and may not be zero.
EXAMPLES
T:1-4/8-18=1.5(60)/60/1 workday
Monday until Thursday, daytime the charge is 1.50
this charging is calculated in seconds interval.
T:W/18-8=0.30|1.2(60)/1 night
On weekday, night, charge is the bigger of 1.20 per
minute or 0.30
T:*/*=0.50/0,1(60)/1 always
Everyday, everytime there is a connection fee of
0.50, then charge is 1 per minute.
T:H/*=0.5/60:600,0.5/30 holidays
On holidays, everytime a charge of 0.5 per minute
in a minutes interval, after 10 minutes 0.5 per
half minute in half a minutes interval.
T:*/*=1.3/0,0/1
Everyday, everytime the charge is 1.30 independent
of duration, which could also be written as
T:*/*=1.3|0/1.
T: [-01.02.2000] */17-19=0.79(60)/60/1 Happy Hour
T: [-01.02.2000] */19-17=0.90(60)/60/1 Normal
Until the first of Feb 0:00h (i.e. end is 31.1.2000
24:00), everyday between 17 and 19h a charge of
0.79 per minute, the first minute is always charged
fully, after this, charging is calculated in sec
onds interval.
The second entry defines a charge of 0.90 in the
time outside the happy hour.
T:[15.11.1999-01.02.2000]*/17-19=0.79(60)/60/1 HH
Like above, but a full date range is given.
SEE ALSO
isdnlog(8), isdnrate(1), isdnlog/README, rate-at.dat
AUTHOR
Leopold Toetsch <lt@toetsch.at> (of this man page of
course).
Man(1) output converted with
man2html