Advanced Rates

From Kolmisoft Wiki
Revision as of 12:15, 15 July 2009 by Mindaugas (talk | contribs)
Jump to navigationJump to search

Description

In order to manage rates for destinations easier, destinations are grouped. And one rate applies for a group of destinations not for one destination separately. (Group can contain one destination also if it is necessary.) Destinations groups are used by users, not by providers because providers need to have very exact rates for every destination.

Each group of destinations consists of several destinations described by prefixes. Let‟s take for example Albania MOB: here we have 3 destinations described by prefixes: 35538, 35568 and 35569. Each of these destinations is Albania MOB. Usually users do not care to which MOB network they are calling and usually for not popular countries providers put one price for all destinations to that direction. Same here. We can put one price for all these 3 destinations grouped to group Albania MOB.

Each rate for some destination group can have many rate details. Which means: destination group has one rate, but this rate has many rate details (sub-rates). Each rate detail describes one interval of the call. If first rate detail is RD1, second: RD2, and so on, so all call is RD1 + RD2 + .. + RDn. Number is finite. Rate detail can be seen as time interval for all duration of the call. This interval could be zero length also. It is explained further.

Each rate detail consists of such parts:

  • FROM – from which second rate detail starts
  • DURATION – what is the length of this rate detail (interval)
  • TYPE - minute or event
  • ROUND BY – in what intervals round time
  • RATE – price for minute in this rate interval

The type 'minute' describes interval which last some time. This time is billed by rate and rounded accordingly. Interval starts at FROM and lasts for DURATION seconds. The type 'event' describes some kind of zero-length interval which we call EVENT. As example it could be connection fee. If type is 'event' rate detail has no DURATION (it‟s always zero) and ROUND BY fields.



NOTE: The same rules apply to Custom Rates for users.





Examples

Example #1

The call should have 0.2 connection fee (currency does not matter here) and all other time must be billed by 6 second intervals with rate 0.1 per minute.

Such rate should be described like this:

FROM DURATION TYPE ROUND BY RATE
1 0 event 0.2
1 minute 6 0.1


Example #2

The first 30 seconds of the call cost 0.1, the next time till 5 minutes is billed at rate 0.05 rounded by 30 seconds and remaining time is billed by rate 0.02 and rounded by 1 second.

FROM DURATION TYPE ROUND BY RATE
1 30 minute 30 0.2
31 300 minute 30 0.05
301 minute 1 0.01


Same example can be described like this also:

FROM DURATION TYPE ROUND BY RATE
1 0 event 0.1
1 30 minute 30 0
31 300 minute 30 0.05
301 minute 1 0.01


Example #3

The rate for call is 0.01 per minute rounded by 1s. The max price for call can be 0.1.


FROM DURATION TYPE ROUND BY RATE
1 600 minute 1 0.1
601 minute 1 0


Example #4

The rate for call is 0.01 per minute rounded by 1s. First 15 seconds of the call are not billed.


FROM DURATION TYPE ROUND BY RATE
1 15 minute 1 0
16 minute 1 0.01