Customization of Billing report on Issabele (Asterisk based IP-PBX)

Customization Issabele (Asterisk sourcecode)

Issabele (earlier known as Elastix) is well known open source Asterisk based IP-PBX that is available for VoIP consumers for running small to medium scale enterprise voice and video network infrastructure to support upto 10k collaboration endusers and telephony endpoints to meet the need of digital infrastructure of an organisation which is looking to move from traditional legacy PSTN network to Voice over IP mainly with the use of SIP trunking and IP-PBX. Lot of customers use Issabele IP PBX because of the open source asterisk baseline, which help them to integrate not only 3rd party applications but also the ease of doing customization in the graphical user interface and basic asterisk parameters in order to achieve desirable outputs and user-friendly results.

In today's blog, i will go through the steps to perform the customization in the in-built Billing report of  Issabele IP PBX. In today's customization issabele demonstration i will be using below specifications and version of asterisk and Issabele as shown in the snippet below; (Issabele Asterisk version we are using is 11.25.3)

Now to start with customization issabele , let me show you how actually the built-in Issabele billing report looks like,

Here is the snapshot i have taken from my installed Issabele 4 , you can see it has most of the fields already populated in the main table like basic source/destination information, account code,Cost, Rate applied , Date and time, Destination channel,Rate Value etc.

In addendum, if we look at the search menubar in  the issabele 4 , you can see below is the search menu that is in-built in the Issabele billing report.


Secondly, Below is the standard/default search parameters/criterias of billing report which mainly includes seven key parameters from mysql CDR database i.e
1.Rate Applied
2. Duration of Call
3. Rate Value
4. Source
5. Destination
6. Dst. Channel
7 Account Code

Now Lets see the requirements of Issabele Customization Billing report (Asterisk)

Lets Say, I need to add one more parameter like "Cost Center" in search menu. So in total will be Eight search parameters now as shown belowl

  • Rate Applied
  • Duration
  • Rate Value
  • Source
  • Destination
  • Dst. Channel
  • Account Code
  • Cost Center

As we discussed above, below is the the default column for billing report result


Customization  Requirements :

A.    Need to create fix Cost Center column

B.    Need to add menu : add new menu at below Search layout Picture B1. The menu is Add . So when user click that Add menu then user can add new column and description, then new custom Column will created as show picture B2

Picture B1.

Picture B2

Lastly, regarding the cost center, if user enter the cost center ID (character or number) then clicked show

Then the Export report will be appeared as below :


Note: Cost Center ID (as example : Finance123) will be enter under DID Description table as shown below :


So you have to link the cost center ID and DID description. Lets say These all are the main requirements provided  by customer to you for the implementation of customizationin-built billing-report of Issabele.

Now you have all the basic requirements from the client and it is the time when you have to plan out the Design and implementation process. As per the information above you can decode that client not only want some GUI custom addition on that billing-report page but also want to extract the end report after doing the editing in dynamic tables, so how would you approach this problem? What steps you gonna take in order to plan out the complete customization activity. I will discuss the solution in our next blog but i want you guys to try it yourself and let me know in comments how would you proceed with the solution and design phase. I will be excited for your inputs. Also do let me know if any query/comment or question regarding the same.

**Spoiler for Pro's**

For Beginners (In the end , let me give you some hints so that you can kick start the activity, but it may be spoiler for Pros as for you guys it become peace of cake :) ) Let me give you some brief points that you need to take care before deep dive into the implementation part.

Get your Tools ready- For any technical professional your tools are the software and applications that help you to perform your task or decode the language... so as Issabele is asterisk based which is running on Linux baseline so make sure you get your Linux commands handy- basically you should know below things-

a) how to create a directory on linux,

b) how to delete a file from directory

c) command to view the file on CLI

d) copy the file in directory/ or from one to other

e) editing of file (which include addition/updation of any file value on CLI)

Other thing i recommend is the use of SFTP/FTP application like FileZilla on your system- this will help in uploading/downloading files on your local system.

Lastly as you will be playing with some PHP or Javascript or HTML code.. you need a text editor- Personally i like Notepad++ or Sublime Text

SSH application like Putty, my preference would be latest version of XShell

Get these installed on your system , Now your system is ready with all the tools/applications that you may need to perform this Issabele report customization activity.

Next Step, would be to chalk out the plan on your diary or onenote,  This will be your as-built document which provide you direction throughout the completion of your project. Jot down all the points that client asked to update. Note down how many GUI pages it gonna affect or how many pages on Issabele website need to get update.

Pro Tip: Before making any change on the file or code, make sure you copy that original file either on your local system or rename it on the same directory folder of Issabele with updating it name like from "file_name" to "file_name_original". This will  be helpful in restoring the default configuration settings on the page if something gets broke during the process of code implementation on the Issabele Asterisk CLI or making any HTML changes on the page. It will ensure we have the original backup at all time during the activity and if something goes wrong, you can revisit the backup files and make the necessary update to get that fix.

So guys, i hope you get some traction regarding Issabele customization and moreover i have given you a custom task to try the solution of this problem.

I will post the solution steps in my next blog and will provide the link on this page as well.

So stay tuned and Stay safe!!

Thanks for your time :)

Here is the link of the blog -->> Customization of Issabele Solution