Login | Register

About

About -> Available Versions -> 3.3.x Releases -> Release 3.3.0

This page has been visited 4659 times.


1.  Migration from 3.2.x to 3.3.0


2.  What is new in 3.3.0

2.1  OpenSIPS Core

  • the launch() function may accept a third optional parameter, a string, to be passed as $param(1) to the resume route.
  • new set of SHA related transformations.
  • new log_prefix global parameter, which prepends a string to all logs.
  • improve TCP handling / throughput (transport layer, not protocol layer)
    • improve the TCP conns balancing over the TCP workers - Instead of balancing as number of conns per worker, balance based on the internal load of the TCP workers
    • added tcp_parallel_read_on_workers core parameter to allow a TCP conn to perform read operations from different processes (which ever is available), not only from one.
    • added support for parallel handle of messages from the same TCP conn (reading is still sequential, of course). The NET TCP layer provides the proto modules the possibility to return the connection (for more reading) BEFORE actually handling the just read message.
  • added IPV6 support for TOS
  • the socket parameter has been enhanced with a new flag, frag that indicates the socket should allow MTU (UDP) fragmentation for that socket.
  • new $route.type and $route.name indexed variables

2.2  Status/Report framework

New framework and interface for managing and accessing the status (readiness) and logs of various OpenSIPS components (modules or parts of the core). See the description of the framework and of its ecosystem.
Several module are already supporting the status and reporting interface, such as Drouting, Dispatcher, Clusterer, Dialplan, Pike and SQL Cacher.

2.3  OpenSIPS Modules

2.4  B2B_SDP_DEMUX module (new)

The module is able to de-multiplex a multi-stream call to multiple downstream calls, each containing a different subset of the initial streams. See the module documentation for more details.

2.5  MSRP_RELAY module (new)

The module implements an MSRP Relay according to RFC 4976. The module is able to perform relaying/bridging of MSRP traffic between multiple interfaces. See the module documentation for more details.

2.6  MSRP_UA module (new)

The module provides the SIP and MSRP capabilities required for implementing an MSRP endpoint to use directly via scripting/MI or via an internal API for other modules. See the module documentation for more details.

2.7  MSRP_GATEWAY module (new)

The module implements a gateway between SIP MESSAGE(or "Page Mode") and MSRP-based("Session Mode") Instant Messaging. See the module documentation for more details.

2.8  PROTO_MSRP module (new)

This module implements the MSRP(S) support according to RFC 4975. The implementation provides a generic MSRP(S) stack covering the network operations (reading / writing MRSP(S) messages), the parsing of the MSRP messages and the managing of the MSRP transactions (request-reply and timeout). The module by itself cannot be used as it exposes no scripting or MI capabilities - it exposes only an internal API for other modules to build functionalities on top of it, like the msrp_relay module or the msrp_ua (User agent) module. See the module documentation for more details.

2.9  STATUS_REPORT module (new)

Module to provide custom, script level defined, Status/Report identifiers, with the ability to publish status and reports for them. See the module documentation and also the description of the Status/Report framework

2.10  TCP_MGM module (new)

This new module is completely optional, and it provides fine-grained control over the properties of each TCP connection taking place in OpenSIPS, using an SQL backend. See the module documentation and blog post for more info.

2.11  AAA_DIAMETER module

  • Added support for building and sending generic Diameter requests from the opensips.cfg file, as well as exposing the AVPs contained in the Answer message, including Grouped AVP support. See the new dm_send_request() function for more details.

2.12  AUTH module

2.13  B2B_ENTITIES module

  • Add support for Redis as a database storage, by setting the new cachedb_url modparam.
  • Add the module parameter passthru_prack to instruct the B2B to pass thru any PRACK request, for an end-2-end handling (versus being locally handled by the OpenSIPS B2B)

2.14  B2B_LOGIC module

  • Add support for Redis as a database storage, by setting the new cachedb_url modparam.

2.15  CACHEDB_LOCAL module

  • When clustering is enabled, allow specifying which collections to replicate by setting the /r flag in cache_collections modparam.
  • Add support for restart persistency via the persistent memory mechanism. See the new enable_restart_persistency modparam.

2.16  CACHEDB_REDIS module

  • added circular failover support using a comma-separated list of Redis instances! See the updated cachedb_url modparam

2.17  CALL_CENTER module

  • added chat/MSRP support, turning the modules into actually a Contact Center as the agents are now able to handle both RTP/audio calls and (multiple) MSRP/chat calls, via the same flows, in the same time. See here more on agents RTP/MSRP support. For flexibility purposes, the module implements two different dispatching (to agents) policies, efficiency (loading agents) or balancing oriented - see the chat_dispatch_policy module parameter.
  • the module provides an internal built-in dispatching logic (for sending the calls/chats to the agents), but also offers the possibility to use an external logic to do the dispatching (see the cc_dispatch_call_to_agent MI command).
  • add $cc_state variable that exposes the call's state in the script.

