One more year, one more evolution cycle, one more OpenSIPS major release. So let me introduce you the upcoming OpenSIPS 2.4 .
For the OpenSIPS 2.4 release we decided to focus on the clustering abilities. Today’s VoIP world is getting more and more dynamic, services are moving into Clouds and more and more flexibility is needed for the application to fully exploit such environments. But let’s pin point the main reasons for going for a clustered approach :
- scaling up with the processing/traffic load
- geographical distribution
- redundancy and High-Availability
For the OpenSIPS 2.4 we laid down a roadmap that addresses the clustering both from the clustering engine itself (the underlayer) and from the functionalities that will perform on top of the clustering layer, to share data and state.
With OpenSIPS 2.4, it will never be easier to built a consistent and powerful clustered solution:
- clustering engine – enhances the capabilities of controlling the cluster topology, like re-routing for bypassing broken links, dynamic joining of new nodes, support for multiple capabilities per node, data syncing between nodes and many more;
- distributed user location – this is a very complex topic as it exceeds the simple concept of data sharing. By the nature of the data (the user registrations), you may have different constraints on how data is roaming in a cluster – registrations may be tied to a node due NAT or TCP constraints. Even more, a sharding aspect must be addressed when looking at distributing the pinging effort across the cluster. So, multiple solutions are viable here, depending on what is to be achieved (scaling, redundancy) and what are the network constraints – see a detailed presentation of the available solutions;
- distributed presence server – quite similar (but less complex) as the distributed user location, a distributed presence server provides a consistent, but distributed way of sharing presence information – SIP entities may publish data via different nodes in the SIP cluster, while the subscribers may fetch presence data via multiple various nodes. Two approaches are under work : (a) a cluster built around a noSQL DB based as primary data storage and (b) a cluster exclusively relying on OpenSIPS for data sharing;
- anycast support – to be able to build a fully-flavored anycast support (addressing both redundancy and balancing) requires OpenSIPS to replicate/share transaction state across the nodes in the cluster (nodes sharing the same anycast IP). Depending on the nature of the replication (full transaction versus transaction meta-data) a full anycast and light anycast support will be available – here is a detailed description on the anycast support;
- clustered media relays – as OpenSIPS has the ability to work together with several flavors of media relays (such as RTPproxy, RTPEngine, MediaProxy), the clustering support will help OpenSIPS do distributed load-balancing over the relays – even if a relay is used by multiple nodes in the cluster, all the nodes will share information on the load on the relay, to avoid overloading or idle time;
- distributed call center – an agent is able to register with multiple queues on different nodes on a cluster. Still, all the queues do share the status / availability of the agent and its statistics for call distribution;
- custom clustering – the OpenSIPS clustering underlayer provides at script level the ability to broadcast (in the cloud) or send to a given node a custom message/action (with replying possibility) – this is a very flexible and powerful way to build your custom distributed functionality directly at script level.
And because we started on the integration path with OpenSIPS 2.3, and because we did it well, we decided to push forward on this path with the 2.4 version as well:
- more Homer integration to be able to report TCP statistics, DB events and media relay events via HEP;
- SIPREC integration for standard call recording. The new SIPREC module provides a standard and transparent (for the call parties) way to do call recording against an external recorder like Oreka provided by Orecx;
- more FreeSWITCH integration in order to capture the call-events (DTMFs, call status) from FreeSWITCH into OpenSIPS script or for being able to control a FreeSWITCH call from OpenSIPS script via ESL
- Asterisk flavored Load-Balancing for a more realistic and accurate traffic balancing over Asterisk clusters (as the load information is fetched in realtime from Asterisk);
The timeline for OpenSIPS 2.4 is:
- Beta Release – 12-16 March 2018
- Stable Release – 23-27 April 2018
- General Availability – 1st of May 2018, during OpenSIPS Summit 2018
To talk more about the features of this new release, a public audio conference will be available on 21st of November 2017, 4 pm GMT , thanks to the kind sponsorship of UberConference. Anyone is welcome to join to find out more details or to ask questions about OpenSIPS 2.4 .
This is a public and open conference, so no registration is needed, but if you want to announce your intention to participate, please let us know 🙂