About
|
This page has been visited 75 times.
2. What is new in 3.7.0
2.1 OpenSIPS script
- The return statement may now also take variables as 1st argument, not just constants.
2.2 OpenSIPS Core
- NEW Multi-Lock Memory Allocator, built into standard packages and selectable at runtime, dubbed: F_PARALLEL_MALLOC.
- NEW SDP real-time editing variables: $sdp, $sdp.line, $sdp.stream, $sdp.session and $sdp.stream.idx.
- before any of the new $sdp variables are used, all existing SDP lump changes are applied
- before any SDP-related lump changes are done (e.g. rtpproxy, rtpengine, etc.), if there are any $sdp variable changes, the new SDP is re-generated and passed to the respective code
- Added the $return variable which can be used to retrieved the return value of the previously executed route.
- New {s.date2unix} transformation, for easily parsing and/or validating the RFC-3261 format of the SIP "Date" header
- A new class of pseudo-variables had been added, $challenge.* that allows you to read information present in the WWW-Authorize or Proxy-Authorize headers.
- new option to set the TOS per socket (versus the global option)
- the $socket_out variable has been enhanced with the forced subfield, which returns NULL in case no socket has been explicitly enforced/set.
- new set of $msg.branch.XXXXX variables, to operate over the message branches - add new branches, change all the fields of an existing branch, add custom flags and attributes to the flags, support of powerful indexing. See a comprehensive description in this blog post.
- new core function append_msg_branch(), similar to old append_branch() (which to become deprecated), but without inheriting any properties from the RURI branch.
- added "sub-domain" matching support for SIP domain aliasing, in the SIP socket definition and in the SIP aliases definition.
- the auto scaling engine is enhanced with status/report support; each auto-scaling group has its own status/report identifier where it logs all ops like forking or ripping processes in the group.
2.3 [NEW] CACHEDB_DYNAMODB module
- The new cachedb_dynamodb module has been added to provide integration with Amazon's DynamoDB database.
2.4 [NEW] CONFIG module
- The new config module provides helpers for using database-provisioned configuration values at runtime.
2.5 [NEW] EVENT_SQS module
- The new event_sqs module is an implementation of an Amazon SQS producer.
2.6 [NEW] JANUS module
- The new Janus module provides a WEB Socket connector for running commands on Janus server.
2.7 [NEW] RTP.IO module
- The new rtp.io module provides a built-in RTPProxy daemon, which also integrates with the rtpproxy module in terms of accessing the now-internal RTPProxy control sockets.
2.8 [NEW] SOCKETS_MGM module
- The new sockets_mgm module provides the ability to provision SIP sockets dynamically, at runtime.
2.9 [NEW] TRIE module
- The new trie module provides a fast, small memory foot-print, storing and searching of numbers.
2.10 [NEW] EXAMPLE module
- The new example module has been added to be used as a starting point for writing new modules.
2.11 AKA_AV_Diameter module
- A new parameter has been added named server_uri that allows you to customize the value of the Server-Name value in the Diameter queries.
2.12 AUTH_AKA module
- added support for SIP Digest Authentication (MD5).
2.13 B2B_Entities module
2.14 CACHEDB_CASSANDRA module
- added support for authenticating - user and password in DB URL - the connections to a Cassandra server.
2.15 CACHEDB_COUCHBASE module
- added support for libcouchbase API v3. Also fully dropped the older v2.3 support.
2.16 CACHEDB_REDIS module
- added support for column-oriented cacheDB operations, using Redis Stack Server features such as RedisJSON and RediSearch. This now allows cachedb_redis to be used as backend for the user location (usrloc) module, in both Federation and Full-Sharing modes of operation. The Redis server-side JSON support is auto-detected, with appropriate startup logs being displayed (zero-configuration).
- added initial version of MOVED reply support (currently only supports Redis Cluster nodes going down; Soon™ -- support for new Redis Cluster node being added, also leading to MOVED replies)
2.17 CLUSTERER module
- Enhanced cluster_broadcast_req() script function with the ability to optionally include the current (self) node in the list of broadcast destinations.
2.18 DB_MYSQL module
- Added support for UNIX Socket DB URLs, e.g. "mysql://username:pwd@unix(/var/lib/mysql/mysql.sock)/opensips"
- NEW TLS-related DB URL option, tls_opts= PKEY,CERT,CA,CA_DIR,CIPHERS, allowing developers to disable PKEY/CERT in DBaaS scenarios where such certs are not available. Backported to 3.5 and 3.4.
2.19 DB_SQLITE module
2.20 DIALOG module
- the $dlg_val variable now also accepts a dynamic name, e.g. $dlg_val($var(name)), where $var(name) = "branch-" + $T_branch_idx;
- the dlg_inc_cseq() function has been added to allow you modify the dialog's CSeq for a particular leg.
- new set_dlg_profile and unset_dlg_profile MI functions were added, with the same functionality as the script functions.
2.21 DISPATCHER module
- NEW ping_sock= configuration option for the partition module parameter, for customizing the ping origination socket
2.22 DOMAIN module
- added "subdomain" matching support for SIP domain. The domain definition in DB includes now the option to match a sub-domain also or not. Nothing changed in the way the module is used.
2.23 DNS_CACHE module
- new min_ttl modparam to control the minimum TTL value for a caching.
2.24 EVENT_FLATSTORE module
- The files generated by the event_flatstore module can be automatically rotated based on different criterias: the rotate_period, rotate_count and rotate_size can be used to indicate whether to rotate a file based on its timestamp, the number of lines/entries, or the size of the file
- A new escape_delimiter module parameter has been added that can be optionally used to escape the values
- The new suffix module parameter can be used to parameterize the files's name - this is useful in combination with the rotation, to define a patter of the resulted files.
- The new suffix module parameter can be used to parameterize the files's name - this is useful in combination with the rotation, to define a patter of the resulted files.
- A new E_FLATSTORE_ROTATION has been added that is being raised when a file's rotation is being triggered.
2.25 FRAUD_DETECTION module
2.26 HTTPD module
- New receive_buf_size modparam, useful for controlling the acceptable size of the incoming MI POST requests.
2.27 JSON module
2.28 MEDIA_EXCHANGE module
- All the media_fork_*() functions had been enhanced with a new instance parameter, that allows you to start multiple media fork sessions and control them based on the instance.
2.29 MQUEUE module
- A new parameter has been added to the mq_fetch MI command that can help you fetch multiple items from the queue at once.
2.30 PERMISSIONS module
- removed 128 subnets limitation (any number of subnets can be loaded from DB now)
- improved address lookup performance thanks to internal data structures rework (now using trie-like data structures in order to store & walk IP address bits)
- all MI input/output is fully-backwards compatible with previous versions
2.31 PROMETHEUS module
2.32 PROTO_HEP module
2.33 RATELIMIT module
- A new function was added, rl_values() that can be used to retrieve all the pipes' names available.
- [Performance] Pipe Replication: "zero pipes" are now broadcasted to the cluster a maximum of 3 times, to avoid sending redundant data
2.34 REGISTRAR module
- the attributes of a registered contact are read (during save()) from AVPs, but they are written back (at lookup() time) into the attributes of the message branch. The names of the AVP and of the branch attribute are the same, dictated by the attr_avp mod param.
2.35 RTP_RELAY module
- The module can call a set of routes when media/SDP events are triggered - this can be used to perform custom RTP relaying operations.
2.36 RTPEngine module
- Added async support for rtpengine_offer(), rtpengine_answer() and rtpengine_delete().
- The sock_var function parameter (to various RTPE functions) may now function as a IN/OUT parameter instead of just OUT. If the passed variable holds a value, then this value will be parsed and used as a known, explicit RTPEngine socket to run the command against.
- The rtpengine_stop_media() function can receive an extra parameter that returns the position of the last media file played.
- Added ping_enabled parameter that makes the module ping enabled nodes as well, if they are idle.
- The rtpengine_enable MI command has been enhanced to allow setting a node in probing mode.
- A new parameter named extra_failover_error has been added that allows you to failover to a new node in case of custom errors reported by RTPengine.
- The E_RTPENGINE_STATUS event contains a new set parameter which helps you differentiate between multiple events of the same socket in different sets.
- Added the rtpengine_pause_recording() function to pause recording sessions started from script.
2.37 RTPProxy module
- The rtporoxy_enable MI command has been enhanced to allow setting a node in probing mode.
2.38 SIPREC module
- Two new events have been added, E_SIPREC_START and E_SIPREC_STOP, that are being triggered when a SIPREC session is started and terminated/stopped.
- A new function, siprec_send_indialog() has been added to allow you send arbitrary requests to the SIPREC SRS.
- All the siprec modules script functions had been enhanced with an extra parameter, instance that allows you to start multiple, parallel recording sessions to different SRS servers.
2.39 SQL_CACHER module
- NEW sql_cache_dump() function -- allowing developers to fully dump a cached SQL table at opensips.cfg level
2.40 STIR_SHAKEN module
- Enhanced error reporting (several new SIP error reply messages now being returned, better describing the failure reason)
2.41 TM module
- new set of $tm.branch.XXXXX variables, to operate over the transaction branches - access to all the fields of an existing branch, read/write custom flags and attributes to the branch. The variables come with a powerful indexing support to allow inter-branch data access - basically this allows access to the fields of any branch of the transaction from the BRANCH/REPLY/FAILURE routes. See a comprehensive description in this blog post.
- new t_get_branch_idx_by_attr() function to search for the index of another branch of the current transaction based on the name (and value) of a branch attribute.
- the onreply route has now support for async operations.
2.42 Topology Hiding module
- The topology_hiding function has been enhanced with the possibility to enforce ca particular Contact username in one of the legs.
2.43 UAC Registrant module
- the socket info (of a registration) is now part of the output of the reg_list MI command.
2.44 UUID module
- added support for UUIDv7, which is accessible via the uuid() UUID module function.
|