2.18  COMPRESSION module

  • the mc_compact() function has a new flag 'n' - when specified, OpenSIPS will only remove headers not in the whitelist without using the compact form for From/To/CallID

2.19  CLUSTERER module

2.20  DIALOG module

2.21  DIALOG module

2.22  DISPATCHER module

  • new cluster_probing_mode modparam to control how the nodes should do the pinging of the destinations in a cluster setup. Options are full-mesh (all probe all), sharing-tag driven (one node probes all), or distributed (all nodes are probing a different sub-set of destinations).
  • the ds_list MI function may get an optional partition parameter to list only the destination from a certain partition.
  • support for Status/Report added - the module will publish, per partition, the readiness status and a history of reload actions (with outcomes) and destination's switching events. See details in the modules documentation.

2.23  DROUTING module

  • the carrier's attributes may be returned by the is_from_gw() / goes_to_gw() / dr_is_gw() functions via a variable provide as parameter.
  • the carrier's attributes may be returned by the route_to_gw() function via a variable provide as parameter.
  • new cluster_probing_mode modparam to control how the nodes should do the pinging of the gateways in a cluster setup. Options are full-mesh (all probe all), sharing-tag driven (one node probes all), or distributed (all nodes are probing a different sub-set of gateways).
  • new gw_socket_filter_mode modparam to controls the gateway filtering during DB loading, or, which gateways are loaded or not into memory depending on the configured socket they have.
  • new extra_id_chars modparam, offering full control over the allowed characters of Gateway and Carrier unique IDs
  • support for Status/Report added - the module will publish, per partition, the readiness status and a history of reload actions (with outcomes) and GW/carrier switching events. See details in the modules documentation.

2.24  HTTPD module

  • added IPv6 support, by default listening on all IPv6 + IPv4 interfaces (see the updated ip modparam)

2.25  MID_REGISTRAR module

  • new expires_max_deviation modparam which helps mitigate the effects of post-restart registration storms
  • the default_expires modparam may now be auto-adjusted by the server on startup in order to satisfy the following inequality: min_expires <= default_expires <= max_expires. Whenever that happens, an ERROR log will be included.

2.26  PIKE module

2.27  PROMETHEUS module

  • You can now define a regular expression that can be used to modify the name of a statistic to a new name and a set of labels using the new labels parameter.

2.28  PROTO_TCP module

  • exposes the new tcp_parallel_handling module parameter to control if read/handle for SIP messages should be done in parallel (read next messages while handling the previous ones)

2.29  RATELIMIT module

  • One can filter the pipes that are being replicated over cachedb/bin through the new /r and /b flags that can be specified when checking a pipe using the rl_check function.
  • New filter and filter_out optional parameters are available for filtering (based on patterns with wildcards) which active pipes should be listed by the rl_list MI function.
  • the default repl_timer_interval has been increased to 200 ms, up from 10 ms.

2.30  REGISTRAR module

  • new remove_ip_port() function, allowing script writers to remove contacts by their IP and port coordinates
  • new expires_max_deviation modparam which helps mitigate the effects of post-restart registration storms
  • the default_expires modparam may now be auto-adjusted by the server on startup in order to satisfy the following inequality: min_expires <= default_expires <= max_expires. Whenever that happens, an ERROR log will be included.

2.31  REST_CLIENT module

  • new max_transfer_size module parameter, which limits the maximum size of a single download

2.32  MEDIA_EXCHANGE module

  • The Media Exchange module has been migrated to the new RTP Relay module - this made possible using the media exchange forking capabilities through all the modules that are implementing the RTP relay interface (i.e. both RTPProxy and RTPEngine).

2.33  RTP_RELAY module

  • The $rtp_relay and $rtp_relay_peer variables can now be supplied with two more options: body that specifies the body that should be used for the specific peer (if not taken from the message otherwise) and delete, which specifies flags that are being passed to the RTP Media backend when the session is deleted.
  • A new $rtp_relay_ctx variable has been added, that can be used to tune different RTP context parameters, independent of the peers involved in the call.
  • The module has been enhanced to be able to work with B2B dialogs as well.

2.34  RTPPROXY module

2.35  RTPENGINE module

  • Added a new parameter, error_pv, that can be used to return eventual errors returned by the RTPEngine server.
  • The rtpengine_enable may receive as optional parameter the set ID of the rtpengine to work on.
  • The RTPEngine module has been enhanced with capabilities to work with both the SIPREC module as well as the Media Exchange module.

2.36  SIPMSGOPS module

2.37  SIPREC module

2.38  SQL_CACHER module

2.39  STIR_SHAKEN module

  • add a new parameter to the stir_shaken_auth() function that allows appending the new Identity header to replies or return it via an output variable.

2.40  TOPOLOGY_HIDING module

  • add a and A flags to the topology_hiding function that ​preserve advertised contact headers for caller/callee.

Page last modified on November 16, 2022, at 08:35 PM