rate-files

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
rate-files(5)							rate-files(5)



NAME
       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  destinations  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  separates	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  position.	There
	      are  two	possibilities. In the rate source file (which is pre-
	      pared 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 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 wild-
	      cards 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.
	      S:Internet
	      N:07189*,19430
	      N:19440

       U:currencyfmt currency

	      e.g.  U:%.3f DEM

       X:num_wildcard = provider[zZone] [,...]

	      Define exception. If a certain number is	always	routed	to  a
	      certain  provider	 and  not  to  the  preselected provider, you
	      should use this tag.
	      e.g. in Austria, online service numbers 194x or 07189 go always
	      via Telekom, ignoring your preselection:
	      X: 194*=1,07189*=1
	      or
	      X: 194*=1z6    # Provider 1 Zone 6

   Provider entries
       A new provider starts always with a P: tag and consists of a Provider-
       header 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 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-number,  or	providernumber,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:TarifURL:	URL for tarif info
	      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-

       r:prov, sub ; start_zone-

       This tag is related to the R:-tag.  It is interpreted by the rate-pre-
       processor  pp_rate.   All  providerzones with a zone number greater or
       equal start_zone are copied from provider prov[,sub] and	 replace  the
       r:-tag.	 If an area is already used in a previous providerzone of the
       current provider, it will not be copied.	 If all areas of a  provider-
       zone  are  already defined, the entire zone will not be copied.	Lines
       that contain only comments are also not copied, but  comments  at  the
       end of other lines are.

       This  tag  is  designed	for providers with a rate variant that offers
       different fees for some foreign destinations.

       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 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 respectively:

	      Z:4
	      A:+49
	      T:...

       Countrynames  like  Belgium in the above example are replaced by their
       ISO-Code (or TLD) with the rate preprocessor pp_rate.

       T:[daterange]daylist/timelist[!]=chargelist chargename

       where  daterange	 is  [[fromDate][-toDate]]  like   the	 corresonding
       provider	 entry.	  Note that the daterange is enclosed in sqare brack-
       ets, 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][/Duration...]

       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 dura-
       tion 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 per minute,
	      first charge is for one minute after this	 charging  is  calcu-
	      lated 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	 min-
	      utes 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 seconds 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.

       The next two t:-tags are interpreted by pp_rate and replaced by one or
       more T:-lines.  Both methods can be used together.

       t:[daterange]?[H]=chargelist chargename

       This  line  is  replaced	 by  according	T:-lines  for not yet defined
       day/hour pairs.

       If a daterange is given, only previous T:-lines without a daterange or
       with the same daterange will be considered as earlier definitions.  If
       H is noted, definitions will also be added for holidays.

	      EXAMPLE
	      T:W/08-18=0.10/60 normal time
	      t:?H=0.04/60 save time

	      This lines will lead to the following lines after pp_rate:

	      T:W/08-18=0.10/60 normal time
	      T:W/18-08=0.04/60 save time
	      T:E,H/*=0.04 save time

       t:daterange=srcrange [chargename]

       Generates T:-lines for daterange by  copying  previous  T:-lines	 with
       srcrange	 in the same zone.  If a chargename is given, it will replace
       the chargename of the originating line.	srcrange can be shortened  as
       long as it remains definite.

	      EXAMPLE
	      T:[-24.12.2003]W/*=0.08/60 weekdays
	      T:[-24.12.2003]E,H/*=0.06 weekend
	      T:[24.12.2003-25.12.2003]*/*=0.04 Christmas Eve
	      t:[25.12.2003-31.12.2003]=[-24.12.2003]
	      t:[31.12.2003-01.01.2004]=[24.12.] New Year’s Eve
	      t:[01.01.2004]=[-24.12.]

	      This will be transformed into:

	      T:[-24.12.2003]W/*=0.08/60 weekdays
	      T:[-24.12.2003]E,H/*=0.06/60 weekend
	      T:[24.12.2003-25.12.2003]*/*=0.04/60 Christmas Eve
	      T:[25.12.2003-31.12.2003]W/*=0.08/60 weekdays
	      T:[25.12.2003-31.12.2003]E,H/*=0.06/60 weekend
	      T:[31.12.2003-01.01.2004]=0.04/60 New Years’ Eve
	      T:[01.01.2004]W/*=0.08/60 weekdays
	      T:[01.01.2004]E,H/*=0.06/60 weekend

SEE ALSO
       isdnlog(8), isdnrate(1), isdnlog/README, rate-at.dat

AUTHOR
       Leopold	Toetsch <lt@toetsch.at> (of this man page of course).  Tobias
       Becker <tobiasb@isdn4linux.de> added the tags r: and t:.



-lt-				  2003/09/22			rate-files(5)