Login | Register


About -> Available Versions -> 3.2.x Releases -> Release 3.2.0

This page has been visited 5158 times.

1.  Migration from 3.1.x to 3.2.0

2.  What is new in 3.2.0

2.1  OpenSIPS script

  • new {s.eval} transformation
  • new $route variable, allowing printing (debugging) of the entire route call stack
  • new log_stdout global parameter, giving visibility to all standard output logs from 3rd party libraries

2.2  OpenSIPS Core

  • added full support for the new RFC 8760 (SIP Digest Authentication Scheme). Two new digest algorithms introduced: SHA-256 and SHA-512-256, providing enhanced security versus the classic MD5 algorithm, which has become quite weak nowadays.
  • The extra processes created by the MI related modules are now running around an I/O reactor (as the SIP worker processes are also doing). This provides the OpenSIPS core the possibility to interact and control those processes (via internal IPC). Beside internal benefits, this enables several features for these extra processes, like publishing of pkg statistics, load monitoring, smooth shutdown, script reloading.

2.3  [NEW] AAA_DIAMETER module

  • a stepping stone into the IMS world, this module offers an essential toolkit, in the form of a module API, which enables the management and exchange of Diameter messages with a given Diameter peer (for now, a "server peer"). The provided API allows other modules to build highly customizable Diameter packets for various Diameter applications, with custom Attribute-Value-Pairs, custom vendors, and so on! See the module docs for more info!
  • the Diameter message building and parsing, as well as the peer state machine and Diameter-related network communication are all powered by the freeDiameter project and C libraries, dynamically linking with the new "aaa_diameter" OpenSIPS module.
  • included in this version are: Digest Authentication (via Diameter SIP Application "MAR" commands) and Accounting (via the standard Diameter Accounting application)

2.4  [NEW] EVENT_KAFKA module

  • The module implements a new transport backend for the Event Interface that allows publishing events to Apache Kafka. Also, generic messages can be published directly from the script using the kafka_publish function. More information is available in the module's documentation page or this blog post.

2.5  [NEW] MI_SCRIPT module

  • The new mi_script module allows you to run MI commands from OpenSIPS script

2.6  [NEW] Prometheus module

  • export OpenSIPS Statistics to your Prometheus monitoring system using the new native prometheus in OpenSIPS.

2.7  [NEW] PROTO_BINS module

  • The proto_bins module implements the native OpenSIPS BIN transport protocol over TLS, allowing for secure inter-cluster communication between instances.

2.8  [NEW] RTP relay module

  • A new module named rtp_relay has been added in OpenSIPS that provides an interface for engaging different RTP relays servers (such as RTPProxy or RTPEngine) in a unified, simple manner. It also provides capabilities for RTP failover and/or balancing by migrating/re-anchoring the RTP call to a different RTP server.

2.9  [NEW] TLS_OPENSSL module

  • The tls_openssl module implements TLS operations using openSSL, in order to separate the library specific code from the tls_mgm module which now acts only as an interface for the TLS-based transport modules.

2.10  [NEW] TLS_WOLFSSL module

  • The tls_wolfssl module implements TLS operations using the wolfSSL library.

2.11  AUTH & AUTH_DB modules

  • enhanced with full server-side support for RFC 8760 SIP Digest Authentication, adding two new digest algorithms: SHA-256 and SHA-512-256.

2.12  B2B_LOGIC module

  • The module has been restructured in order to drop the XML-driven logic in favor of OpenSIPS scripting with dedicated B2B routes and functions. For more information check this blog post or the new B2B tutorial.
  • new $b2b_logic.scenario variable that returns the scenario ID of the current B2B session.
  • context values for the newly initialized session can now be passed to the mi_b2b_trigger_scenario MI command via parameters.
  • add possiblity to advertise a custom Contact header in generated messages via a new function parameter to b2b_bridge_request()
  • allow setting the call setup timeout for any scenario (not only for the internal topology hiding) via the t flag given to b2b_init_request()
  • add ability to set the call setup timeout from b2b_init_request() to max_duration
  • add ability to use the user from the "From" header in the generated Contact headers, by enabling the new contact_user module parameter
  • add support for RFC3515 NOTIFY mechanism when bridging entities with b2b_bridge()
  • add support for rolling back a failed bridge action triggered with b2b_bridge()

2.13  CACHEDB_REDIS module

  • add TLS support for Redis connections; see the use_tls module parameter for more details

2.14  CFGUTILS module

  • extended $shv support, now allowing runtime definition of shared variables via dynamic names, e.g. $shv($avp(customer_id)). New shared variables may also be created and accessed via the classic shv_set and shv_get MI commands
  • new shv_hash_size module parameter, offering control over the width of the shared variable hash table
  • several extensions to check_time_rec():
    • the time recurrence string now supports a timezone as a leading field. If missing, the operating system timezone will be used instead.
    • support for chaining multiple time recurrence strings as a logical expression

2.15  CGRATES module

  • the cgr and cgr_opt variables can now be assigned JSON values by using the := operator

2.16  CLUSTERER module

  • See the following blog post for a summary of the new clustering improvements
  • add TLS support via the new proto_bins module so bins URLs can now be used when configuring cluster nodes in DB/script
  • restrict dynamic joining of new nodes when db_mode is enabled
  • add ability to remove a node from the cluster when db_mode is disabled via the new clusterer_remove_node MI command
  • allow disabling a specific node in cluster with the clusterer_set_status MI command
  • add abilitty to disable replication/syncing for a specific capability with the new clusterer_set_cap_status MI command

