Billing for FusionPBX with FreeSWITCH

This manual will guide you on every detail about how to install and use the Billing for FusionPBX native application.  If you want to have a quick setup, you may read the quick guide and later return here.


  1. Billing for FusionPBX installation
  2. Billing for FusionPBX configuration
  3. Maintenance Tasks

Billing for FusionPBX Installation

Before you start Billing for FusionPBX installation, you must satisfy next requirements:

  • You need to have FusionPBX 3.6 or better installed with MySQL, MariaDB or PostgreSQL as database data storage.  If you don't know how to do this, OKay offers Linux consultant services.
  • You need to have PHPShadow extension installed.
  • You need to have LCR for FusionPBX installed.
  • You need to have SSH access and to be able to write in /app directory where FusionPBX is installed.
  • You need to have access to FusionPBX as superadmin.
  • You need to download and get a Billing for FusionPBX license.

When you satisfy these requisites, please follow the next steps:

  1. Go to app directory where FusionPBX is installed, for example: cd /var/www/html/app
  2. Copy LCR for FusionPBX in the server (by FTP or SCP), you can place it in /tmp directory
  3. Execute the command  tar -jxvf /tmp/billing-crypted.tar.bz2
  4. Go into /var/www/html/app/billing directory and execute echo -n key > any_name.key command, where key is your license number. Since version 1.0.1 license name can have any name with .key extension.
  5. Copy niblebill.conf.xml into autoload_configs directory (for example: /etc/freeswitch/autoload_configs/).cp niblebill.conf.xml /etc/freeswitch/autoload_configs/. Edit niblebill.conf.xml file and change the DSN values with yours.
  6. Log into FusionPBX as superadmin and go to System->Modules menu, enable and start Niblebill module.
  7. Go to Advanced->Upgrade menu, select Schema and Menu Defaultsfusionpbx-upgrade
  8. Review groups and menu permits
  9. Logout and login again into FusionPBX

Billing for FusionPBX Configuration

To configure LCR for FusionPBX, you need to understand the following concepts:

A Profile is used to define a billing. Each profile is identified by a unique label.
Billing Cycle
A Billing Cycle defines the billing day. Static charges will take place this day.
Billing Type
A billing type may be pre or post paid.
The specific amount, on post-paid profiles it establishes the maximum credit a profile may have. This value is zero for pre-paid profiles. You must define billing currency, the system will use external services to do the rating.
LCR profile
LCR profile is a pricing list. By changing this label, you may have more than one pricing list.
Referal fields let you reward your users just because they recommend your service.


  1. Go to Apps->Billing menu and add a profile
  2. Fill the next information
    fusionpbx add new billingSelect FROM and TO depending who shall send the billing to who. Data will be taken according to information in Contacts application; you can go to App -> Contacts menu to fill information.
    In most cases, using billing per tenant is enough, but there are specific cases where an alternate code is required, especially if you need more than one billing profile per tenant; in this case, select the by-code option. The value entered in the Criteria Value field needs to be in place on all other FusionPBX items.
    Select the billing day cycle, to make things simple it is only allowed from 1 to 28.
    The Amount field is read-only, you must select the currency for billing. Once the currency is set, you won't be able to change it.
    Delay days field is not used.
    Balance is a read-only field.
    LCR profile field will tell the profile what pricing list to use. By default it is 'default', by adding a new profile means to modify file lcr.conf.xml.
    Referal fields are sued to reward your users because of recommendations.

Remember to fill the accountcode field with correct value when creating items in FusionPBX.

Maintenance Tasks

Crontab configuration

The following files can be edited and place into a crontab:

  1. billing_crontab_pyramid.php
  2. billing_crontab_lowbalance_email.php

Billing logic change

Sometimes, you may need to change billing logic (only in specific cases). You can edit the file resources/functions/ratings.php

Billing for FusionPBX update

You may follow the installation procedure for any update

One of the hardest task when configuring VoIP billing is the selling price assignment. Lucky for everyone, LCR for FusionPBX with FreeSWITCH has a way to suggest selling prices. Please follow these steps:

  1. Set up all your VoIP Carriers with your buying prices. Don't forget to set up your channel number per carrier
  2. Set up your prefix break down. This is a purely personal or business call. Some people prefer to use 4 digit breakdown, like 1613, 1464 and other people prefer 6 digits like 1613800, 1613700. To make this task easier, we provide a breakdown example:
    Cannot find the download. ID=38
  3. Edit your breakdown as you need, price does not matter at this moment
  4. Go to App->LCR menu and import your breakdown as a selling price
  5. Call the script by accessing it directly, for example, (the path may change depending on your FusionPBX deployment). You will see information about pricing being updated. If for a reason you see "access denied", edit the group permission and select lcr_delete permit. Log out and Log in from FusionPBX to get the new policies applied.


Automatic assignment uses a special average. In other words:

Fórmula de asignación de precios


  • n is the total number of carriers
  • i is the current carrier
  • buyingprice_i (prefix) is the buying price of carrier i for the prefix
  • channels_i is the number of channels you got from that carrier
  • sellingprice(prefix) is the suggested selling price


This script will overwrite all prices.

The application architecture within the /app directory of FusionPBX allows a very quick installation. Please follow the following steps:

Install ShadowPHP

ShadowPHP is encryption technology that Billing for FusionPBX uses. It is important to properly install this component.

  1. Download the server extension to the version of PHP running. The extension can be downloaded from
  2. Inside, you will find the downloaded extension file, copy it into the directory of modules. If you do not know the route, the php command php -rr "echo ini_get ('extension_dir');" will show you the route.
  3. Edit the php.ini file and add the lineextension =, some Linux distributions have php.d directory, you can put into a single file and add the line.
  4. Restart your apache server.

If you are in doubt about how to configure ShadowPHP extension, you will find this site very useful. There is a User Guide (in English) that explains step by step how to install.

Download and install the LCR and Billing for FusionPBX

The next step is to install the software as such. Please download both applications. The Billing application requires LCR. FusionPBX must be configured with a database backend such as MySQL (or MariaDB) or PostgreSQL. Follow the following steps:

  1. Download both applications.
  2. Copy both .tar.bz2 extension files into FusionPBX server. In this example we will assume that both files are in the /root directory and FusionPBX is installed in /var/www/html directory.
  3. Change to /var/www/html/app directory.  Here is where applications are. You can type cd /var/www/html/app.
  4. Expand both tar.bz2 files with tar -jxvf /root/lcr-crypted.tar.bz2 and tar -jxvf /root/billing-crypted.tar.bz2 commands.
  5. Run php /var/www/html/core/upgrade/upgrade_schema.php. The command will display various SQL statements that indicate that they are building the necessary tables in the database.
  6. Log into FusionPBX as super-administrator and go to the menu System-> Menu Manager, edit the default menu (default) and select the option Restore defaults.
  7. Go to the menu Advanced-> Group Manager and edit the permissions of the super-administrators group. Check that the permissions for LCR and Billing are checked.

At this time the application is ready to be configured.

About OKay

An IT Compnay whose mission is generating value with low cost of ownership.

We will offer you Linux based solutions that satisfy your needs. We focus on VoIP & Linux, but we are up for any other challenge you may want to bring.