OpenSIPS 4.0.0-beta ChangeLog

Released on April 22, 2026

OpenSIPS 4.0.0-beta is the first public beta of the 4.0 major release, collecting almost a year of work since the 3.6.0-beta baseline. The release includes deep TCP/TLS and MI refactoring, new observability support, Redis cluster improvements, dialog/PRACK work, new modules and many stability, security and packaging fixes.

This changelog summarizes the main user-visible changes from 3.6.0-beta..4.0.0-beta and omits generated documentation rebuilds, version bumps and release mechanics.

As a major release, OpenSIPS 4.0 contains intentional compatibility changes. Pay particular attention to MI command naming, removed deprecated parameters, dialog flag syntax and TCP/TLS behavior.

Compatibility and Migration Notes

  • Removed various deprecated parameters, cleaning up legacy configuration knobs as part of the 4.0 major release. 5a4725df86
  • Refactored MI command names so commands are namespaced as module:cmd. Compatibility aliases for old MI commands were added, and mi which can list all functions within a module to ease migration. 6b10fb52c4 3942a28ed2 4171796759 a6071ba5e4
  • Renamed mi_xmlrpc_ng back to mi_xmlrpc, matching the new MI naming cleanup. 3ba640fdd0
  • Changed create_dialog() to use explicit flag names and updated menuconfig templates accordingly. This makes script intent clearer, but requires attention when migrating old single-letter flag usage. 06c9a9840c b18f11a2ec
  • Reworked transaction branch storage from fixed bitmasks to dynamic arrays, removing the previous 64-branch limitation and updating modules which access transaction branches. 26297af3ea 8fe8128190 0a12d5a7af

TCP, TLS and Network Core

  • Refactored the TCP/TLS stack so TCP/TLS connection ownership and I/O are handled through a single-process model, with messages passed as async chunks and protocol parsing moved into workers where appropriate. 5e62d3837a eb6c619e59 29d61fdac9
  • Migrated TCP-based protocol modules to the new TCP interface, including proto_msrp, proto_bin, proto_smpp, proto_hep and related WebSocket/WSS handling. b109ea253e 0a491c0708 cce1a56779 f199eccf09
  • Added tcp_close_connection as both script and MI functionality, allowing operators to force-close a TCP connection by connection id or address. 3610069c06
  • Added a TCP MI class for listing and terminating TCP connections, plus protocol filters and TLS metadata in list_tcp_conns. e7d09a1933 e8e1877e91 7194f2fbf4 3002f77e8b
  • Added outbound PROXY protocol support and per-socket filtering for PROXY protocol behavior. e443372cce 40e9b70110 282c424066 9bab03218f
  • Added socket bonding support, including parser token support and fixes around bond socket initialization. 856a866675 91fe7eeefb bc9ceda570
  • Added KTLS support and continued TLS backend cleanup, including wolfSSL updates, OpenSSL cleanup and improved TLS certificate information exposure in workers. 63a2b4990f e51b8612bd 01db8f8bbb 076ee93150
  • Fixed restart and shutdown edge cases, including a TCP restart deadlock, TLS shutdown crashes, stale CLOSE_WAIT sockets and overly large TCP Content-Length values. a26565db25 ad88fda211 b46e687d35 1480b1faaa

Management Interface and Operations

  • Increased the maximum number of MI parameters and refreshed MI command documentation for the new namespaced command format. d8b83e2e79 3b3e1e1b11
  • Added registrar management commands for deleting and upserting registrations from MI. 670d48e7c0 534d8271b5
  • Made the MI Datagram buffer size configurable and turned MI Datagram receive sockets non-blocking. ca7d6e5e04 1dd588427f
  • Hardened the HTTP MI interface with a safe default and Basic Authentication support. 39e5e02993

Observability, Profiling and OpenTelemetry

  • Added a new OpenTelemetry module, documentation and packaging support, while keeping it excluded from default compilation unless explicitly requested. b3e1e78b13 7a57c869bf 4f1f81c18f 0d23a4366e
  • Added otel_enable MI support, route status reporting, richer span attributes and support for preserving spans across async/resume jumps. e3652da192 89149094a7 1f3031e325
  • Added a generic profiling API, process profiling, verbosity levels and profiling coverage for network, async resume, TM, b2b_logic, b2b_entities and dialog signaling APIs. 1734d27d53 2548c36b3b 798290461c 9243484e3b 622ec3a999 970626b4a8 335bd70788
  • Added low-level debugging improvements, including a structure history helper and backtrace-oriented diagnostics for harder troubleshooting cases. a4984bd283

