The OpenSIPS Control Panel accompanied OpenSIPS already for some time. And besides the sub-version aiming to align to the OpenSIPS versions (i.e. 8.3.1), the OpenSIPS Control Panel had its own evolution, reflected in the major version. For example, the last major boost was version 8, were the front-end part was re-design with a new modern look and the generic input forms with data validation were added.
Now, after more than 6 months of intensive work, a new step was completed: the 9th major version. For now we have only 9.3.2 version matching OpenSIPS 3.2, but looking forward for the upcoming OpenSIPS 3.3 ;)!
So, what is so exciting about this new 9th version?
If the in the previous version the entire configuration was done via local files, the 9th version takes a new approach – the entire OCP configuration and settings are done via WEB interface and is stored in DB.
This addresses two major issues – first the effort and complexity required to configure the OCP (and how prone to errors this process is) and secondly the need of sharing the OCP configuration between instances (for example in the case of OpenSIPS clusters).
In terms of configuration, there are two major areas in OCP – the configuration of the OpenSIPS instances to work with and the configuration of the tools you use in OCP.
Configuring of the OpenSIPS instances
A new OCP admin tool was created for this, the Boxes one – check the Admin tool drop down selector in the top right corner. This tool allows you to fully manage the OpenSIPS instances to be operated from OCP, as well as their grouping into Systems.
Configuring the OCP tools
One of the most valuable addition in version 9 is the ability to configure the per-tool settings directly via the web front-end. Each tool has its own Settings panel (accessible via the gear-icon in the right side of the tool header) with its own specific settings.
Each setting comes with a data type, data validation, a tool tip, default value and optionally some samples (for more complex settings).
With this approach the available options / settings of a tools are more visible and easy to work with. And the settings may target different areas, like DB settings, display setting, behavior settings or customizations.
For example, the settings may allow the User Management or CDRviewer tools to define extra columns to be handled in the subscriber table. So easy to extend.
How does this look like?
The tools settings are also used for simplifying the tools usage. There are several tools operating with group/set concepts, like Addresses, Dialplan, Dispatcher or Dynamic Routing. So far, such tools were requiring you to manually add/edit the group/set’s ids, making it a memory challenge and prone to error. Like what was the set ID for the dispatching media servers? or what is the Dynamic Routing group/set ID for the PSTN gateways?
For this problem, in OCP version 9, each tool may define how it should work with the group/set’s IDs (as input or editing data) – are they pre-defined, stored in DB, or manually inserted?
The charting support (for the OpenSIPS statistics) was long overdue for an upgrade.
With OCP version 9, the charting engine is provide by the D3.js engine – this enables dynamic / interactive charts, with zoom in and out, re-scaling, data gap detection, realtime data feeding and many other useful features.
Something even more useful is the ability of plotting multiple statistics on the same chart – for example to see the number of registrations together with the number of calls. Such custom multi-charts may be created via the settings panel of the tool.
As the plotted statistics may have completely ranges when comes to values (like the memory related is in the millions range, while the ongoing calls may be in hundreds/thousands), the multi-chart provide several ways of “scaling” the statistic’s values, like (a) using the same scale for all or (b) individually scale.
The Tviewer support is already present in OCP for some time and it proved to be a valuable engine that allows the creation of new tools as handlers of a custom table (with operations like view, add, edit, delete).
The main difference from OCP version 8 to version 9 is that the Tviewer engine was moved in OCP core and it now shared between all the tools built on top of it, instead of duplicating the Tviewer code each time a new tool is constructed.
This approach makes much easier to built a new Tviewer based tool, just setting up some file. On the developer side, having a single copy of the code, makes it much easier to maintain and develop further.
Still part of version 9, we have some interesting item still under work. This is the dashboard support, with dynamic and configurable widgets that may be provided by existing tools or created by the OCP users.
The OCP version 9 is mainly the result of heavy work of our new team member, Daniel Airinei, who did a great effort into researching, testing, investigating and digging into old OCP code, everything with the single goal to get an awesome OCP 9 done! GG!!!