Open Source Media Gateway Controller

Powered by POCO
  • You are here: 
  • Home



The News can be found on Wiki


The SmallMGC is a open source Media Gateway Controller for access and residential gateways. In the future also trunking gateways should be supported.

A Media Gateway Controller is also called a Softswitch and is quite important for the Next Generation Networks (NGN). In the NGN networks the MGC (Softswitch) replaces the old class 5 and 4 TDM Switches.The MGC contains all subscriber handling and some service , taxing. call control functions and PSTN interworking (trunking gateways). See also Wikipedia for NGN networks

But already the MGC is something of the past with the IMS definitions defined first by the 3GPP for mobile networks, but was enhanced by ETSI/TISPAN to support also the fixed lines. Some introduction can be found again on Wikipedia Wikipedia for IP Mulimedia System (IMS) But the picture there is a little bit dated, therefore the split of MGCF and AGCF is not shown

IMS is an evolved NGN network design, which also restructures the the responsibility of the Softswitch because to be more flexible it seperates the controlling function of the access gateway and the access to other networks (trunking gateways) in two different functions. The access will be handled by the AGCF (Access Gateway Control Function) and the MGCF (Media Gateway Control Function).

There it seems to be a good place for the SmallMGC in this function because it can control several Gateways and provides service to subscriber if even the uplink is lost. For such case which I called Standalone Mode it is essential that still trunking gateways can be supported so that also other subscriber not connected to the IMS (NGN) network can be reached.

Additionally to this main use it will also function as Testtool to support the development of gateways. It will substitute a real softswitch and will contain the possibility to emulate the behavior of different softswitches. Which helps gateway provider to be interopable with different softswitches.

At the moment for every softswitch behavior some state machines in C++ must be designed and implemented. But this is clear that it must be improved so that different behavior can be designed by an easy state machine design (scripting and not writing C++ code)