The call plan is what is used to rate and charge calls. The make up is as follows:-

  • A customer has a call plan
  • A call plan has many rate cards
  • A rate card has many rates.

The methodology that we use to create call plans and therefore products is as follows:-

  1. Create the call plan, call it by a name related to the product you are selling, for illustration purposes, call it standard.
  1. Add your trunks.
  1. Create a Ratecard. (see Edit Rate Card) A separate ratecard is built for each carrier and product on A2Billing. Assume for the moment, we have two carriers on the platform, Call-Labs and Colt. You will need to create 2 rate cards for the "Standard" product so that you have a measure of the profitability of your platform, and for carrier reconciliation purposes. For ease of identification call these:-
  • standard/call-labs
  • standard/Colt
  1. Edit the "Standard" Call plan, and add the "standard/call-labs" and the "standard/colt" ratecards into the "Standard" call plan.
  1. Add rates into each of the two ratecards. These can be typed in manually, or prepared in a spreadsheet or database and imported into the system as a CSV file.
  1. Test the rates by using the Ratecard Simulator

Call Plan Attributes


Give the call plan a sensible name related to the product. If your customer will have web access to A2Billing they will see this name, so choose wisely.

LC Type

This refers to Least Cost Routing (LCR) and Least Cost Dialing (LCD)

  • LCR - Cheapest for you. The cheapest route by carrier cost is chosen from the rate tables in the call plan.
  • LCD - Cheapest for the customer. The cheapest route by retail price is chosen.

It may be argued that you would always choose LCR, but there is one set of circumstances where using LCD is useful. When you offer a particularly good rate to a certain destination for only one of your customers, you can just include that small ratecard, along with the normal ratecards in the new custom call plan you created especially for him. This saves the administative effort of creating a separate new rate table, you just need to include changes to the standard table, and LCD will always select the cheapest route for the customer.


See Offer Packages for more information about packages. In brief, a package allows a defined number of minutes to a defined destination. e.g. 200 minutes free every month to the UK. In this case, simply select the package you want to offer with this call plan.

Remove International Prefix

Whatever number is dialled, this removes the international prefix, e.g. 00, 011, etc, so that the dialcodes are put into the system should be in IETF format - eg 44 UK, 1 USA, 34 Spain. No leading zeros.

The international codes can be defined in system settings

Click confirm to activate the call plan. It can now be selected in Create Customer.

Edit Call Plan

To the far right hand side of the List Call Plan is an edit button. This allows you to edit the attributes, but additionally, it provides a screen to add ratecards to the call plan to make up a complete product. If in the Asterisk CLI, you see the words, "unable to find a match", then: -

  • Check your customer is attached to the right call plan
  • Check the call plan has a ratecard
  • Check the rate card has a rate for the destination you are trying to dial.

This submenu allows the creation of Call Plans and to add Rate Cards to them. A Call Plan is composed of one or more Rate Cards. A Rate Card can contain one or more Rates. Rates to a given destination are associated to a given Trunk Technology.

The creation of a Call Plan implies the following tasks:

  • Provider: Create a new provider in the system, give it a name.
  • Trunk: Add a new trunk technology to the system, the trunk technology is the technological mechanism that the provider uses to route calls (SIP, IAX, local, etc.). If you are familiar with asterisk, the trunk technology section contains the necessary information to route calls via a certain provider making use of a given channel. As this information is very provider dependent, it could be the case not all parameters can be entered via a2billing interface. If that is the case, you will have to edit the sip.conf, iax.conf files manually and point to the manually configured [trunk_name] in a2billing
  • Rate Card: Create a new rate card that will cluster a collection of rates
  • Rate: A Rate specifies the costs related to a given destination via a given trunk. It includes the buying and selling costs and what prefix needs to be used to reach this rate.
  • Call Plan: Create a Call Plan and add Rate Cards to it.
  • Customer: Associate a Call Plan to your customer.