Voice over IP

Can Open Source PBX be scaled to carrier grade?

As we know, open source PBX (Soft Switch – like Asterisk, for example) has already been accepted as a stable and preferred voice switch for enterprises and business establishments. In this article, we will see if the open source PBX meant for enterprises can be scaled to carrier grade – to handle protocols like SS7 after analysing the current limitations of current open source PBX which are meant for enterprise applications. We will also have a look at Woomera protocol which enables such a scaling through a distributed voice switch model.

Basic Components of an Enterprise PBX:

An enterprise PBX consists of a Voice Switch (Soft Switch or Hardware based), TDM Gateway modules (In the form of PCI based cards or proprietary hardware in other cases), SIP Phones and an IP Network. This is the simple picture. The Soft Switch handles all the media and control attributes like call placement, call hang up, registering users etc. The TDM Gateway modules provide an interface to connect the analog trunk lines (FXO), analog extensions (Analog phones), Digital Trunk lines (E1, PRI, ISDN etc) to the IP based Soft switch. The SIP Phones have RJ-45 network connectivity and are used for receiving and dialling calls by the individual users and the IP Network provides the back bone connectivity to physically interconnect all the different components of the enterprise PBX together. The PBX might also consist of separate modules for voice logging, Interactive Voice Reponse system etc or these modules might be built in to it.

There are enterprise PBX which are based on open source technologies and are licensed with GPL. We will refer such Open source PBX as Enterprise PBX in this article.

A carrier grade PBX (Voice switch) also consists of all these modules at a basic level but would require some more features like advanced billing, SMS etc. But on the connectivity front, the carrier grade PBX would need to support much more protocols (Like SS7 etc) than an enterprise PBX and it also needs to support much more calls (In thousands, than the couple of hundred calls supported by enterprise PBX). Such a carrier grade PBX is not only required for smaller Telco companies handling subscribers but would also be required for bigger enterprises spanning multiple continents.

Limitations of Enterprise PBX upgrading to Carrier grade:

¤ An enterprise PBX is generally a single server architecture. All the components like the media gateway, TDM interfaces, call control etc. are done by the same server. While this is good at the enterprise level, and is more cost effective, it is not enough to scale to the requirements of carrier grade.

¤ When more than 200-250 calls are being pushed simultaneously in a single enterprise PBX, generally the performance downgrades due to context penalty as there are a lot of channels that need to be handled simultaneously, which a single enterprise PBX is not expected to handle.

¤ There is a visible reduction of performance in an Enterprise PBX when TDM trunks are involved majorly, as all these analog/digital channels need to be translated to IP before processing and then back to TDM formats after processing. SIP calls are lighter than TDM, in this context.

¤ Usage of software codec (for compression etc) for multiple channels also reduces the performance. This can be offloaded to a hardware based dedicated processor, these days.

¤ Previously, the echo cancellation was performed in software and this was taking up a lot of processing power. But nowadays there are hardware based echo cancellation modules which take up the processing functions of the server for echo cancellation when analog/digital trunks are connected to the IP systems.

¤ There is a problem of interrupt load as the drivers require the hardware manufacturer to give interrupts. The frequency of interrupts is as less as 1 ms. That means 1000 interrupts in a single second, which creates a lot of load. But the PBX itself generally works at a higher level (accepting interrupts at a higher interval). So, a part of this problem can be sorted out by giving 10 or 20 interrupts together at a single time. But still, there is some load due to these interrupts which are essential when a real time service like voice run in a non-real time server operating system.

So, as the above dis-advantages point out, just pushing more TDM Trunk interface cards that can handle more PRI/E1 trunks in to a single server may not help.

A glimpse of SS7 protocol:

It is a TDM based trunk protocol for carriers. It defines the procedures by which network elements in the PSTN (Public Switched Telephone Network) exchange information over a digital signalling network to effect wireless, cellular and wire-line call set up, routing and control. In SS7, a single D channel controls hundreds or even thousands of voice channels).

An enterprise PBX does not support SS7 protocol, which needs to be supported when it is upgraded to support carrier grade telephony applications.

Distributed Carrier grade open source PBX:

Before going to the distributed PBX architecture to support carrier grade applications, we will have a look at the Woomera protocol.

The Woomera protocol is a open source protocol which allows to distribute multiple open source PBX. It works on the local LAN to distribute the open source PBX. One of the main advantages of Woomera protocol is the fact that it allows to decouple the TDM hardware from the open source PBX. So, it allows to split the open source PBX in to multiple components and hence allows each component to be hosted in a separate server. The Woomera protocol coordinates between all these individual components to make them work as a single virtual server but with a much higher call handling capacity.

There is no particular fixed configuration for such scenarios. For example, there could be one server for open source PBX, one server for Woomera, the TDM modules in a separate server and SS7 stack in a separate server.

Such an arrangement has a lot of advantages. It enables an objected oriented approach as code each component can be kept separately and re-used when required. This increases the stability of the system as the main open source software PBX component does not crash due to a coding error in SS7 application stack, for example. There are multiple open source PBX voice switches which can handle much more calls in this scenario as the load is being distributed. The Kernel context penalty is also reduced by using a per span kernal device instead of a separate device for each channel.

It also allows to use a separate hardware based gateway for media and control signals. This allows for translation between multiple protocols like SS7, SIP, IAX, H.323, T.38 etc. It becomes a sort of an abstract API to accommodate any additional telecom control signalling as well.

The Woomera server can also load balance the calls and distribute calls among the multiple open source PBX for better efficiency from each of them. In this way, a High Availability configuration is also achieved.


You could stay up to date on the various computer networking technologies by subscribing to this blog with your email address in the sidebar box that says ‘Get email updates when new articles are published’.