Asterisk management module

Management module for Asterisk PBX with built-in HTTP REST server and HTTP REST client.

https://github.com/zeppelinen-devops/salara/

Background

In the course of various CRM-PBX integration projects we had to develop various custom API servers and clients required to provide data exchange between Asterisk and various external systems

By default Asterisk PBX can be managed via AMI, Asterisk Management Interface, which is very simple but has very limited features, thus we had to use cumbersome combinations of Asterisk, AMI-server and additional integration services connected to customer systems. Of course such solutions are difficult to support.

One of the main limitations we faced on one of the projects was AMI processing performance. AMI basically represents a simple text stream is easy to parse but on a high-load call-center PBX installation with hundreds of simultaneous calls we experienced major performance issues caused by thousands of events per second that Asterisk sent to AMI and that had to be parsed in real time.

Another limitation we faced was performance loss caused by the need to pipe simple task, like route the call according to CRM-server response via the chain consisting of Asterisk AMI server, AMI client and some integration service connected to CRM.

Solution

To solve the problem we developed custom Asterisk server module that can be easily customised according to the project needs.

Module provides two main features:

  • builtin HTTP client that connects to external CRM or any other REST-enabled system, requests call route or any other action to perform on call
  • builtin HTTP REST server that accepts incoming call management requests
  • external text configuration file that simplifies module configuration

Highlights

We achieved high performance and scalability by filtering all unnecessary data on the Asterisk core level.
Module allows us to develop various call management features in a matter of days and had proved to be a flexible base for Asterisk-based call-center installations.
Direct access to built-in Asterisk memory structures allows us to provide features simply unavailable via tradional means.

As a contribution to Asterisk developers community, source code is published on GitHub.

Other projects

Thank you for your message!
We will get in touch with you regarding your request within one business day.

Contact Us

Maximum size 10 Mb