Redis, Cache and Database Backends

  • Added dynamic Redis Cluster topology management and observability, including safer redirect parsing and improved cluster redirect handling. 7b8fe71ffd e0ead4f57b
  • Added Redis ASK redirect handling for cluster resharding and Redis hash tag support in redisHash(). 1444c40a7d f1fc0aa406
  • Added Redis Unix socket transport and lazy connection support, plus compatibility guards for older hiredis versions. 5de24f1379 67e4d3e445
  • Fixed Redis, Cassandra and Memcached NULL dereference paths during backend client allocation or connection setup. 1cc3490a86 a246dd8f45 b75191c26d
  • Added cachedb_mongodb compatibility with libmongoc/libbson 2.x and fixed libbson deprecation warnings while keeping compatibility with older mongo-c-driver releases. 9c3db90e0e e447cf6c1d
  • Fixed db_sqlite return codes so sql_cacher can load tables correctly through the db_sqlite query API. 309c7b3fab

Dialog, PRACK and Transaction Handling

  • Added PRACK support to dialog sequential requests, including automatic PRACK handling, early-dialog fixes, UAC-side control knobs and multi-PRACK CSeq fixes. 6a7795161b 3f830ae4f9 14833bd6df f676d80f3a 06ee2f8e05
  • Added active_only support to load_dialog_ctx() and improved dialog direction detection in onreply_route through From-tag matching for $DLG_dir. e6956ce40e c01a8d7105
  • Fixed dialog CSeq replication, delayed-delete double-free cases, duplicate dialog creation after deletion and diagnostics for failed replicated packets. d2c682cbf6 37af7d1129 22b5a6b415 d355468a64
  • Fixed TM branch allocation edge cases, branch-bitmask migration regressions and $rd reversion after chained async() resume. ae90bd7942 fe34b4c729 a3c5221fa5 06caa49371
  • Fixed async and launch() reply handling edge cases, including reply relaying after launch() from onreply_route and report-route parameters for inline async completion. 4e19188ecd 11e37d129e 01adf61bdf

B2B, Shared Call Appearance and SIPREC

Security, Hardening and Reliability Fixes

  • Fixed SQL injection in auth_jwt caused by an unescaped JWT tag claim used in database authorization. e81b42b1a9
  • Added RSA public-key extraction from JWK e and n fields, improving JWT/JWK interoperability. 24225f50b5
  • Hardened TLS client certificate handling so certificates are not required unless explicitly configured, fixed TLS memory leaks and disabled TLS tickets for TLS 1.2/1.3 restart-reconnect scenarios. 93680756b8 d623d9efdb 00305a4edf
  • Fixed buffer overflow and invalid-pointer issues in DNS cache, permissions and SDP handling. c585e06592 3514850737 8b1806ec66 20b0ba813a
  • Fixed STIR/SHAKEN memory leaks and migrated cryptographic code toward WolfSSL-compatible APIs while preserving OpenSSL fallback behavior. 5449b3a324 2c7802db1b ea4be40918
  • Fixed several Diameter, JSON-RPC, rtpengine, Janus and RabbitMQ NULL-deref, ownership, leak and double-free paths. ce2c9642d8 01489359c8 ecbfff3e73 c78b9e908b 4cf6962d29 e41e4b19dd

Modules and Scripting Improvements

  • Added the new auth_web3 module for Web3/Ethereum-style authentication, including API, Keccak support and generated module documentation. 7109f39a0f b89f30c51c b51e0be6c5
  • Added registrant status reports, reregister expiry percentage control and new registration-state events. 12dad50ad1 1cbba51dba c6632d8829
  • Added Cluster-Bridge Replication between clusterer and ratelimit, enabling rate replication across bridged clusters. 344688c198 c572dc6ad9
  • Added json_compact_noescape, UUID version selection through $uuid(version) and improved SDP variable operations. d162b6cae4 5394154edd 9561fe4836
  • Added callops MI improvements for call hold/unhold, including leg selection and extra header parameters. 033eafae52 717e8a3751
  • Improved event_rabbitmq connection handling and code paths, including exchange parsing, duplicate-code cleanup and restored event functionality. 7d998c6e53 758667b68b feaa1d1def 33843ab483

Build, Packaging and CI