2.17  DIALOG module

  • Add ability to auto-sync from cluster the dialog data for all sharing tags in backup state, when a node becomes reachable, configurable via the new cluster_auto_sync module parameter
  • improve the dlg_cluster_sync MI command to be able to sync only the dialogs marked with a given sharing tag
  • improve the cluster "sync" mechanism in order to do a full mirroring of the dialogs from the donor node. Dialog in memory which are not reconfirmed through syncing will be discarded.

2.18  DIALPLAN module

  • the time recurrence support has been extended; it now re-uses the same code and logic of the improved check_time_rec() function (cfgutils module)

2.19  DISPATCHER module

  • added support for matching the "attrs" DB field using fnmatch(), see the new docs for ds_is_in_list()
  • the output of the ds_list MI command now includes the full set of IP addresses (new resolved_addresses field) produced by a DNS SRV lookup on the destination URI hostname
  • added support for set id substitution in "pvar_algo_pattern" for dispatcher algorithm 9, like modparam("dispatcher", "pvar_algo_pattern", "$stat(weight_u)")

2.20  DROUTING module

  • added support for merging multiple dr_rules tables into a single one using an SQL query (see the new rule_tables_query modparam)
  • the time recurrence support has been extended; it now re-uses the same code and logic of the improved check_time_rec() function (cfgutils module)
  • the dr_is_gw() and is_from_gw() functions have new "r" flag to force the checking of the protocol of gateway also (besides IP and port).
  • when defining DR partition, the db_url of a partition may be empty - if so, the partition db_url will be used instead.

2.21  EVENT_RABBITMQ module

  • Add support for persistent queues by requesting it in socket's name.
  • Add TLS support for broker connections; see the use_tls module parameter for more details

2.22  MID_REGISTRAR module

  • added the at_escape_str modparam, which allows you to customize the "%40" part of Contacts generated in AoR throttling mode

2.23  RTPENGINE module

2.24  PROTO_TLS module

  • Asynchronous TLS communication is now available when the new tls_async module parameter is enabled. This makes all connections with other TLS SIP endpoints asynchronous, increasing the throughput of OpenSIPS 3.2.

2.25  PROTO_WS module

  • The requirement for the Origin header in the HTTP request used to initialize WS connection has now been relaxed thanks to the require_origin module parameter.

2.26  PROTO_WSS module

  • The same relaxation of the Origin header check in PROTO_WS is available in the PROTO_WSS module, using the same require_origin module parameter.

2.27  PUA module

The module module offers now clustering support, see the description in the online documentation. With this clustering support, modules on top of PUA, like pua_dialoginfo, may implement High-Availability or Geo-Distributed setups.


  • add TLS support for broker connections
  • see the use_tls rabbitmq module parameter for more details
  • see the use_tls rabbitmq_consumer module parameter for more details

2.29  RATELIMIT module

  • new rl_dump_pipe MI command to expose all the details about the current data (specific to the pipe's algorithm) of a pipe. Currently make sense for SBT.

2.30  REST_CLIENT module

  • all async functions may now receive an optional timeout, in seconds, as the 3rd parameter to the async() statement. By default, there is no timeout.

2.31  SIP_I module

  • Add support for Generic Number parameter in $isup_param variable

2.32  STATISTICS module

  • Statistics series were added, that provides you the ability of creating custom statistics that gather information for a specific time window (as opposed to the entire runtime). Find out more information in the module's documentation

2.33  STIR_SHAKEN module

  • enable a strict check on the originating/destination identity derived from the SIP message by setting the e164_strict_mode module parameter instead of doing this by default

2.34  TLS_MGM module

  • The openSSL specific implementation of TLS operations has been moved to a new, dedicated, tls_openssl module in order for the tls_mgm module to be able to use either of the openSSL or wolfSSL libraries. The module now acts as a transparent interface between the actual TLS implementations (in tls_openssl and tls_wolfssl) and the TLS-based transport protocols like proto_tls and proto_wss.
  • new tls_library module parameter that selects which TLS library to use.

2.35  TRACE module

  • add full support for transactional tracing for local transactions (requests internally generated by OpenSIPS), via local route
  • the trace() function accepts some optional flags c and C to control if the tracing should be done only for caller or callee side of the transaction/dialog.
  • the trace() function accepts an options correlation ID parameter - this can be used to force the correlation between multiple SIP calls.
  • the trace() function, using the B scope flag, can automatically trace all the calls belonging to the same B2B session.
  • tracing can now be done to a file or to syslog, by using the file and syslog trace_id types

2.36  TM module

  • better control for branch waiting (in Push Notification scenarios) was added. The t_inject_branches function has now the last flag, to indicate this is the last branch to be added, no more waiting for other branches. For the same purpose, the t_wait_for_new_branches() accepts now as parameter the number of branches to be waited.
  • a new function t_wait_no_more_branches() was also added to stop the waiting of new branches, outside the context of any signaling.

2.37  UAC & UAC_AUTH modules

  • enhanced with full client-side support for RFC 8760 SIP Digest Authentication, adding two new digest algorithms: SHA-256 and SHA-512-256.

2.38  UAC_REGISTRANT module

  • improve management of registrants through MI:
    • disable and re-enable a specific registrant via the new reg_disable and reg_enable commands
    • list information about a specific registrant with the new reg_list command
    • reload a specific registrant record from DB with the new reg_reload command

2.39  UUID module

  • add support for UUID version 3 and 5

Page last modified on August 03, 2021, at 12:35 PM