OpenSIPS 4.0.0-beta ChangeLog
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, andmi whichcan list all functions within a module to ease migration. 6b10fb52c4 3942a28ed2 4171796759 a6071ba5e4 - Renamed
mi_xmlrpc_ngback tomi_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_connectionas 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_enableMI 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_onlysupport toload_dialog_ctx()and improved dialog direction detection inonreply_routethrough 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
$rdreversion after chainedasync()resume. ae90bd7942 fe34b4c729 a3c5221fa5 06caa49371 - Fixed async and launch() reply handling edge cases, including reply relaying after
launch()fromonreply_routeand report-route parameters for inline async completion. 4e19188ecd 11e37d129e 01adf61bdf
B2B, Shared Call Appearance and SIPREC
- Added and refined Shared Call Appearance support through presence_callinfo, including inbound SCA flows, held-state advertising and shutdown/crash fixes. 283b529ca7 18f9cab8f5 ea3c1f47cd 97cbd24ce9 620b7223bf
- Extended b2b_logic bridge behavior with custom max duration, pass-legs-upstream, custom Contact header parameters, REFER id indication in NOTIFY and the
$b2b_logic.peervariable. d771e81df0 862fa537d7 ca3410f73c 2810543bd2 4ccf042ceb - Improved b2b_entities with in-dialog authentication, AVP preservation for in-dialog requests and fixes for 200 OK/CANCEL races, final-reply handling, crashes and leaks. b50b89b01e c836166fae 798b69d091 a7610841b9 1674259ec5
- Improved SIPREC robustness around media establishment, timeout handling, XML escaping and crash fixes after recording completion. c5fd8adfcc bbfa2b0c19 c447e6fdeb 71933b2821 33f99bf142
- Added
rtpp_bind_localsupport to RTPProxy offer, answer and engage paths, integrated RTPProxy notification sockets into rtp.io and expanded rtp.io CI coverage. 152fd63324 8fec385975 16819f4202 5fb31e8759
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
eandnfields, 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
- Added package and build integration for OpenTelemetry, while keeping the module opt-in rather than part of the default build. 4f1f81c18f 6ee2e97ebf d8fdfc46f4
- Added menuconfig options to disable event_sqs and rtp.io module builds and fixed menuconfig templates after dialog flag changes. e7d40c5c77 b18f11a2ec
- Updated PCRE2/PCRE3 support in regex and dialplan, including compile-context handling and stable-branch compatibility. 6082b43fa8 e706726c4d 2d2d06ee0c 184b712027
- Adjusted Debian and RedHat packaging around libcurl/OpenSSL, libmysqlclient, PCRE, wolfSSL and STIR/SHAKEN dependencies. 7d9aadc01e c51e2dd028 6da1f76b79 e5e0aee568 92a7d9c489
- Improved build robustness around Makefile shell probes, module revision checks, compiler compatibility and rtp.io CI. 9ce51e3744 690b8df03a 4873cdeced 2efb7e2fdd
- Added the 4.0.0 beta ChangeLog and refreshed the CREDITS file for the 4.0 release cycle. 2d7c4fea4d 985272ff3d