rate-files - Format of rate-files
The rate-files used by isdnlog(8) and by isdnrate(1) are textfiles defining the telephone
fees for different destinations at certain dates/times for all providers of one country.
The rate-files have the following overall layout:
Comments starting with a hash-sign '#' and empty lines are ignored. The first letter (tag)
followed by a colon separates the entries. Additional white space may be used after the
tags to group content more readably.
includefile get's substituted at the current position. There are two possibilities.
In the rate source file (which is prepared by pp_rate) a small 'i' puts the con-
tents 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.
e.g. V:1.0-Germany [18-Mar-1999]
This defines telephone services with special numbers. 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 straight top
down. There may be multiple N: tags for one telephone service.
e.g. U:%.3f DEM
A new provider starts always with a P: tag and consists of a Providerheader followed by
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 format 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 from-
Date or -toDate or both may be given.
The providernumber may be a simple number, normally the last digits of the VBN-num-
ber, or providernumber,variant if a provider has different connection fees.
P:[01.01.1999] 1,1 Telekom Minimumfee
VBN-Number for provider
This is the number to select this provider and depends on your country.
COMMENT may be an arbitrary string, but the following entries are used already:
C:Maintainer: Who did the hard work
C:TarifChanged: and when
C:Homepage: http:URL for provider
C:TarifURL: URL for tarif info
C:Telefon: Telefon number
C:Telefax: Fax number
C:Hotline: Telefon number
C:Zone: Textual info about zones
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.
Name of zone file (inserted for %s in ZONEFILE = /usr/lib/isdn/zone-CC-%s.dat from
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.
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 refer-
enced 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
R:1,1 ; 1-4,6, 10-
where zonelist is zone[-to_zone][,...]
e.g. Z:1-2,4 Interior
area may be a telephone number (including +countrycode for numbers which may be reached
from everywhere, a telephone number without +countrycode for numbers only reachable in 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 respec-
Countrynames like Belgium in the above example are replaced by their ISO-Code (or TLD)
with the rate preprocessor pp_rate.
where daterange is [[fromDate][-toDate]] like the corresonding 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
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.
Monday until Thursday, daytime the charge is 1.50 per minute, first charge is for
one minute after this charging is calculated in seconds interval.
On weekday, night, charge is the bigger of 1.20 per minute or 0.30
Everyday, everytime there is a connection fee of 0.50, then charge is 1 per minute.
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.
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 seconds interval.
The second entry defines a charge of 0.90 in the time outside the happy hour.
Like above, but a full date range is given.
isdnlog(8), isdnrate(1), isdnlog/README, rate-at.dat
Leopold Toetsch <email@example.com> (of this man page of course).
-lt- 2000/09/04 rate-files(5)