Development

Development.Opensips-4-0-Development-Plan History

Show minor edits - Show changes to markup

February 23, 2026, at 10:56 AM by Alex - Comment added
Added lines 46-64:

(:nl:)>>messagehead<<

Alex?23 February 2026, 10:56

This all sounds like fantastic steps forwards.

I partially like some of the simplification the changes to the scripting language brings.

The improvements to the B2BUA module sound exciting, as does the rabbitMQ consumer.

Things I would like to see:

 - Better facilities for string manipulation: I often find myself wanting to extract a substring based on some kind of separator, and whilst it is possible its a few to many lines of code
 - Functions: I currently use routes as a replacement for functions. Returning values from routes has some traps for new players.

Concerns:

 - Inline code execution: This needs to be done with adequate safeguards in place to prevent exploits being accidently created by the scrip author. This feels like it will create some kind of security issue down the road. For security conscious users, there should be a way to disable this mode if it gets added. I can just imagine a carefully crafted sip packet resulting in code execution or the ability to leak user creds.

Please do not take any of this as negative, it is meant as constructive feedback from someone who uses opensips daily.

September 07, 2018, at 07:36 PM by liviu -
Changed line 24 from:
  • evaluate major issues with this feature
to:
  • evaluate major issues with this feature. Any roadblocks?
September 07, 2018, at 07:35 PM by liviu -
Changed line 17 from:
  • evaluate / extend the Python scripting support
to:
  • evaluate / extend? the Python scripting support
September 07, 2018, at 07:35 PM by liviu -
Changed line 13 from:
  • avoid redundant, copy-pasted code (modparam("dialog", modparam("dialog", modparam("dialog", ...)
to:
  • avoid redundant, copy-pasted code (modparam("dialog", modparam("dialog", modparam("dialog", modparam("dialog", modparam("dialog"...)
September 07, 2018, at 07:35 PM by liviu -
Changed line 13 from:
  • remove redundant copy-paste code (modparam("dialog", modparam("dialog", modparam("dialog", ...)
to:
  • avoid redundant, copy-pasted code (modparam("dialog", modparam("dialog", modparam("dialog", ...)
September 07, 2018, at 07:30 PM by liviu -
Changed line 1 from:
to:
September 07, 2018, at 07:29 PM by liviu -
Changed line 1 from:
Development -> Topics -> OpenSIPS 4.0 Development Plan
to:
September 07, 2018, at 07:27 PM by liviu -
Changed line 43 from:
  • get rid of lazy evaluation! Why is the convoluted "lumps" API useful in the first place? Why can't we just keep all SIP message editing real-time (more intuitive too!), along with a clean code-base (no lump application headaches and bugs!)?
to:
  • get rid of lazy evaluation! Why is the convoluted "lumps" API useful in the first place? Why can't we just keep all SIP message editing real-time (more intuitive too!), along with a clean codebase (with no lump application headaches and bugs!)?
September 07, 2018, at 07:26 PM by liviu -
Changed line 43 from:
  • get rid of lazy evaluation! Why is the "lumps" API useful in the first place? Why can't we just keep all SIP message editing real-time?
to:
  • get rid of lazy evaluation! Why is the convoluted "lumps" API useful in the first place? Why can't we just keep all SIP message editing real-time (more intuitive too!), along with a clean code-base (no lump application headaches and bugs!)?
September 07, 2018, at 07:25 PM by liviu -
Changed line 43 from:
  • get rid of lazy evaluation! Why is the "lumps" API useful in the first place? Why can't we just keep things real-time?
to:
  • get rid of lazy evaluation! Why is the "lumps" API useful in the first place? Why can't we just keep all SIP message editing real-time?
September 07, 2018, at 07:24 PM by liviu -
Changed line 42 from:
  • improve the module function API so it offers param validation/ranges/possible values, as well as standardizing new parameter types (lists, dictionaries)
to:
  • improve the module function API so it offers param validation/ranges/possible values + proper error reporting, as well as standardizing new parameter types (lists, dictionaries)
September 07, 2018, at 07:22 PM by liviu -
Changed line 18 from:
  • inline code execution: Do we want this / Is it feasible?
to:
  • inline code execution (alternative language): Do we want this / Is it feasible?
September 07, 2018, at 07:22 PM by liviu -
Added line 12:
  • allow $var(foo) = "sip:$var(user)@$var(domain)";
Changed lines 18-19 from:
to:
  • inline code execution: Do we want this / Is it feasible?
Changed lines 28-29 from:
simplifying MI interaction
to:
MI Restructuring
Added line 37:
  • [NEW] RabbitMQ consumer
September 07, 2018, at 07:12 PM by liviu -
Changed line 34 from:
  • B2B: rework such that we drop XML-based flows in favor of OpenSIPS script-based flows!
to:
  • B2B: rework such that we drop XML-based logic in favor of OpenSIPS script-based logic!
September 07, 2018, at 07:11 PM by liviu -
Added lines 14-17:

OpenSIPS Scripting Alternatives

  • evaluate / extend the Python scripting support
Added lines 30-34:
  • new class of MI commands for controlling calls

Module Improvements

  • B2B: rework such that we drop XML-based flows in favor of OpenSIPS script-based flows!
September 07, 2018, at 07:06 PM by liviu -
Changed line 31 from:
  • get rid of lazy evaluation! Why is the "lumps" API useful in the first place?
to:
  • get rid of lazy evaluation! Why is the "lumps" API useful in the first place? Why can't we just keep things real-time?
September 07, 2018, at 07:06 PM by liviu -
Added line 31:
  • get rid of lazy evaluation! Why is the "lumps" API useful in the first place?
September 07, 2018, at 07:04 PM by liviu -
Changed line 9 from:
  • add native preprocessing support (read more here
to:
  • add native preprocessing support (read more here)
September 07, 2018, at 07:04 PM by liviu -
Added line 9:
  • add native preprocessing support (read more here
September 07, 2018, at 07:03 PM by liviu -
Added lines 1-33:
Development -> Topics -> OpenSIPS 4.0 Development Plan

(:title OpenSIPS 4.0 Development Plan:) This page has been visited 22 times. (:toc-float Table of Content:)


OpenSIPS Scripting Language

  • allow any input type to any function (no more: "this parameter does not support pvars", etc.)
  • script parameters: get rid of annoying (and redundant) quotes around integers and variables
  • remove redundant copy-paste code (modparam("dialog", modparam("dialog", modparam("dialog", ...)

Interacting w/ OpenSIPS

reload scripting routes
  • evaluate major issues with this feature
  • group existing tree + adjacent code into a "holder" structure. This allows two script to be run in parallel: the newly reloaded one, and the old one which is still running the already started calls.
  • question: can script reloading work well without full dialog state?
simplifying MI interaction
  • unified MI input/output: JSON data
  • get rid of intermediary/abstracted command state: MI trees, nodes and attributes

Internal Rework

  • push all fixup_get_XXX_value() logic further up into the core, so modules receive ready-to-use inputs without requiring any bloat code
  • improve the module function API so it offers param validation/ranges/possible values, as well as standardizing new parameter types (lists, dictionaries)

(:commentboxchrono:)


Page last modified on February 23, 2026, at 10:56 AM