About |
About.Version-Overview-3-6-0 HistoryHide minor edits - Show changes to markup May 21, 2025, at 05:28 PM
by
- Changed line 19 from:
The new [[https://opensips.org/docs/modules/3.6.x/sockets_mgm.html|sockets management (or socket_mgm) module is introduced by OpenSIPS 3.6 in order to provide support for dynamic sockets. This module allows sockets to be provisioned via a database and refreshed by OpenSIPS at runtime, eliminating the need for service interruptions. Through this module, OpenSIPS offers a flexible and efficient way to manage sockets dynamically while maintaining service continuity.\\ to:
The new sockets management (or socket_mgm) module is introduced by OpenSIPS 3.6 in order to provide support for dynamic sockets. This module allows sockets to be provisioned via a database and refreshed by OpenSIPS at runtime, eliminating the need for service interruptions. Through this module, OpenSIPS offers a flexible and efficient way to manage sockets dynamically while maintaining service continuity.\\ Changed line 44 from:
to:
Changed lines 48-49 from:
to:
OpenSIPS 3.6 comes with a major re-work of the SIP branching management (an critical asset for doing parallel forking). The first step was to unify the message and transaction branches, so you can correlate and control them before and after the SIP signalling. The next steps were to enhance the branch support to allow the addition of custom per-branch data - attributes and flags. And the final step was to add support for inter-branch data access - to be able to access data from other branches, to dynamically search for branches and interact with their data. Changed lines 52-53 from:
The ability to do fine but complex changes over the SDP at opensips.cfg level is as important as doing it for the SIP signaling. Such ability has been on our radar for quite some time now, as it was initially targeting the OpenSIPS 3.2 release. to:
The ability to do fine but complex changes over the SDP at opensips.cfg level is as important as doing it for the SIP signaling. Such ability has been on our radar for quite some time now, as it was initially targeting the OpenSIPS 3.2 release. The OpenSIPS 3.6 release addresses these two main problems: (A) the need of pushing and merging changes over the SDP from different modules; and (B) lack of granular and structured access (read write) to the SDP.\\ Changed line 56 from:
--- to:
Changed lines 59-62 from:
There are many many other changes with this release, and you can read about all of them in this detailed listing. to:
There are many many other changes with this release, and you can read about all of them in this detailed listing.
May 21, 2025, at 05:18 PM
by
- Deleted lines 31-32:
AWS integrationChanged lines 33-44 from:
to:
The REDIS module now has support for column-oriented cacheDB operations, using Redis Stack Server features such as RedisJSON and RediSearch. This now allows cachedb_redis to be used as backend for the user location (usrloc) module, in both Federation and Full-Sharing modes of operation. The Redis server-side JSON support is auto-detected, with appropriate startup logs being displayed (zero-configuration). AWS integrationThe 3.6 version brings an even smoother integration with AWS environment, new AWS services are to be natively supported by OpenSIPS. Here we have the noSQL database DynamoDB and queuing service SQS. Janus integrationThe new JANUS module is a OpenSIPS connector for the Janus websocket protocol. It can interact with one or more Janus servers either by issuing commands to them, or by receiving events from them. Added line 49:
Changed lines 51-59 from:
to:
The ability to do fine but complex changes over the SDP at opensips.cfg level is as important as doing it for the SIP signaling. Such ability has been on our radar for quite some time now, as it was initially targeting the OpenSIPS 3.2 release. --- AllThere are many many other changes with this release, and you can read about all of them in this detailed listing. May 21, 2025, at 04:56 PM
by
- Changed lines 14-15 from:
Operational aspectsto:
Operational enhancementsAdded lines 18-21:
Up to 3.6 version, OpenSIPS supports only statically defined SIP sockets. IF you need to add more sockets, you need to restart. This is an inconvenient in certain service scenarios, like SBCs or Trunking ones. In such cases, new sockets may have to be added (due to interconnection needs), while restarting is not the best option (due to the high volume of traffic). Added lines 24-25:
The new RTP.io module provides an integrated solution for handling RTP traffic within OpenSIPS, enabling RTP relaying and processing directly inside the OpenSIPS process. This eliminates the need for external processes such as RTPProxy, resulting in a more streamlined, efficient, and manageable system for certain use cases. This means the configuring and operation simplifies. Traditionally, OpenSIPS only handles signalling, offloading media operation to the external relay. However in some situations using external relay may be undesirable from system complexity point of view and others, so having an option to handle it internally may be useful. Added lines 28-31:
The new config module is designed to simplify runtime configuration management in OpenSIPS by introducing a dedicated $config(...) variable. This variable provides easy and direct access to configuration values from within the OpenSIPS script, significantly reducing scripting complexity. Changed line 36 from:
OpenSIPS Scriptingto:
Operational easinessMay 21, 2025, at 04:37 PM
by
- Changed lines 8-16 from:
Bits and pieces of the IMS (IP Multimedia Subsystem) topic were part of the previous OpenSIPS release, but this 3.6 fully focused on the IMS part. Considering the traction and need of IMS solutions, the implementation of a consistent and large IMS support in OpenSIPS was a mandatory step in order to answer to the needs of the industry.
to:
The 3.6 version enjoyed a special attention as (a) it will be an LTS release and (b) it will be the one ending the 3.x series. So, closing the circle with the 3.0 release which started the 3.x series, the 3.6 release focuses on 'operational improvement'. As a note, 3.0 was focused on DevOps. The 'operational improvement' translates into introducing and enhancing in OpenSIPS features / capabilities that (1) improve and (2) simplify the operational activities when comes to running and managing OpenSIPS. Changed lines 14-45 from:
IMShttps://blogopensips.files.wordpress.com/2023/11/opensips-3.6-ims-dia.png The IMS topic is a very large and complex one. And the goal here was to design and implement an IMS support that is truly able to provide solutions for the industry. So, a quite extensive stage of exploring, understanding and designing on the IMS ecosystem was required in a first stage. AKA digest authenticationPresent in the S-CSCF, the AKA authentication mechanism (RFC 3310) is implemented by the new AUTH_AKA module. Its complex interaction through the Cx/Dx Diameter interface is provided by the new AKA_AV_DIAMETER module, responsible for fetching and managing the authentication vectors required by AKA. IPSEC supportPresent in the P-CSCF AAA supportPresence supportSQL operationsLaunch DarklyMessage QueueMiscellaneous but importantto:
Operational aspectsDynamic SocketsRTP.ioConfig variablesAWS integrationEnhanced REDIS supportOpenSIPS ScriptingUnified branching supportStructured SDP manipulationMay 09, 2024, at 04:42 PM
by
- Changed lines 27-32 from:
The IMS Working group compiled a Scope Of Work, which helped in laying down the actual requirements. The group decision was to tackle, at this first stage, the CSCF components, together with its interfaces. to:
The IMS Working group compiled a Scope Of Work, which helped in laying down the actual requirements. The group decision was to tackle, at this first stage, the CSCF components, together with its interfaces. AKA digest authenticationPresent in the S-CSCF, the AKA authentication mechanism (RFC 3310) is implemented by the new AUTH_AKA module. Its complex interaction through the Cx/Dx Diameter interface is provided by the new AKA_AV_DIAMETER module, responsible for fetching and managing the authentication vectors required by AKA. IPSEC supportPresent in the P-CSCF AAA supportPresence supportMay 09, 2024, at 04:32 PM
by
- Changed lines 25-27 from:
This task was undertaken by the IMS OpenSIPS Working Group (IMS OWG), a gathering of people with common inters in IMS, working together to draft, design and implement the IMS support in OpenSIPS. to:
This work was undertaken by the IMS OpenSIPS Working Group (IMS OWG), a gathering of people with common inters in IMS, working together to draft, design and implement the IMS support in OpenSIPS. May 09, 2024, at 04:27 PM
by
- Added lines 20-26:
https://blogopensips.files.wordpress.com/2023/11/opensips-3.6-ims-dia.png The IMS topic is a very large and complex one. And the goal here was to design and implement an IMS support that is truly able to provide solutions for the industry. So, a quite extensive stage of exploring, understanding and designing on the IMS ecosystem was required in a first stage. May 09, 2024, at 04:21 PM
by - May 09, 2024, at 04:04 PM
by
- Changed line 4 from:
to:
https://blogopensips.files.wordpress.com/2023/11/opensips-3.6-ims.jpg Changed lines 8-10 from:
Various topics were addressed by the past releases, but most of the work with regards to each topic was mainly covered within a single release, so limited in terms of allocated resources (time and man-power). And some of these past topics are actually wider than what we managed to deliver. This is why the OpenSIPS 3.6 addressed the consolidation of various past topics, to complete or even expand them. But one of the most important sides of this consolidation process is the testing of OpenSIPS, from the performance and conformity perspective. This testing was a long overdue task that definitely needs to be addressed. to:
Bits and pieces of the IMS (IP Multimedia Subsystem) topic were part of the previous OpenSIPS release, but this 3.6 fully focused on the IMS part. Considering the traction and need of IMS solutions, the implementation of a consistent and large IMS support in OpenSIPS was a mandatory step in order to answer to the needs of the industry. Added lines 11-16:
The IMS topic is a large one, transcending the SIP protocol and the scope of OpenSIPS. So, the OpenSIPS 3.6 worked out the parts of the IMS ecosystem which are based or related to SIP, of course.
Changed lines 19-20 from:
B2B enhancementsto:
IMSChanged lines 25-30 from:
SIPssert testing enginePerformance and profiling testingLoggingto:
SQL operationsLaunch DarklyMessage QueueDeleted lines 32-33:
More Media relayingMay 17, 2023, at 01:29 PM
by
- Changed lines 8-9 from:
https://blogopensips.files.wordpress.com/2021/12/opensips-3.6-im.jpg The instant messaging is evolving and gaining more and more importance. This happens in both worlds of VoIP/ITSP and IMS/MNO/MVNOs - and the overlapping and mixing of these worlds in increasing each year. The OpenSIPS 3.6 is to address more, in depth, the topic of Instant Messaging, in the context of SIP. And this is done through two major perspectives: from the Unified Communication perspective, by aligning IM with the voice and presence capabilities in OpenSIPS, and from the IMS perspective, mainly as support/integration with RCS (Rich Communication Services). to:
Various topics were addressed by the past releases, but most of the work with regards to each topic was mainly covered within a single release, so limited in terms of allocated resources (time and man-power). And some of these past topics are actually wider than what we managed to deliver. This is why the OpenSIPS 3.6 addressed the consolidation of various past topics, to complete or even expand them. But one of the most important sides of this consolidation process is the testing of OpenSIPS, from the performance and conformity perspective. This testing was a long overdue task that definitely needs to be addressed. Deleted lines 12-14:
Learn more from this blog post about the OpenSIPS 3.6's vision on Instant Messaging in the IMS and Unified Communication ecosystem
Changed lines 15-26 from:
Messaging sessions or MSRPClustering engineUnified communicationIMSStatus Report supportTCP boostto:
B2B enhancementsSIPssert testing enginePerformance and profiling testingLoggingMiscellaneous but importantMay 18, 2022, at 04:05 PM
by
- Added lines 8-29:
https://blogopensips.files.wordpress.com/2021/12/opensips-3.6-im.jpg
The instant messaging is evolving and gaining more and more importance. This happens in both worlds of VoIP/ITSP and IMS/MNO/MVNOs - and the overlapping and mixing of these worlds in increasing each year. The OpenSIPS 3.6 is to address more, in depth, the topic of Instant Messaging, in the context of SIP. And this is done through two major perspectives: from the Unified Communication perspective, by aligning IM with the voice and presence capabilities in OpenSIPS, and from the IMS perspective, mainly as support/integration with RCS (Rich Communication Services).
Messaging sessions or MSRPClustering engineUnified communicationIMSStatus Report supportTCP boostMore Media relayingMay 18, 2022, at 03:51 PM
by - December 19, 2019, at 07:40 PM
by
- Deleted lines 7-93:
https://blogopensips.files.wordpress.com/2019/12/opensips-3.6-crafting.jpg Routing calls and handling large volume of traffic is not a challenge anymore for OpenSIPS. The upcoming 3.6 release will focus on complex call crafting, basically on increasing OpenSIPS's ability to create and handle complex calling scenarios where multiple SIP calls are mixed and able to interact. Or shortly said, the 3.6 release will address the Class 5 specific calling features and how to control such calling features via APIs. As usual, all the OpenSIPS major releases are in depth presented during the OpenSIPS Summit yearly events. So, the 3.6 release is the star of OpenSIPS Summit in Amsterdam, May 2020. Class 5 calling ingredientsWithout actually using a Back2Back model, but simply operating with calls (dialogs, UACs or UASs), many complex class 5 calling (and call mixing) scenarios may be scripted. Calling APIA new OpenSIPS module, placed on top of dialog module, will allow remote control over the calls going through OpenSIPS. The module will expose a simplified set of commands (API like) for setting up new calls, for answering and terminating calls, for transferring or putting on-hold calls - all these without interacting with the end-devices, but triggering and handling the action only from the OpenSIPS (as proxy) level. Call mixingAnother new OpenSIPS module, that is able to manipulate calls/dialogs going through OpenSIPS, along with UAC/UAS dialogs (call originated or terminated into OpenSIPS), with the sole propose of mixing the RTP media between these multiple flows. The idea is to make possible the injection of streams of media from / to proxied calls, with the help of auxiliary calls initiated by OpenSIPS. Typical example is to play media within an existing call/dialog with nothing more than simple re-INVITEs - OpenSIPS will initial a new sip call to a media server, in order to get the RTP stream for the playback and it will push it into the proxied call by triggering in-dialog re-INVITEs. Per-call hooksAs we already have for transactions, the dialog module will allow the script writer to set, in a per-dialog fashion, script routes to be triggered by various dialog events. Similar to t_on_failure(route), you can do dlg_on_timeout(route) to have a route called when the dialog lifetime is exceed. In the route, you may decide to extend the lifetime, to terminate the call or do any other logging. We can foresen dlg_on_answer(route), dlg_on_terminate(route)' (and more) triggers, which will give a better interaction and control over the ongoing calls. SDP topology hidingDue to the specificity of class 5 scenarios, there is a real need to completely decouple the SDP's (not only from IP/port perspective) from the caller and callee side, like hiding the originator or overwriting the session name and version. DTMF supportFor both RTProxy and RTPEngine, OpenSIPS will be able to report to the OpenSIPS script the DTMF events sampled from the passing RTP. This will make possible the implementation of simple IVRs and/or authentication via DTMF with nothing more than OpenSIPS and the media relay. Extended BLF supportIn Class 5 services, BLF is an important feature. Besides working out clustering support for BLF, an important task is reworking the BLF implementation to be call-branch aware, to be able to properly report the call events in parallel calling or call hunting scenarios. Dialog module enhancementsWe are looking at a good set of additions for the dialog module, like:
Back-to-back supportThe existing B2B implementation in OpenSIPS has some limitations, so we are looking to overcome via some major rework here. Script driven B2BInstead of using the XML scenario to drive the B2B logic (mixing between the calls), we want to use the OpenSIPS scripting for this purpose. This will eliminate all the limitations of the XML language (logic and action) and it will tremendously increase the level of integration of the B2B engine with the rest of the OpenSIPS functionalities. Shortly, more complex B2B logic will be possible, and also better integrated with the rest of OpenSIPS. B2B clustering supportTo be 100% production ready, an High-Availability support maybe available for the B2B engine. This will be achieved by adding clustering and replication support for the B2B calling. B2B contextAn important improvement of the B2B engine will be the addition of the B2B context, to help in correlating all the entities (UAC, UAS) part of a B2B session, to attach custom data to the entities and to exchange such data between the entities. This will help with Accounting and media relaying support for B2B, but also with building custom data sharing inside a B2B session (or between the sessions). Call CenterFor 3.6, we are looking at:
Device Feature Key Synchronization (DFKS)DFKS support is planned for OpenSIPS 3.6. This will help to keep feature settings in sync between multiple device and application servers, an essential need in a class 5 / PBX environment. STIR/SHAKENDealing with Robocalling and CLI spoofing becomes a must when building advanced calling solutions. The support for STIR/SHAKEN will be part of OpenSIPS 3.6, providing multiple usage models, in terms of how the certificates are to be handled during the verification process. Also a flexible approach (to the standards) will be able to cope with all the potential changes derived from the adoption process (of the standard by the providers). Push Notification (RFC8599)The existing PN support will be improved and aligned to the requirements as per newly adopted RFC 8599. Besides the notification itself, we need to address some particularities in contact registration, derived from privacy concerns or device identification concerns. noSQL adds-onThe DB layer needs a constant attention, so here is the plan for 3.6:
December 19, 2019, at 07:28 PM
by
- Changed lines 24-25 from:
Another new OpenSIPS module, that is able to manipulate calls/dialogs going through OpenSIPS, along with UAC/UAS dialogs (call originated or terminated into OpenSIPS), with the sole propose of mixing the RTP media between these multiple flows. The idea is to make possible the injection or stream of media from / to proxied calls, with the help of auxiliary calls initiated by OpenSIPS. Typical example is to play media within an existing call/dialog with nothing more than simple re-INVITEs - OpenSIPS will initial a new sip call to a media server, in order to get the RTP stream for the playback and it will push it into the proxied call by triggering in-dialog re-INVITEs. to:
Another new OpenSIPS module, that is able to manipulate calls/dialogs going through OpenSIPS, along with UAC/UAS dialogs (call originated or terminated into OpenSIPS), with the sole propose of mixing the RTP media between these multiple flows. The idea is to make possible the injection of streams of media from / to proxied calls, with the help of auxiliary calls initiated by OpenSIPS. Typical example is to play media within an existing call/dialog with nothing more than simple re-INVITEs - OpenSIPS will initial a new sip call to a media server, in order to get the RTP stream for the playback and it will push it into the proxied call by triggering in-dialog re-INVITEs. Changed lines 27-28 from:
As we already have for transactions, the dialog module will allow the script writer to set, in a per-dialog fashion, script routes to be triggered by various dialog events. Similar to t_on_failure(route), you can do dlg_on_timeout(route) to have a route called when the dialog lifetime is exceed. In the route, you may decide to prolong the lifetime, to terminate the call or do any other login. We can foreseen dlg_on_answer(route), dlg_on_terminate(route)' (and more) triggers, which will give a better interaction and control over the ongoing calls. to:
As we already have for transactions, the dialog module will allow the script writer to set, in a per-dialog fashion, script routes to be triggered by various dialog events. Similar to t_on_failure(route), you can do dlg_on_timeout(route) to have a route called when the dialog lifetime is exceed. In the route, you may decide to extend the lifetime, to terminate the call or do any other logging. We can foresen dlg_on_answer(route), dlg_on_terminate(route)' (and more) triggers, which will give a better interaction and control over the ongoing calls. Changed lines 33-34 from:
For both RTProxy and RTPEngine, OpenSIPS will be able to report to script the DTMF sampled from the passing RTP. This will make possible the implementation of simple IVRs or authentication via DTMF with nothing more than OpenSIPS and the media relay. to:
For both RTProxy and RTPEngine, OpenSIPS will be able to report to the OpenSIPS script the DTMF events sampled from the passing RTP. This will make possible the implementation of simple IVRs and/or authentication via DTMF with nothing more than OpenSIPS and the media relay. Changed lines 36-37 from:
In Class 5 services, BLF is an important feature. Beside working out clustering support for BLF, an important task is reworking the BLF implementation to be call-branch aware, to be able to properly report the call events in parallel calling or call hunting scenarios. to:
In Class 5 services, BLF is an important feature. Besides working out clustering support for BLF, an important task is reworking the BLF implementation to be call-branch aware, to be able to properly report the call events in parallel calling or call hunting scenarios. Changed lines 51-52 from:
Instead of using the XML scenario to drive the B2B logic (mixing between the calls), we want to use the OpenSIPS scripting for the purpose. This will eliminate all the limitation of the XML language (logic and action) and it will tremendously increase the level of integration of the B2B engine with the rest of the OpenSIPS functionalities. Shortly, more complex B2B logic will be possible, and also better integrated with the rest of OpenSIPS. to:
Instead of using the XML scenario to drive the B2B logic (mixing between the calls), we want to use the OpenSIPS scripting for this purpose. This will eliminate all the limitations of the XML language (logic and action) and it will tremendously increase the level of integration of the B2B engine with the rest of the OpenSIPS functionalities. Shortly, more complex B2B logic will be possible, and also better integrated with the rest of OpenSIPS. Changed lines 57-61 from:
An important improvement of the B2B engine will be the addition of the B2B context, to help in correlating all the entities (UAC, UAS) part of a B2B session, to attach custom data to the entities and to exchange such data between the entities. This will help with Accounting and media relaying support for B2B, but also with building custom data sharing inside a B2B session (or between the sessions) B2B engineImprove the media to:
An important improvement of the B2B engine will be the addition of the B2B context, to help in correlating all the entities (UAC, UAS) part of a B2B session, to attach custom data to the entities and to exchange such data between the entities. This will help with Accounting and media relaying support for B2B, but also with building custom data sharing inside a B2B session (or between the sessions). Changed lines 66-67 from:
to:
Changed line 78 from:
Dealing with Robocalling and CLI spoofing becomes a must when building advanced calling solutions. The support for STIR/SHAKEN will be part of OpenSIPS 3.6, providing multiple usage models, in therms of how the certificates are to be handled during the verification process. Also a flexible approach (to the standards) will be able to cope with all the potential changes derived from the adoption process (of the standard by the providers). to:
Dealing with Robocalling and CLI spoofing becomes a must when building advanced calling solutions. The support for STIR/SHAKEN will be part of OpenSIPS 3.6, providing multiple usage models, in terms of how the certificates are to be handled during the verification process. Also a flexible approach (to the standards) will be able to cope with all the potential changes derived from the adoption process (of the standard by the providers). December 19, 2019, at 07:22 PM
by
- Changed lines 18-19 from:
Without actually using a Back2BAck model, but simply operating with calls (dialogs, UACs or UASs), many complex class 5 calling (and call mixing) scenarios may be scripted. to:
Without actually using a Back2Back model, but simply operating with calls (dialogs, UACs or UASs), many complex class 5 calling (and call mixing) scenarios may be scripted. Changed lines 21-22 from:
A new OpenSIPS module, placed on top of dialog module, will allow remote control over the calls going through OpenSIPS. The module will expose an simplify set of command (API like) for setting up new calls, for answering and terminating calls, for transferring or putting on-hold calls - all these without interacting with the end-devices, but triggering and handling the action only from the OpenSIPS (as proxy) level. to:
A new OpenSIPS module, placed on top of dialog module, will allow remote control over the calls going through OpenSIPS. The module will expose a simplified set of commands (API like) for setting up new calls, for answering and terminating calls, for transferring or putting on-hold calls - all these without interacting with the end-devices, but triggering and handling the action only from the OpenSIPS (as proxy) level. Changed lines 24-25 from:
Another new OpenSIPS module, that is able to manipulate calls/dialogs going through OpenSIPS, along with UAC/UAS dialogs (call originated or terminated into OpenSIPS), with the sole propose the mixing the RTP media between these multiple flows. The idea is to make possible the injection or stream of media from / to proxied calls, with the help of auxiliary calls initiated by OpenSIPS. Typical example is to play media within an existing call/dialog with nothing more than simple re-INVITEs - OpenSIPS will initial a new sip call to a media server, in order to get the RTP stream for the playback and it will push it into the proxied call by triggering in-dialog re-INVITEs. to:
Another new OpenSIPS module, that is able to manipulate calls/dialogs going through OpenSIPS, along with UAC/UAS dialogs (call originated or terminated into OpenSIPS), with the sole propose of mixing the RTP media between these multiple flows. The idea is to make possible the injection or stream of media from / to proxied calls, with the help of auxiliary calls initiated by OpenSIPS. Typical example is to play media within an existing call/dialog with nothing more than simple re-INVITEs - OpenSIPS will initial a new sip call to a media server, in order to get the RTP stream for the playback and it will push it into the proxied call by triggering in-dialog re-INVITEs. Added lines 58-60:
B2B engineImprove the media December 19, 2019, at 07:19 PM
by
- Changed lines 9-10 from:
Routing calls and handling large volume of traffic is not a challenge anymore for OpenSIPS. The upcoming 3.6 release will focus on complex call crafting, basically on increasing OpenSIPS's ability to create and handle complex calling scenarios where multiple SIP calls are mixed and interacting. Or shortly said, the 3.6 release will address the Class 5 specific calling features and how to control such calling features via APIs. to:
Routing calls and handling large volume of traffic is not a challenge anymore for OpenSIPS. The upcoming 3.6 release will focus on complex call crafting, basically on increasing OpenSIPS's ability to create and handle complex calling scenarios where multiple SIP calls are mixed and able to interact. Or shortly said, the 3.6 release will address the Class 5 specific calling features and how to control such calling features via APIs. Changed lines 78-94 from:
to:
Dealing with Robocalling and CLI spoofing becomes a must when building advanced calling solutions. The support for STIR/SHAKEN will be part of OpenSIPS 3.6, providing multiple usage models, in therms of how the certificates are to be handled during the verification process. Also a flexible approach (to the standards) will be able to cope with all the potential changes derived from the adoption process (of the standard by the providers).
Push Notification (RFC8599)The existing PN support will be improved and aligned to the requirements as per newly adopted RFC 8599. Besides the notification itself, we need to address some particularities in contact registration, derived from privacy concerns or device identification concerns.
noSQL adds-onThe DB layer needs a constant attention, so here is the plan for 3.6:
December 19, 2019, at 07:03 PM
by
- Added lines 7-77:
https://blogopensips.files.wordpress.com/2019/12/opensips-3.6-crafting.jpg Routing calls and handling large volume of traffic is not a challenge anymore for OpenSIPS. The upcoming 3.6 release will focus on complex call crafting, basically on increasing OpenSIPS's ability to create and handle complex calling scenarios where multiple SIP calls are mixed and interacting. Or shortly said, the 3.6 release will address the Class 5 specific calling features and how to control such calling features via APIs. As usual, all the OpenSIPS major releases are in depth presented during the OpenSIPS Summit yearly events. So, the 3.6 release is the star of OpenSIPS Summit in Amsterdam, May 2020.
Class 5 calling ingredientsWithout actually using a Back2BAck model, but simply operating with calls (dialogs, UACs or UASs), many complex class 5 calling (and call mixing) scenarios may be scripted. Calling APIA new OpenSIPS module, placed on top of dialog module, will allow remote control over the calls going through OpenSIPS. The module will expose an simplify set of command (API like) for setting up new calls, for answering and terminating calls, for transferring or putting on-hold calls - all these without interacting with the end-devices, but triggering and handling the action only from the OpenSIPS (as proxy) level. Call mixingAnother new OpenSIPS module, that is able to manipulate calls/dialogs going through OpenSIPS, along with UAC/UAS dialogs (call originated or terminated into OpenSIPS), with the sole propose the mixing the RTP media between these multiple flows. The idea is to make possible the injection or stream of media from / to proxied calls, with the help of auxiliary calls initiated by OpenSIPS. Typical example is to play media within an existing call/dialog with nothing more than simple re-INVITEs - OpenSIPS will initial a new sip call to a media server, in order to get the RTP stream for the playback and it will push it into the proxied call by triggering in-dialog re-INVITEs. Per-call hooksAs we already have for transactions, the dialog module will allow the script writer to set, in a per-dialog fashion, script routes to be triggered by various dialog events. Similar to t_on_failure(route), you can do dlg_on_timeout(route) to have a route called when the dialog lifetime is exceed. In the route, you may decide to prolong the lifetime, to terminate the call or do any other login. We can foreseen dlg_on_answer(route), dlg_on_terminate(route)' (and more) triggers, which will give a better interaction and control over the ongoing calls. SDP topology hidingDue to the specificity of class 5 scenarios, there is a real need to completely decouple the SDP's (not only from IP/port perspective) from the caller and callee side, like hiding the originator or overwriting the session name and version. DTMF supportFor both RTProxy and RTPEngine, OpenSIPS will be able to report to script the DTMF sampled from the passing RTP. This will make possible the implementation of simple IVRs or authentication via DTMF with nothing more than OpenSIPS and the media relay. Extended BLF supportIn Class 5 services, BLF is an important feature. Beside working out clustering support for BLF, an important task is reworking the BLF implementation to be call-branch aware, to be able to properly report the call events in parallel calling or call hunting scenarios. Dialog module enhancementsWe are looking at a good set of additions for the dialog module, like:
Back-to-back supportThe existing B2B implementation in OpenSIPS has some limitations, so we are looking to overcome via some major rework here. Script driven B2BInstead of using the XML scenario to drive the B2B logic (mixing between the calls), we want to use the OpenSIPS scripting for the purpose. This will eliminate all the limitation of the XML language (logic and action) and it will tremendously increase the level of integration of the B2B engine with the rest of the OpenSIPS functionalities. Shortly, more complex B2B logic will be possible, and also better integrated with the rest of OpenSIPS. B2B clustering supportTo be 100% production ready, an High-Availability support maybe available for the B2B engine. This will be achieved by adding clustering and replication support for the B2B calling. B2B contextAn important improvement of the B2B engine will be the addition of the B2B context, to help in correlating all the entities (UAC, UAS) part of a B2B session, to attach custom data to the entities and to exchange such data between the entities. This will help with Accounting and media relaying support for B2B, but also with building custom data sharing inside a B2B session (or between the sessions)
Call CenterFor 3.6, we are looking at:
Device Feature Key Synchronization (DFKS)DFKS support is planned for OpenSIPS 3.6. This will help to keep feature settings in sync between multiple device and application servers, an essential need in a class 5 / PBX environment.
STIR/SHAKENApril 16, 2019, at 10:25 PM
by
- Deleted lines 6-86:
https://blogopensips.files.wordpress.com/2018/12/opensips-3.6-icon.png For the upcoming OpenSIPS 3.6 release (and 3.x family) the main focus is on the devops concept. This translates into introducing and enhancing in OpenSIPS features / capabilities that (1) will increase the easiness when comes the writing / developing OpenSIPS scripts and (2) simplify the operational activities when comes to running and managing OpenSIPS. This OpenSIPS 3.6 release is the star of OpenSIPS Summit in Amsterdam, April-May 2019 - beside presentations and workshops around the new cool things in this version, OpenSIPS 3.6 will also be the subject of several interactive demos on its new capabilities. Script Development aspectsGeneric Preprocessor SupportThis feature adds full built-in pre-processing support for the OpenSIPS script. OpenSIPS 3.6 integrates various existing pre-processors within OpenSIPS. This simplify the scripting itself, the script portability across multiple servers and not to mention the entire deployment process of more complex platforms (where OpenSIPS is just a part of it). Even more, you will be able to use your preferred pre-processor and align OpenSIPS with the rest of your system (M4, Jinja, Embedded Ruby or others). Module Functions Now Benefit From a New Parameter InterfaceAs a response to frequent mailing list complaints of wildly varying behaviors across different module functions (e.g. some accept integers/strings as inputs while others accept both integers/strings or variables holding such values), we've introduced an abstract layer which handles the parameter passing task for all module functions, effectively making all of them more powerful by globally allowing flexible input. An added benefit is that new OpenSIPS modules are now even faster to develop. See the new function calling conventions here. Operational aspectsRouting Script Re-loadOpenSIPS 3.6 exposes the valuable ability of reloading the routes (not the module configuration) during runtime, with zero penalties and with zero loses as traffic. See the documentation of the MI "reload_routes" function. Processes Auto-Scaling SupportThis is the ability of OpenSIPS to scale up and down the number of processes at runtime. Basically OpenSIPS is able to automatically scale up (by forking new processes) according to the volume of traffic, or to scale down (terminating some worker processes) if the internal load is low. This means you do not have to worry if your estimation on the number for worker processes is correct or not (will my OpenSIPS hold to the traffic??) or to worry about planning restarts during the night (to manually resize the number of processes). New OpenSIPS CLI (Command Line Interface) toolStarting with OpenSIPS 3.6, the old opensipsctl tool becomes deprecated (as functionality and as software) and it is replaced by the new opensips-cli - a powerful Python3 application that allows you to interact in a smart way with OpenSIPS, to invoke advanced tools such as diagnose or tracer, as well as to perform DB provisioning. Read a full description of opensips-cli here. Selectable Memory Allocator SupportThis feature allows the internal memory manager to be selected at startup time. In OpenSIPS 3.6, the memory manager selection becomes a startup option, via command line arguments, allowing you to change it without any need to recompile or redeploy. Read a full description of this feature here. Internal Memory Persistence during RestartAs there are several modules caching (in OpenSIPS internal memory, not in external no-sql cachers) large chunks of data, like Dynamic Routing, Dialplan, Dispatcher or Permissions, OpenSIPS 3.6 is able to avoid the date loading and caching penalty during a restart - this segments of the internal memory do "survive" during the restart. This dramatically reduces the time to restart of the entire service. Unified Sharing Tags for ClusteringIn 2.4, each module (with clustering support) is managing its own sharing tags completely isolated from other modules - this make the operating OpenSIPS a bit difficult sometime, as for a single switch from active to backup, you need to individually inform and change the tags in several modules, via several MI commands. In OpenSIPS 3.6 we have now the sharing tags managed by clusterer module itself and shared between multiple modules. So with a single MI command, changing a single sharing tag, you can control all the cluster-aware modules (like dialog timeouts, nathelper pinging, dispatcher pinging, etc) Read a full description of this feature here. Integration aspectsMI Interaction StandardizationAn extensive rework of the Management Interface in an attempt to standardize and speed up development of external applications which need to interact with OpenSIPS. The custom, JSON-based HTTP calls of OpenSIPS 2.X are now replaced with the JSON-RPC version 2 standard. The custom, line-oriented syntax was completely dropped. XMLRPC and mi_html (former mi_http) were kept backwards-compatible. Read a detailed description of the new interactions here SMPP supportOpenSIPS 3.6 provides a new SMPP module that allows you to do bidirectional gatewaying between SIP and SMPP traffic - this is a powerful but flexible way to integrate with most of the SMS providers / gateways. Read a full description of this feature here. RabbitMQ Consumer supportA new RabbitMQ consumer module which manages connections with one or more brokers, subscribes for events and exports them at OpenSIPS script level via the event interface.
But the full list of goodies offered by OpenSIPS 3.6 (and a more technical one too), together with migration instructions, can be found on the OpenSIPS 3.6 release notes page. April 16, 2019, at 09:52 PM
by
- Changed line 5 from:
to:
Changed lines 8-31 from:
https://blogopensips.files.wordpress.com/2017/11/google-idi_018-1.jpg?w=300&h=200 The OpenSIPS 3.6 version is built around the clustering concept - 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:
The best ofSIPCapture/Homer integrationFreeSWITCH integrationAs a powerful Class5 Engine, FreeSWITCH is the perfect complementary tool for OpenSIPS the restMigration from 2.2.x to 3.6.0?to:
https://blogopensips.files.wordpress.com/2018/12/opensips-3.6-icon.png For the upcoming OpenSIPS 3.6 release (and 3.x family) the main focus is on the devops concept. This translates into introducing and enhancing in OpenSIPS features / capabilities that (1) will increase the easiness when comes the writing / developing OpenSIPS scripts and (2) simplify the operational activities when comes to running and managing OpenSIPS. This OpenSIPS 3.6 release is the star of OpenSIPS Summit in Amsterdam, April-May 2019 - beside presentations and workshops around the new cool things in this version, OpenSIPS 3.6 will also be the subject of several interactive demos on its new capabilities. Added lines 16-88:
Script Development aspectsGeneric Preprocessor SupportThis feature adds full built-in pre-processing support for the OpenSIPS script. OpenSIPS 3.6 integrates various existing pre-processors within OpenSIPS. This simplify the scripting itself, the script portability across multiple servers and not to mention the entire deployment process of more complex platforms (where OpenSIPS is just a part of it). Even more, you will be able to use your preferred pre-processor and align OpenSIPS with the rest of your system (M4, Jinja, Embedded Ruby or others). Module Functions Now Benefit From a New Parameter InterfaceAs a response to frequent mailing list complaints of wildly varying behaviors across different module functions (e.g. some accept integers/strings as inputs while others accept both integers/strings or variables holding such values), we've introduced an abstract layer which handles the parameter passing task for all module functions, effectively making all of them more powerful by globally allowing flexible input. An added benefit is that new OpenSIPS modules are now even faster to develop. See the new function calling conventions here.
Operational aspectsRouting Script Re-loadOpenSIPS 3.6 exposes the valuable ability of reloading the routes (not the module configuration) during runtime, with zero penalties and with zero loses as traffic. See the documentation of the MI "reload_routes" function. Processes Auto-Scaling SupportThis is the ability of OpenSIPS to scale up and down the number of processes at runtime. Basically OpenSIPS is able to automatically scale up (by forking new processes) according to the volume of traffic, or to scale down (terminating some worker processes) if the internal load is low. This means you do not have to worry if your estimation on the number for worker processes is correct or not (will my OpenSIPS hold to the traffic??) or to worry about planning restarts during the night (to manually resize the number of processes). New OpenSIPS CLI (Command Line Interface) toolStarting with OpenSIPS 3.6, the old opensipsctl tool becomes deprecated (as functionality and as software) and it is replaced by the new opensips-cli - a powerful Python3 application that allows you to interact in a smart way with OpenSIPS, to invoke advanced tools such as diagnose or tracer, as well as to perform DB provisioning. Read a full description of opensips-cli here. Selectable Memory Allocator SupportThis feature allows the internal memory manager to be selected at startup time. In OpenSIPS 3.6, the memory manager selection becomes a startup option, via command line arguments, allowing you to change it without any need to recompile or redeploy. Read a full description of this feature here. Internal Memory Persistence during RestartAs there are several modules caching (in OpenSIPS internal memory, not in external no-sql cachers) large chunks of data, like Dynamic Routing, Dialplan, Dispatcher or Permissions, OpenSIPS 3.6 is able to avoid the date loading and caching penalty during a restart - this segments of the internal memory do "survive" during the restart. This dramatically reduces the time to restart of the entire service. Unified Sharing Tags for ClusteringIn 2.4, each module (with clustering support) is managing its own sharing tags completely isolated from other modules - this make the operating OpenSIPS a bit difficult sometime, as for a single switch from active to backup, you need to individually inform and change the tags in several modules, via several MI commands. In OpenSIPS 3.6 we have now the sharing tags managed by clusterer module itself and shared between multiple modules. So with a single MI command, changing a single sharing tag, you can control all the cluster-aware modules (like dialog timeouts, nathelper pinging, dispatcher pinging, etc) Read a full description of this feature here.
Integration aspectsMI Interaction StandardizationAn extensive rework of the Management Interface in an attempt to standardize and speed up development of external applications which need to interact with OpenSIPS. The custom, JSON-based HTTP calls of OpenSIPS 2.X are now replaced with the JSON-RPC version 2 standard. The custom, line-oriented syntax was completely dropped. XMLRPC and mi_html (former mi_http) were kept backwards-compatible. Read a detailed description of the new interactions here SMPP supportOpenSIPS 3.6 provides a new SMPP module that allows you to do bidirectional gatewaying between SIP and SMPP traffic - this is a powerful but flexible way to integrate with most of the SMS providers / gateways. Read a full description of this feature here. RabbitMQ Consumer supportA new RabbitMQ consumer module which manages connections with one or more brokers, subscribes for events and exports them at OpenSIPS script level via the event interface.
But the full list of goodies offered by OpenSIPS 3.6 (and a more technical one too), together with migration instructions, can be found on the OpenSIPS 3.6 release notes page. March 28, 2018, at 05:33 PM
by
- Changed lines 8-15 from:
http://www.gearitservices.com/Portals/0/SitePics/SystemIntegration.jpg
The OpenSIPS 3.6 version is built around the integration concept - the OpenSIPS ability to integrate and work together in all possible means with other projects, protocols, systems or concepts. to:
https://blogopensips.files.wordpress.com/2017/11/google-idi_018-1.jpg?w=300&h=200 The OpenSIPS 3.6 version is built around the clustering concept - 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:
Changed lines 20-23 from:
The integration with the SIPCapture engine was a hot topic again. The work in this area focused in adding two new concepts (both on OpenSIPS and SIPCapture sides) when comes to capturing:
to:
Changed line 25 from:
the restto:
the restMarch 16, 2017, at 06:49 PM
by
- Changed lines 13-19 from:
The success of this release - in terms of achieving its integration goal - was strongly weighted by the collaboration with the teams of the partner projects, like SIPCapture, FreeSWITCH or CGRates. A collaboration in terms of ideas, brainstorming, solutions and of course, work. A collaboration that Integrationto:
The success of this release - in terms of achieving its integration goal - was strongly weighted by the collaboration with the teams of the partner projects, like SIPCapture, FreeSWITCH or CGRates. A collaboration in terms of ideas, brainstorming, solutions and of course, work. A collaboration that resulted in solutions and benefits for all the involved communities. The best ofSIPCapture/Homer integrationThe integration with the SIPCapture engine was a hot topic again. The work in this area focused in adding two new concepts (both on OpenSIPS and SIPCapture sides) when comes to capturing:
FreeSWITCH integrationAs a powerful Class5 Engine, FreeSWITCH is the perfect complementary tool for OpenSIPS Added lines 29-30:
March 16, 2017, at 06:33 PM
by
- Added lines 1-25:
About -> Available Versions -> 3.6.x Releases -> Release 3.6.0 OverviewOpenSIPS 3.6 philosophy http://www.gearitservices.com/Portals/0/SitePics/SystemIntegration.jpg
The OpenSIPS 3.6 version is built around the integration concept - the OpenSIPS ability to integrate and work together in all possible means with other projects, protocols, systems or concepts. Integrationthe restMigration from 2.2.x to 3.6.0? |