Introduction
These release notes provide a comprehensive overview of the new features, enhanced functionalities, and resolved issues found in version 4.1 of SRE.
What's New in SRE 4.1
Call Processing
Media Server
The SRE can now function as a media server, handling the processing and management of media for various services. This new feature offers enhanced flexibility in service delivery, enabling service providers and enterprises to deploy new services, such as smart IVR systems and announcement servers.
The media function is controlled by the execution of dedicated service logic, enabling advanced behavior-driven and data-driven interactions with users. Key features include:
- Media streaming to the caller and/or callee
- Initiating calls to any destination
- Bridging channels
- DTMF collection
All existing nodes in the service logic editor are available for media service logics, alongside new nodes specifically designed for media functions. The media service logic execution is event-based, providing unlimited flexibility during key moments of media streaming.
Media can be streamed from audio files stored on the media server or generated on-the-fly using cloud text-to-speech services. This capability allows for the creation of custom sentences based on user interactions. Several genders and languages are supported. Additionally, Speech Synthesis Markup Language (SSML) is supported, offering more natural-sounding interactions.
SIP/SIP-I Proxy
A new SIP/SIP-I external proxy is now available to facilitate interworking with external systems that require ISUP messages embedded within SIP signaling. This proxy serves as a protocol bridge between the SRE and legacy SIP-I equipment.
Contacts List from Redirect Response
When the SIP stack is configured to handle SIP redirect responses (e.g., 30x) and triggers the SRE to execute a crankback service logic, the list of contacts from the redirect response is captured in a new variable, receivedContacts. The service logic can then process and manipulate this information before continuing with the call.
Data Model
UUID Column Type
Datamodel tables can include UUID columns, with the option to automatically generate a random UUID upon creation if one is not provided. This enables the generation of globally unique IDs across multiple deployments.
Columns Renaming
It is now possible to rename existing columns even after the data model has been activated, without losing any existing data.
Service Logic
Simulate with Custom Variables
It is now possible to set variables before running the simulation. This is particularly useful when testing specific parts of a service logic, such as a sub-service logic, without the need to simulate the entire call from the top-level parent logic.
Load Simulation Data from Trace
It is now possible to automatically populate simulation data by extracting all necessary information from a call traced from the network. This feature enables capturing real calls and replaying them directly in the service logic editor, making it easier to debug issues.
Node Logging
It is now possible to log arbitrary data node-by-node. The log lines will be part of the summary log.
Example use: By logging relevant information at key nodes, you can capture details about the call logic executed.
Example node configuration:
Example output:
logger='sre.cp.tracing.summary' level='info' timestamp='2025-01-03T16:54:38.313050+00:00' hostname='sre-41-cp1' request='ph1as7qs' description='7000 -> the_sip_server (CxmOW9w-3v)' steps=... response=... duration=21.150827407836914 log=['call type IVR from 7000'] event='completed'
Diameter Client Support
A new node, Diameter Request, has been introduced, enabling the SRE to act as a Diameter client for external systems. It supports most standard Diameter applications, types, and vendors. Additionally, fully custom requests can be created by specifying the request content as a JSON payload, which is then converted into the appropriate Diameter AVPs. Multiple servers can be configured to facilitate load balancing.
With this new feature, the SRE can seamlessly integrate with LTE/5G Core Networks, IMS (IP Multimedia Subsystem), policy control systems, and more.
Conditionally Set Variables
Since setting a variable based on specific conditions is a common operation in service logic, a new node, Conditionally set variables, has been added to streamline this process.
Raw SQL Query Node
A new node, Database Raw Query, allows users to specify custom SQL queries for direct execution on the database. This provides greater flexibility, especially when the existing Database Query node, which uses a predefined set of operators, does not address specific use cases.
Cooldown for HTTP Nodes
The HTTP JSON Query node has been enhanced with a cooldown mechanism for target HTTP servers. If a server fails repeatedly, it will not be triggered again until the cooldown period has expired. This eliminates the need to rely on timeout mechanisms to proceed with service logic execution.
Improved Nodes
The node Extract SIP Header can now directly extract the URI from the header content. This allows for stripping elements such as display names or the enclosing angle brackets around the URI.
A new operator has been added to the Database Query node, enabling matching using regular expressions.
Performance
Service Logic Execution Deadline
The SRE enforces the configured service logic timeout, halting execution if the deadline is reached, as any response would be ignored by the caller. This mechanism helps mitigate issues during periods of overload.
Faster JSON Path Extraction
The Extract JSON Path and HTTP JSON Request nodes now offer improved performance thanks to enhancements in JSON-path handling.
Keep-Alive Support for HTTP Nodes
HTTP Keep-Alive (also known as a persistent connection) can be enabled on HTTP nodes. When activated, the TCP connection remains open after a request/response cycle, allowing subsequent requests to reuse the same connection. This provides several benefits, including reduced latency and improved performance.
Operations
Structured Logging
The logging framework has been enhanced to support structured output in various formats, including logfmt and JSON.
Structured logging offers numerous advantages, particularly when integrated with third-party tools like Elasticsearch, Splunk, or Graylog. These tools enhance log management by improving readability, enabling advanced search and filtering capabilities.
Example JSON format:
{"request": "114qh7bt", "duration": 0.003, "nodeId": "relay inbound SIP to media server:71.relay to MS:2", "nodeType": "output.nit.sip.relayToMedia", "cd": {"requestMethod": "INVITE", "callId": "121tudAS97", "fromURI": "sip:7000@10.0.252.2", "fromUsername": "7000", "toURI": "sip:the_sip_server@10.0.161.198", "toUsername": "the_sip_server", "requestURI": "sip:the_sip_server@10.0.161.198:5060", "requestUsername": "the_sip_server", "sourceAddress": "10.0.252.2", "sourcePort": "55001", "destinationAddress": "10.0.161.198", "destinationPort": "5060", "authUsername": "<null>", "authStatus": "0", "lastRequestURI": "0", "lastCode": "0", "counter": "0", "cacSequence": "0", "ssCode": "2", "ssAttestation": "", "ssOrigin": "", "ssDestination": "", "receivedContacts": "[]", "originalCalling": "7000", "calling": "7000", "originalCalled": "the_sip_server", "called": "the_sip_server", "dummy_var": "this was set in SIP SL"}, "event": "node executed", "logger": "sre.cp.tracing.flow", "level": "debug", "timestamp": "2025-01-05T06:18:57.706891+00:00", "hostname": "sre-41-cp1"}
Log Viewer
An integrated log viewer has been added to the GUI, eliminating the need for shell access to view log files. The log viewer allows users to select and display or download specific files, with highlighting and filtering functionalities. It also supports live tailing of log files. It is available under the System / Logs menu.
Support Info Download
A support info file can be generated from the GUI under the Help menu. This file can then be provided to the support team when opening a ticket.
DB Backups List
A new UI is now available under the System menu to manage database backups, allowing users to list, download, or delete them. Additionally, database backups are automatically synchronized with the standby EM for enhanced reliability.
Table Synchronisation
The operator can now initiate data transfers between Version A and Version B of any service database in either direction, ensuring both versions are synchronized. This feature is available under the System / Data Versioning menu.
Manual Switchover
It is now possible to perform a database switchover between Element Managers directly from the GUI. This action can be initiated from the standby EM node via the Node Operational Status page. The switchover promotes the standby EM to master and instructs all other nodes to align with the new master.
Improved Batch Provisioning Database Storage Reclamation
The sre-batch-provisioning tool has been enhanced to reclaim database storage space more efficiently when data is erased, optimizing resource utilization and overall performance.
Faster batch Provisioning Insertion
Batch provisioning insert operations have been optimized by utilizing the significantly faster SQL COPY statement. This enhancement is applicable when no "on conflict update" columns are defined in the data model.
Alarm Hysterisis
A new parameter has been introduced to define the duration for which the monitored condition must persist before the alarm state changes. This helps prevent frequent or unnecessary alarm triggers caused by fluctuations around a predefined threshold.
Deployment
New OS Support
Redhat Enterprise Linux (RHEL) 9 is officially supported.
Docker Image
An official image is available to deploy SRE with docker containers. This image is an all-in-one package that includes the SRE along with all necessary third-party software, such as the database, SIP stack, and more.
Miscellaneous Enhancements
The following is a list of minor enhancements which do not affect the main functionality of SRE:
- updated jquery dependancy removed jquery-migrate dependancy
- added option to use in-memory dialog for saving original from and to
- migrated service logic form from React to VueJS
- added configurable roles mapping from LDAP-defined users to SRE-defined roles
- added optional rate limit module to Kamailio configuration
Upgrade From 4.0
INFO
If you are coming from a release prior to 4.0, refer to the release notes for that release to perform the intermediate steps.
Element Managers
SRE RPM Update
To launch the upgrade, on all EMs do:
# yum install /<path>/sre.4.1.x-y.x86_64.rpm
You must upgrade the internal DB schema. Therefore on the master EM node only, run:
# /opt/sre/bin/sre-admin db upgrade
The DB schema change will be applied to the other nodes through standard DB replication.
After you need to restart SRE on both EMs with:
# systemctl restart sre
Call Processors
Call processors must be upgraded one by one.
If the call processor runs the SIP stack, perform the following steps:
Take the CP offline from the GUI (System->Node operational status->out-of-service). Alternatively, you can set the CP out-of-service from the SIP client equipment (e.g. SBC, ...). Check traffic has stopped on the CP by checking with tcpdump, sngrep or the dashboard statistics.
Shutdown Kamailio with:
# systemctl stop kamailio
- Upgrade SRE from the RPM with the same command used for EM:
# yum install /<path>/sre.4.1.x-y.x86_64.rpm
# systemctl restart sre
- Copy the file /opt/sre/etc/kamailio/kamailio.cfg to /etc/kamailio
- Adapt the file /etc/kamailio/kamailio.cfg depending on the deployment (usually only the line listen, which contains the listening address of your Kamailio instance)
- Restart Kamailio with:
systemctl start kamailio
- Enable traffic from the GUI (System->Node operational status->in-service)
If the call processor runs the ENUM interface or the HTTP interface, perform these steps:
- If the client equipment allows putting the SRE CP out-of-service so that no requests are sent to it, proceed in this way.
- Upgrade SRE from the RPM with the same command used for EM:
# yum install /<path>/sre.4.1.x-y.x86_64.rpm
After the upgrade is done at least on 1 CP node, make sure the CP is handling requests in the expected way, as in the previous release. Verify that CDRs are created on EMs (if enabled) for the requests handled by this CP.
If this is confirmed, proceed to the next CP node.
Downgrade From 4.1 to 4.0
You must downgrade the internal DB schema. Therefore on the master EM node run as user postgres:
# psql
and use the following commands:
# postgres=# \c sre
# sre=# DROP TABLE media_server;
Install the previous rpm on all EMs and CPS with the command:
# yum downgrade /<path>/sre.4.0.x-y.x86_64.rpm
On CPs restore the previous Kamailio configuration file and restart kamailio with:
# systemctl restart kamailio
Patch Upgrade Path From 4.1.x
To upgrade to a target patch release, the Admin needs to check the upgrade path to know which actions to take.
WARNING
It is important to highlight that an action needed at a patch level 4.1.N is also needed for direct upgrade to 4.1.N+1, 4.1.N+2, ...
Patch release | Needed actions |
---|
In addition to the listed needed actions:
On all nodes, do as root:
# yum update /<path>/sre.4.1.x.-y.x86_64.rpm
# systemctl restart sre
Verify always the possible differences of the following files with the diff command:
# diff /etc/kamailio/kamailio.cfg /opt/sre/etc/kamailio/kamailio.cfg
If any difference is observed, verify with Netaxis Support/R&D.