I´m looking for an experience A2billing programmer to some modifications on the Agis. What we need is:
1. System Design
1.1. Description of product
We offer 3 promotional rates that consist of limited amount of minutes to a discounted price, aftern time runs out, the card is switched to the normal rate, with no limit amount of minutes. All 3 rates will run for 2 consecutive months, starting from the date of promo rate activation. Unspent minutes in the first month will be lost and not accumulate for the second month. Once completed the two-month promotional rate, the card returns to the normal rate. All these 3 promo rates may apply only once per customer / card. The configuration of the promotional rates are as follows:
1) Promo Rate 1: 15 minutes/month to promo rate for two consecutives months.
2) Promo Rate 2: 25 minutes/month to promo rate for two consecutives months.
3) Promo Rate 3: 30 minutes/month to promo rate for two consecutives months.
1.2. Actual Deck Threshold Switch
The version of agis that we are using actually is: A2Billing - Version 1.9.3 (Cuprum).
A2billing has a very limited Deck Threshold Switch, it only takes all minutes for a given card in order to check the amount of minutes included in the promo rate. it does not take into consideration of minutes belonging to one or another rate, nor a date range.
To enable this functionality, it’s necessary to create a new agi-conf and setup as show:
CallPlan threshold Deck switch callplan_deck_minute_threshold 36:60,2
CallPlan threshold Deck switch.
This option will switch the user callplan from one call plan ID to and other Callplan ID The parameters are as follow :
-- ID of the first callplan : called seconds needed to switch to the next CallplanID
-- ID of the second callplan : called seconds needed to switch to the next CallplanID
-- if not needed seconds are defined it will automatically switch to the next one
-- if defined we will sum the previous needed seconds and check if
In this example, 36 is the id for the first rate, 60 is the amount of minutes include in the promo rate, and 2 is the normal rate to switch to when promo minutes are spent.
To apply these settings to the users of the promo rates, we assign a unique ddi for each rate, pointing to a different agi-conf, as shown in the following example:
; CallingCard application
exten => _XXXX.,1,Answer
exten => _XXXX.,n,Wait,2
exten => _XXXX.,n,DeadAGI,[url removed, login to view]|3
exten => _XXXX.,n,Wait,2
exten => _XXXX.,n,Hangup
1.3. New features for Improved A2billing Threshold Switch
We need to add new features to adapt the existing Deck Threshold Switch to our promo rates. In order to achieve this, we will need:
1) Know the date of promo rate activation; we need to know if a2billing stores the date when a card has a rate change, in order to control the two-month period when a valid promo rate is applied to a customer. If a2billing doesn’t store this date, we need to a mechanism to control it, preferable in a2billing admin web ui, in the panel of card edit ([url removed, login to view] ) . The promo will start on the same month of activation, and it will run for two consecutive months, the unspent minutes from each month will be lost. After the two month period, the rate will be switched to the normal rate. And cannot be applied again for that card in the future.
2) Limit the duration of the outgoing calls to the free amount of minutes available from the promo.