Article ID:3895264

VIP 45 - Internal Release Notes

Complete listing of VIP v45 release notes (after v45.0, prior to v46.0) — written for both technical and non-technical staff.

Written By Gideon O'Daniel (Administrator)

Updated at July 23rd, 2026

 

Complete listing of VIP v45 release notes (after v45.0, prior to v46.0) — written for both technical and non-technical staff.

Overview

⚠️ Ubuntu Support

Ubuntu 18 is no longer supported in NetSapiens platform version v45.0. Supported OS versions include Ubuntu 20, 22, and 24.

✨ What's New: Feature Highlights

A plain-language look at the 15 biggest new capabilities in v45 (grouped by area). For every fix and smaller improvement, see the full tables further down.

Recording & Compliance

Third-party call recording integration (SIPREC)NMS-2470

Adds standards-based session recording (SIPREC), including an integration with Smarsh Call Recording and Analytics (formerly CallCabinet). This lets calls be recorded and analyzed by outside recording platforms your business may already use, with configurable, secure storage.

Automatic archiving of old call recordsCDR-477

Older call detail records and event data can now be automatically moved from the database to lower-cost S3-compatible storage once they age out. Nothing changes for end users — the data stays fully accessible through the API for reporting and compliance, it just lives somewhere cheaper to store long-term.

Login & Security

One login page for every appWTAUTH-2

Portal, WebPhone, and other apps now share the same login page, which then redirects you to the right place after signing in. Admins can also require Single Sign-On (SSO) and Two-Factor Authentication (2FA) at the system, domain, site, or individual user level.

Call Handling & Routing

Keep queue calls on the local serverNMS-3387

A new “OnlyLocalAgent” queue option makes sure calls are only sent to agents registered on the same local server, which can help with performance in multi-site deployments. New reporting metrics track local queue wait times.

Play MP3 audio during automated callsNMS-2963

Automated call flows (WebResponder) can now play MP3 files directly, in addition to the formats already supported.

Smarter caller-ID handling for transferred callsNMS-3521 / NMS-3522

New tools let the system pass along and trust caller-identity information (Diversion Headers) when a call is forwarded or transferred between servers, so the original caller's details are preserved more reliably.

More accurate records for transferred geo-redundant callsNMS-3543

Fixes how call records are created when a call is transferred between geographically redundant servers, so each leg of the call gets its own accurate record instead of overwriting previous data.

Safer maintenance testing for phone serversNMS-3568

Admins can now exclude specific test accounts from the “send everyone elsewhere” commands used during server maintenance, making it easier to safely test a server before putting it back into production.

More encryption options for call connectionsNMS-3751

Individual trunk connections can now use their own encryption settings for secure calls (SRTP), instead of being locked to one system-wide default.

Portal & Admin

Temporary setup passwords for phones, now in the PortalOMP-3732

Admins can generate a temporary, one-time password directly in the Portal to factory-reset or set up a phone. Previously this was only available in the more technical Endpoints Module.

Connect to Crexendo MarketplaceOMP-5915

The platform can now connect to the Crexendo Marketplace.

More flexible API automationAPI-2164

Custom data — like voice settings or scripts — can now be attached to API-driven calls and passed to services like Web Responder, enabling more tailored automated call experiences.

Self-service access to analytics data via APIAPI-2479

Added an API path for pulling iNSight analytics data directly, including ready-made queries and (for iNSight Pro users) more advanced options.

Keep server configuration in sync automaticallyNMS-258

A new setting (SBUS_SEND_CONFIG_SRV_CODE) lets service codes replicate automatically between servers in a deployment when changes are made in the Admin UI.

WebPhone

Text messaging queues in WebPhoneWP-1862

WebPhone now supports SMS queues, so text conversations can be routed and handled the same way call queues are.

Release Nomenclature

Our forum announcements and webinars may refer to the following terms when discussing releases.

Alpha or beta release (also known as an early release): verified by the feature designer and technical leads, but completely untested by the NetSapiens QA team. To participate in early access testing, follow directions in the NetSapiens forum announcements.

GA release: tested by the NetSapiens QA team. Also contains bug fixes and improvements customers requested via the early access feedback form.

Releases themselves fall into one of three types:

Major Release
e.g. v45.0
Significant fixes/improvements across many modules, such as library updates and schema changes. Version changes apply to all NS packages.
Maintenance Release
e.g. v45.4
Significant fixes/improvements across a few modules. Version changes apply to all NS packages.
Microversion Release
e.g. netsapiens-nms 45.3.3
Significant fixes/improvements specific to one module ("microrelease"). Version changes apply only to that module.

Release Reference Guide

Read "What is Currently Supported?" for SNAPsolution versioning, including SNAPmobile, and tips for determining what is running in your system.

Downloads (last updated July 15, 2026)

📄 SNAPsolution v45 Release Notes_July 13_2026.csv

📊 SNAPsolution v45 Release Notes_July 13_2026.xlsx

Feature Announcements

A "feature showcase" highlights new features, improvements, and critical bug fixes for a major or maintenance release, and may include a recorded webinar.

v45 Feature Showcase covers the 45.0.0 release. Early Access released October 28, 2025; GA released July 1, 2026.

Self Upgrade / Downgrade

Self-upgrade info is consolidated into two articles for a logical, uninterrupted upgrade experience:

Note: Fixes and improvements committed in v44.5 were not included in v45.0.0 — they are now available starting in 45.0.1. See the v44 SNAPsolution Release Notes for details on what shipped in v44.5.

Listed in reverse date order below — the latest build of each component is listed first.

45.0.1 / 45.1 Microreleases

Smaller, module-specific patches released shortly after v45.0.

netsapiens-charts-app 45.0.1 — SNAPanalytics (Charts)

Ticket Type What changed
CHRT-665 Bug Fixed a v45 regression issue that caused the SNAPanalytics page to fail to load correctly for users with the Call Center Supervisor role. Access and page rendering now function as expected for affected users.

netsapiens-ndp 45.0.1 — Endpoints Module

Ticket Type What changed
NDP-1064 Bug Resolved an issue preventing users from updating the SIPbx server assigned on analog gateways.
NDP-1466 Improvement Enhanced Grandstream HT V2 device provisioning to support individual FXS port enable/disable configuration, providing greater control over port availability and device management.

netsapiens-node 45.0.1 — Node

Ticket Type What changed
NN-636 Bug Addressed an issue that prevented the automatic creation of the Premium Video host ID during the transition of an existing domain.

netsapiens portals 45.0.1 — Portal

Ticket Type What changed
OMP-6870 Bug Fixed an issue that caused the Read More link to display an inaccurate product status message for IBM Watson TTS configurations. The link now correctly reflects the current status of the configured TTS service and no longer indicates that the product version is unpublished when the configuration is active and supported.
OMP-6877 Bug Fixed a v45 regression and strengthened permission enforcement to ensure Site Managers cannot access, edit, or modify the Profile, Security, or other user details of higher-scope users.
OMP-6908 Bug Fixed an issue where sorting report columns caused the Listen button to lose functionality. Users can now successfully play call recordings after sorting any column in the Queue Stats, Agent Stats, and Dialed Number Stats reports.

netsapiens-webphone 45.1 — WebPhone

Ticket Type What changed
WP-2358 Bug Addressed a v45 regression issue that caused active call information to be overwritten when a second incoming Webphone call was rejected. Users now see the correct caller information for their active call after rejecting a second incoming Webphone call, ensuring accurate call identification.

v45.0 GA Release (July 1, 2026)

Early Access was available starting October 28, 2025; General Availability (GA) followed on July 1, 2026. Read the forum announcement: "SNAPsolution v45.0 GA Release is Now Available!"

"Guidebook for SNAPsolution v45.0: Preparing for Upgrade" — new for this release. Covers what's new in v45, breaking changes and how to remedy them, installation checks, and debugging tips. Read it in full before upgrading, and raise any questions beforehand — changing course after upgrading can mean avoidable costs or disruption.

200 tickets shipped in this release, spanning 12 modules:

53%
Bug (106)
24%
Improvement (49)
6%
New Feature (13)
13%
Sub-task (26)
2%
Epic (3)
1%
Task (2)
0%
Story (1)

API (73 tickets)

Ticket Type What changed
API-1373 Improvement Improved push notification delivery across Mobile, PWA, and WebPhone applications. Voicemail notification events are now sent to devices for all inbound voicemail types.
API-1446 Improvement Improved the automatic correction of corrupted email templates in the system by verifying and re-inserting templates with null or zero file sizes during API installation.
API-1497 Bug Added a new API Config, SOX_ENCODING, which selects the codec the system uses to store system audio files (such as greetings) when uploading from the Portal. By default, this is set to u-law and system audio files will adopt u-law encoding. Set the config to the following to adopt a-law encoding: Configure::write("SOX_ENCODING", "a-law")
API-1643 Bug Corrected a data rounding issue that caused discrepancies between emailed call center statistics and portal data when time values exceeded 24 hours. Additionally, introduced support for PORTAL_CALL_QUEUE_STAT_TIME_FORMAT to ensure time formats in email reports now align with those displayed on the portal.
API-1688 Bug Fixed an issue where the queue total did not include both Total Volume and Forwarded (FWD) statistics, resulting in incomplete reporting. The queue total now accurately reflects all relevant metrics.
API-1769 Improvement Created the following API v2 routes for conferences and conference participants: Get Conferences in Domain; Create Conference for Domain; Get Conferences Count in Domain; Get Conference CDR from Domain; Update Conference in Domain; Delete Conference in Domain; Get Participants from Conference; Create Participant for Conference; Update Participant for Conference; Delete Participant from Conference.
API-1785 Bug Fixed an issue where sharing a call trace generated from data originating in a previous year would fail. The share file was incorrectly referencing the current year's database table instead of the table corresponding to the trace's source data. Call traces from prior years can now be saved and shared correctly.
API-1829 Bug Corrected an issue where reading Allow/Block rules in the API was inaccurate.
API-1841 Bug Resolved an issue where faxes sent via Pangea email-to-fax were not appearing in the Portal inbox. Faxes sent from the Portal now correctly appear in the Sent items. Faxes sent via email or ATA continue to remain hidden by design to support compliance requirements.
API-1862 Improvement Enhanced the push notification system by improving the cleanup of invalid push tokens. This update reduces the number of incorrect tokens sent to vendors, resulting in more efficient delivery and fewer rejected push attempts.
API-1959 Bug Resolved an issue where API v2 allows creation of Time Frame names with special characters, causing deletion issues and display problems in the portal.
API-1962 Bug Added protection to prevent deletion of answering rules associated with the * (star/default) Time Frame. These rules are now safeguarded to ensure system integrity and prevent accidental removal of default configurations.
API-1985 Bug Addressed a bug where the API incorrectly returns a success code (202) when attempting to delete a non-existent Answering Rule.
API-1992 Bug Resolved an issue where the orig_callid and term_callid parameters were functional but undocumented in the API v2 CDR read endpoint. These parameters are now officially supported and documented.
API-2000 Bug Added a missing endpoint in API v2 that allows sending calls to a queue.
API-2015 Bug Enhanced the API v2 subscriber update endpoint to include stricter validation. Requests to update a subscriber that does not exist will now return a 404 Not Found response, preventing unintended operations and improving API reliability.
API-2038 Bug Resolved an issue where the Get SMS Numbers for Domain API call (/domains/{domain}/smsnumbers) failed when used with a Reseller scope unless dest was set to "*". Reseller and other lower-scope users can now access this endpoint without this setting, improving compatibility and simplifying integration.
API-2055 Bug Improved audit log subscriptions to avoid duplicate data.
API-2121 Bug Optimized Aria conversion of CDRs by removing unnecessarily complex indexes prior to processing.
API-2131 Improvement Implemented Reseller configurations for the Snom ZTP provisioning system with the following API configs: SnomZTP.<Reseller>.key: The Snom Access Key ID in the SRAPS portal for the given Reseller. SnomZTP.<Reseller>.secret: The Snom ZTP Secret in the SRAPS portal for the given Reseller. SnomZTP.<Reseller>.company: The company ID in the SRAPS portal for the given Reseller.
API-2137 Improvement Resolved a gap in API v2 where the "Report Active Calls" endpoint lacked support for viewing peak active calls by reseller with date range filtering—functionality previously available in the legacy API.
API-2144 Bug Migrated Call Center Statistics endpoints from API v1 to v2, ensuring feature parity and case-insensitive fields.
API-2153 Bug Added support for 10DLC STOP functionality with the addition of API and UI configs. API configs: SMS_STOP_KEYWORD (default STOP,END,QUIT,CANCEL,UNSUBSCRIBE) specifies keywords that recipients can send. If sent, these keywords will trigger the response specified by SMS_STOP_REPLY and will stop messages from being sent to that number. SMS_CONTINUE_KEYWORD (default START,SUBSCRIBE,YES) specifies the keywords a recipient can send to start receiving messages again after sending an SMS_STOP_KEYWORD. SMS_HELP_KEYWORD (default HELP) specifies the keyword used to trigger a HELP message, as defined by PORTAL_SMS_HELP_MESSAGE. SMS_STOP_REPLY (default "STOP confirmed. You will no longer receive messages from this number. Reply START to opt back in.") defines the reply sent to a recipient that has entered an SMS_STOP_KEYWORD. SMS_CONTINUE_REPLY (default "You have successfully opted back in and will receive messages from this number again.") defines the reply sent to a recipient that has entered an SMS_CONTINUE_KEYWORD. UI Configs: PORTAL_SMS_HELP_MESSAGE (default "Please reply with <StopKeyword> to opt out of messages, or <Continue Keyword> to opt back in.") specifies the reply sent to a recipient that has entered a SMS_HELP_KEYWORD. PORTAL_SMS_STOP_REPLY (default defined by the API config, PORTAL_SMS_STOP_REPLY) overrides the API config SMS_STOP_REPLY, allowing customization per domain of an SMS campaign's auto reply to a STOP request. PORTAL_SMS_CONTINUE_REPLY (default defined by the API config, PORTAL_SMS_CONTINUE_REPLY) overrides the API config SMS_CONTINUE_REPLY, allowing customization per domain of an SMS campaign's auto reply for opting back in.
API-2164 New Feature Added support for including custom "call-parameters" in API calls. These parameters can now include nested details—such as voice settings or scripts—that are passed to destination services like Web Responder. Arrays are not supported in this structure but the data contained in nests can be tailored to the needs of your specific applications and Web Responder script. These custom parameters allow for extreme flexibility when combining API and Web Responder functionality with custom TTS available depending on varying call details, such as Caller ID.
API-2201 Bug Fixed an issue where the "recording-configuration" field was missing when reading all call queues in a domain via API v2. Now when reading multiple call queues, devices, domains, or users, the field "recording-configuration" will also be returned.
API-2208 Bug Improved handling of PORTAL_DOMAINS_NEW_POSTFIX in API v2. User creation via API v2 now correctly retains the configured PORTAL_DOMAINS_NEW_POSTFIX in the subscriber_login field, ensuring the postfix is no longer stripped.
API-2249 Bug Resolved an issue where emailed call center reports were missing AST statistics. Reports now correctly display all relevant metrics.
API-2251 Bug Resolved an issue where inbound messages with text inside an MMS were incorrectly treated as MMS. The API now correctly identifies and processes the text portion as SMS, allowing inbound messages containing SMS and MMS to be properly received in the portal.
API-2270 Bug Ensured that when a call reaches a queue and is, through that queue's forwarding settings, sent to a second queue, that the CO (Calls Offered) statistic for the initial queue is incremented.
API-2292 Bug Improved support for phone numbers stored outside the DID table by honoring existing UI configs. Also fixed a bug where the dialrule_domain field wasn't updating automatically after changes, which previously caused empty DID inventory displays in the portal.
API-2318 Bug Improved the API's subscription read functionality to allow Super Users and Resellers to view subscriptions created by lower-level scopes. Also updated create and update operations to ensure the reseller field is correctly set for domain-specific subscriptions, enabling proper visibility for Reseller scopes.
API-2380 Bug Corrected an issue when updates with names differing only in capitalization passed validation, causing downstream issues. These requests will now return a 404 Not Found with a warning about case sensitivity.
API-2392 Bug Resolved an issue where Office Manager API keys cannot edit or update their own subscriptions. New documented paths in API include /domains/{domain}/subscriptions and /domains/{domain}/subscriptions/{id}.
API-2393 Bug Added logic to prevent the scope field of an event subscription from being modified when the update originates from a higher-level scope. This ensures that subscriptions retain their intended scope and are not inadvertently overridden.
API-2419 Bug Improved the performance of the image upload API by optimizing how image data is handled before storage. Specifically, image data is now encoded in hexadecimal format prior to being sent to the MySQL database.
API-2425 Improvement Added Support for SNAPbuilder in API v2 with many paths documented in the SNAPbuilder section of API documentation.
API-2435 Bug Resolved a bug to properly hide caller information when privacy is enabled, ensuring correct display based on user roles.
API-2444 Sub-task Introduced a new Count Device Profiles endpoint, which allows users to retrieve the total number of device profiles in their environment. This provides a quick and efficient way to monitor device profile volume for reporting and management purposes.
API-2445 Sub-task Added three new endpoints to API v2 that allow users to retrieve counts of CDR (Call Detail Record) schedules based on different criteria. These include counting CDR schedules for a specific domain, for a reseller, and by name.
API-2447 Sub-task Added the Charts Count and Charts List endpoints for API v2 to enhance chart management capabilities. The Charts Count endpoint allows users to retrieve the total number of charts available, while the Charts List endpoint provides access to a detailed list of all charts.
API-2448 Sub-task Added two new endpoints to API v2 to support enhanced dashboard management. The Dashboards Count endpoint allows users to retrieve the total number of dashboards, while the Dashboards List endpoint provides access to a complete list of available dashboards.
API-2449 Sub-task Added two new endpoints to API v2 to enhance phone resource management. The Count Phone Configurations endpoint allows users to retrieve the total number of phone configuration records, while the Count Phone Templates endpoint provides the total number of phone templates available.
API-2450 Sub-task Added endpoints to API v2 to support enhanced quota management for domains and resellers. These endpoints allow users to retrieve detailed quota information and count quota records.
API-2453 Sub-task Added a new API v2 endpoint to support listing departments within a specific domain. This allows clients to retrieve department data scoped to a domain.
API-2454 Sub-task Added two new API v2 endpoints to support listing presence data at both the domain and department levels. These endpoints enable clients to retrieve presence information scoped to organizational units, providing visibility over user availability across domains and departments.
API-2455 Sub-task Added a new endpoint to API v2 to support reseller management by allowing users to retrieve the total number of resellers in the system.
API-2456 Sub-task Added new API v2 endpoints to support counting devices across various organizational scopes, including domain, user, device, and reseller. These endpoints provide flexible access to device count data at different levels of the system.
API-2457 Sub-task Added a new API v2 endpoint to support counting agents within a specific call queue, enhancing visibility into queue staffing.
API-2458 Sub-task Added a new API v2 endpoint to count the number of Answering Rules configured within a given domain.
API-2459 Sub-task Added a new API v2 endpoint to count the number of voicemails stored in a specific user's voicemail folder, supporting voicemail management.
API-2460 Sub-task Added a new endpoint to API v2 to support greeting resource management by allowing users to retrieve the total number of greetings associated with a specific user.
API-2461 Sub-task Added a new endpoint to API v2 to support Music on Hold (MOH) resource management by allowing users to retrieve the total number of MOH configurations within a specific domain.
API-2462 Sub-task Added a new endpoint to API v2 to support counting Music on Hold (MOH) configurations assigned to individual users.
API-2463 Sub-task Added a new endpoint to API v2 to support counting dial rules within a specific dial plan, improving visibility into dial plan configurations.
API-2464 Sub-task Added a new endpoint to API v2 to count Phones (MAC Addresses) within the system by domain, reseller territory, or model.
API-2465 Sub-task Added a new endpoint to API v2 to support counting sites within a specific domain.
API-2466 Sub-task Added a new endpoint to API v2 to support counting UI config settings across the system.
API-2467 Sub-task Added a new endpoint to API v2 to support counting voicemail reminder records for individual users.
API-2468 Sub-task Added a new endpoint to API v2 for Listing Public User Information for a Domain.
API-2469 Sub-task Added a new endpoint to API v2 to support listing site records within a specific domain.
API-2470 Sub-task Added a new endpoint to API v2 to support counting hold messages within a specific domain.
API-2471 Sub-task Added a new endpoint to API v2 to support counting system audio file records by domain or individual users.
API-2475 Improvement Added "kid" parameters to JWT tokens when using RSA encryption. This allows the user to quickly identify which public key from the JWK Set should be used to verify a given token.
API-2477 Improvement Cleaned up logic concerning users, Auto Attendants, routes, dial translations, dial permissions, phone numbers, queues, agents, answering rules, Time Frames, and audit logs in API v2.
API-2479 New Feature Added an API path to enable access to iNSight data. This includes prebuilt queries and ranges available with more advanced options available for iNSight Pro users.
API-2482 Improvement Corrected a spelling error in API Dog's user schema (directory-announce-in-dial-by-name-enabled). The correction exists only in API Dog and will not propagate to the documentation site until the proprietary publishing script is run.
API-2507 Bug Improved visibility of event subscriptions for users with Basic User type scopes. Resellers and Office Managers can now more easily view and manage event subscriptions associated with these users.
API-2511 Improvement Addressed an issue where the API would return timeframe-name as an integer when the name consisted only of digits, instead of consistently returning it as a string. This fix enforces the string type for timeframe-name.
API-2554 Bug Corrected an issue where call trace access was being blocked by CSP in some cases due to DNS configurations.
API-2556 Bug Improved the "count" action in the API for phone numbers within the Reseller scope to better utilize updates to the dialrule_domain field, improving page load times.
API-2559 Improvement Added two UI configs during Early Access feedback: PORTAL_SMS_STOP_REPLY and PORTAL_SMS_CONTINUE_REPLY. These define the text of reply messages to a STOP request or when a recipient opts back in to an SMS campaign. These UI configs override the API configs, SMS_STOP_REPLY and SMS_CONTINUE_REPLY, allowing for more flexibility and further localization options for SMS auto replies.
API-2566 Improvement Added validation to prevent SMS call queue configuration conflicts with 10DLC compliance keywords. The system now blocks saving call queue configurations when the initiation or termination keywords match reserved 10DLC keywords.
API-2655 Bug Addressed API installer issues caused by merge conflicts with recent database updates. Now, email templates and schema modifications are correctly implemented.

Core Module (NMS) (52 tickets)

Ticket Type What changed
NMS-258 New Feature An issue was identified where SBus did not replicate service codes between a deployment's servers when using the Admin UI. This is controlled by the UI config, SBUS_SEND_CONFIG_SRV_CODE (default, "no"). If service codes are not being replicated (and that behavior is desired), make sure the UI config is set to "yes". This config may only be set system-wide.
NMS-1013 Bug Resolved a rare crash condition in the Core Module that occurred during WAV file writing.
NMS-1424 Bug Corrected SSRC, sequence number, and timestamp handling for Comfort Noise packets to ensure accurate synchronization and stream integrity.
NMS-1574 Bug Fixed an issue where SIP trunk calls over geo-connections incorrectly count as two external calls, resulting in call limit issues.
NMS-1652 Improvement Added support to send SIP OPTIONS through connections. This allows endpoints to send OPTIONS pings. If no response is received within the period specified by the Core system parameter, RegisterTimeout, the system will disallow termination and trigger the system to look for other routes and forwarding options or end the call. Introduced Core System parameters and connection rules. New System Parameters: GwOptPeriod (default "60"): This is the period the system will attempt to send SIP OPTIONS requests to assess the health of the termination end of a connection. This parameter can be overridden with the connection rule, OptPrd. GwTermCheckOptions (default "yes"): Enables the system to check for 200 OK responses to SIP OPTIONS requests. If no 200 OK is received within the period defined by RegisterTimeout, connection termination will be disallowed (SendOptions must be added to the connection). If set to "no", the polling of Connection health with OPTIONS will be disabled. Note this will affect any calls that utilize Connections configured to use OPTIONS health checks. New Connection Rules/Token: SendOptions: When added to a connection's Rules field, the OPTIONS will be sent towards the destination if present. OptPrd: Overrides GwOptPeriod with a new time period to send SIP OPTIONS. The rule should follow this syntax: "OptPrd=#ofseconds". For example, "OptPrd=30" will set the time period to 30 seconds.
NMS-2181 Improvement Ensured that, during geo-calls, the geo-active core will be responsible for sending RTP streams to recording servers. Previously, some cases resulted in multiple core servers unnecessarily sending rtp streams.
NMS-2470 Epic Implemented support for Session Recording Protocol (SIPREC) to enable interoperability with 3rd party Recording Management Applications. This enhancement introduces standards-based session recording via SIPREC, an integration with Smarsh Call Recording and Analytics (formerly CallCabinet), which offers configurable and secure call recording storage, and enhanced analytics capabilities.
NMS-2522 Bug Expanded the config_name table to VARCHAR(128), allowing 128 characters in a config name instead of 64. This was needed to accommodate long config names, especially those where a postfix may be appended, such as PORTAL_LOGIN_OFFICE_SSO_CLIENT_ID_<fqdn>.
NMS-2637 Improvement Changed the default of the Core system parameter, WssRenew, to "yes". This ensures the Core Module reloads the WebSocket server when the certificate is changed. This check now only occurs during a maintenance window defined by the following Core system parameters: CleanUpDayOfWeek and CleanUpHourOfDay.
NMS-2729 Bug Resolved an issue where inter-domain calls did not consistently honor caller privacy settings in Call Detail Records (CDRs). Support for privacy flags has been added to the SBus CDR Event when privacy is applied to a call. The CDR Tool and API now include logic to hide caller information when required, ensuring sensitive data is protected and privacy settings are properly enforced across domains.
NMS-2882 Bug Resolved an issue where call queue priorities were not applied correctly for agents assigned to multiple queues. Call routing now properly respects queue priority settings, ensuring agents receive calls in the correct priority order.
NMS-2963 New Feature Added MP3 playback support to the WebResponder <Play> verb.
NMS-2996 Bug Corrected an issue where the Call Queue Escape Key behaved differently depending on whether the caller pressed it while on hold or during dispatching. Now, callers are presented with the same options—based on the "If unanswered" settings—regardless of when the key is used, ensuring a consistent experience.
NMS-3072 Improvement Previously, the system attempted an occasional presence scan defined by the system parameter, PresenceScanPeriod. This can cause issues where changes in presence from Time Frame transitions are not recognized until there is a call event or the scan occurs. To allow the system to more quickly update a user's presence when Time Frames become active, Look Ahead logic has been introduced. This logic allows the system to look ahead and see what Time Frame changes will be occurring in the future. Once a Time Frame transition is noted, it is added to the Look Ahead queue (where it will not be updated via Look Ahead again). The system will then perform a scan of that user's presence when the Time Frame transition has occurred. Note that Look Ahead will increase CPU load. New System Parameters: SubLookAheadTimeFrame (default "no"): If "yes", enables Look Ahead. SubLookAheadOnlyAgent (default "yes"): If "yes", will only apply Look Ahead logic if the User is assigned as an agent in at least one Hunt Group. TimeFrameEventIntervalSec (default "30"): The resolution in seconds for scanning for future Time Frame transitions. Due to sampling effects, the resulting event is actually about twice this interval, e.g. 1 min by default. TimeFrameEventLookAheadSec (default "7202"): The span in seconds that Look Ahead logic will check for future Time Frames. This span should be longer than the period set for the System Parameter, SubCallToUpdateTO (default is 3600 sec), to account for any transitions that may happen between each scan. We recommend over two times the SubCallToUpdateTO value. Added iNSight metrics (Prometheus parameters): core_time_frame_queue_size: The size of the Look Ahead queue. core_time_frame_event: The number of Time Frame transitions being actively handled via Look Ahead by pushing into the Quick Scan Queue.
NMS-3231 Improvement Added a "Delete" operation when editing System Parameters (System > Settings > Advanced > Properties and System > Settings > Conferencing > Advanced > Properties) in the Admin UI.
NMS-3270 Improvement Made an improvement to the migration of device registrations in a server cluster when toggling the <Send503ToAll> parameter from "yes" to "no". Phones will not register with the original server again until registration expires with the failover server so call traffic is uninterrupted. Previously, after migration, the failover server would act as if devices were still registered to it, resulting in call failures when requiring geo-connections.
NMS-3272 Bug Fixed an issue where inbound calls via a Ring Group did not honor the user's "Forward On Active" call forwarding rule, unlike direct calls. This was resolved by adding a Forward No Answer check when dispatching to a User as Agent.
NMS-3273 Bug Resolved an issue where call queues did not correctly follow agents' Answering Rules when new Time Frames were activated using a Time Frame toggle. Call routing now accurately reflects agent availability.
NMS-3283 Bug Addressed an issue that caused dual-registration devices to lose the caller's name in the SIP FROM header during outbound calls.
NMS-3295 Bug Resolved an issue where new calls were being rejected with a 503 error when RTP relay ports were unavailable. The system now attempts media bypass to keep calls connected whenever possible. To support this behavior, a new system parameter, RTPRelayThrottle, has been introduced (default 25). This specifies the number of pairs of RTP relay ports reserved for active calls that may need to forward media—such as during transfers or queue dispatch—helping maintain call continuity under high load.
NMS-3303 Bug Added a new Call Detail Record (CDR) entry for calls that encounter "Forward Not Registered", "No Answer", or "Busy" conditions when routed from a queue.
NMS-3310 Bug Corrected an issue where a user's presence status is not updated to available after a call transfer.
NMS-3311 Bug Resolved an issue concerning editing User Call Features in the Admin UI (Configuration > Users > Show Features). After clicking "Change" for a specific Call Feature, special characters in the Caller field were not processed properly. Now they are.
NMS-3316 Improvement Added support for two new Dial Translation tokens to improve call routing customization: <EQ> now translates to =. <SEMI> now translates to ;. These additions make it easier to define complex dial plans and routing rules using familiar symbols.
NMS-3326 Improvement Added the "Reject" verb to WebResponder, which ends an incoming call at the signaling stage, before it's answered. It supports a reason attribute to specify how the refusal is signaled: <Reject reason="busy"/> returns a 486 Busy Here response. <Reject reason="rejected"/> returns a 603 Decline response. <Reject reason="unavailable"/> returns a 503 Service Unavailable response.
NMS-3354 Bug Added a Core system parameter, PreDspSubSnd100 (default "yes"). When enabled, the NMS sends a 100 response immediately upon receiving the SUBSCRIBE request, before processing. This ensures that the 100 is received within 100 milliseconds of the request and prevents duplicate SUBSCRIBEs.
NMS-3359 Bug Fixed an issue where the Core Module would fail to start the WebSocket server when IPv6 was not enabled.
NMS-3363 Improvement Improved performance by using filesystem events to trigger MWI instead of scanning system subscribers.
NMS-3377 Improvement Enhanced call queuing performance by introducing a caching mechanism for queue counts. The cache updates at most once per second, reducing processing overhead while maintaining timely and accurate call dispatch.
NMS-3387 New Feature Added the Call Queue Option, "OnlyLocalAgent". When added to a Queue's Options field in the Admin UI, calls to the queue will only be dispatched to agents registered to the local core of the call. Also added three metrics that can be used to design iNSight dashboards and alerts: queued_local: Count of calls queued locally. average_wait_seconds_local: Local Average Wait time in seconds. max_wait_seconds_local: Local Maximum Wait time in seconds.
NMS-3388 Bug Addressed an issue where request confirmation on PUSH-enabled devices causes call queues to skip agents and go directly to voicemail.
NMS-3408 Bug Fixed an issue where the Core Module would ignore call transfer requests if the call was connected to a blocking WebResponder <Stream>.
NMS-3410 Improvement Added prometheus metrics that track hunt groups' fifo. The following parameters can be used to create custom iNSight dashboards and alerts: callqueue_hg_db_fifo, callqueue_hg_db_fifo_over_total, callqueue_hg_db_fifo_size.
NMS-3435 Bug Updated system behavior that previously forced an immediate Queue Timeout (T/O) when a push request expired. This update ensures that queue handling follows normal timeout logic instead of triggering an automatic timeout upon push expiration.
NMS-3521 New Feature Added the Dial Translation token, "AddHrdDiv", to be used to add Diversion Headers using the Dial Translation's parameter field if diversion header information is available to draw from. An example value might be <AddHdrDiv="<HdrDiverName>"<SP><LT>sip:<HdrDiverUser:1858!!!!*]>@<HdrDiverHost><GT>>
NMS-3522 New Feature Added logic to ensure that a Diversion Header in an Invite sent from the geo-active node will be trusted by the geo-passive node.
NMS-3526 Bug Improved how calls are handled during reconnect scenarios to prevent unexpected behavior. The system now ensures it only responds to the correct confirmation signal, helping maintain smoother and more consistent call experiences.
NMS-3538 Bug Addressed an issue where API-generated calls to Web Responders were not properly closing sessions. Sessions are now correctly terminated.
NMS-3543 New Feature Added new logic for CDRs concerning geo-call attended transfers. Previously, logic resulted in overwriting accurate CDR data in geo-passive nodes. Now, this overwriting does not take place and instead a new CDR is created for the transfer, following expected behavior. Introduced the system parameter, CdrUpdateGeoActive (default "no"). Set to "yes" to apply pre-v45 behavior.
NMS-3568 New Feature Added System Parameters, Send503ExcludedAors and Send302ExcludedAors, to provide a list of AORs that will be excluded from Send503ToAll and Send302ToAll respectively. This allows testing of Cores after maintenance and before putting back into production. Send503ExcludedAors: Specifies a list of AORs (separated by space), extracted from the From-URI, to be excluded from "Send 503". Send302ExcludedAors: Specifies a list of AORs (separated by space), extracted from the From-URI, to be excluded from "Send 302".
NMS-3581 Improvement Introduced support for the <PersistPai> Dial Translation Token, which can be added to the Application Parameter field and ensures the P-Asserted-Identity (PAI) header is retained when required, such as upon re-INVITE. This enhancement improves identity consistency across call flows, supporting more reliable caller identification in complex routing scenarios. An example value might be "<PersistPai>P-Asserted-Identity:<LT>sip:<OwnCidNmbr>@<OwnDomain>;user=<OwnUser><GT><CRLF>"
NMS-3624 Improvement Added the NMS Parameter, CdrSBusChannelRange, default to "0", which allows multiple channels for CDR (Call Detail Record) SBus Events. By default, prior behavior continues, with only one CDR event channel. Modifying the parameter will hash the Orig Call-ID and distribute events across multiple channels.
NMS-3631 Bug Fixed a rare crash case in WebResponder.
NMS-3634 Bug Improved URL parameter parsing to ignore leading/trailing spaces in parameter names, ensuring consistent recognition of PIDF-Lo headers and accurate E911 call routing.
NMS-3649 Bug Fixed an issue where the system failed to detect PIDF-Lo location information, causing call failures. Parsing of the content body has been relaxed to no longer require a terminating carriage return and line feed (CRLF), improving compatibility and reliability.
NMS-3657 Bug Ensured that, if available, a call's Telephone Event type (for DTMF) will share the same sampling rate as the media codec in the 200 OK. Previously, behavior was unpredictable.
NMS-3692 Improvement The "Say" Web Responder verb has been enhanced to support SegmentedTTS, a new mechanism that splits long text to speech (TTS) scripts into smaller segments for more efficient synthesis and playback.
NMS-3751 New Feature Introduced a new functionality for connection rules, SRTP and SoRTP, allowing for connection-specific crypto suites, independent of the system-wide default defined by the Core system parameter, CryptoDefaultSuite. SRTP=<encryptiontype> (for example, SRTP=AES_256_CM_HMAC_SHA1_80). SoRTP=<encryptiontype> (for example, SoRTP=AES_256_CM_HMAC_SHA1_32config).
NMS-3812 Bug Removed deprecated Call Center Statistics files from the Admin UI to improve maintainability and ensure the interface reflects only current, supported functionality.
NMS-3936 Bug Resolved an issue where an invalid subscriber data limit value could cause an unexpected crash in the Core Module.
NMS-3941 Bug Fixed an unexpected failure that could occur when reading TCP packets containing a fragmented SIP Content-Length header.
NMS-3943 Bug Resolved an issue where the Core Module would fail to load the voicemail email setting from subscriber configuration. Affected subscribers will now have this setting correctly applied.

Portal (26 tickets)

Ticket Type What changed
OMP-3732 New Feature Added a new feature to the Portal allowing authorized users to generate a Global One-Time Password (OTP) for endpoints. This temporary, single-use password supports factory resets and initial provisioning of devices. After initial provision, devices are given a Per-Device Password (PDP) for future syncs with the system. Previously, this functionality was only available within the Endpoints Module.
OMP-4213 Improvement When deleting a Site, options to unassign or delete the site's users and queues will now be offered.
OMP-4442 Bug Corrected an issue where a queue's Call Volume total was inaccurate.
OMP-4774 Bug Resolved inconsistencies when using the Portal and WebPhone together, particularly when the Portal session expired. Previously, WebPhone could continue making API calls after logout, leading to unexpected behavior. Update includes a session expiry popup in the Portal with an option to re-login, and improved handling of WebPhone sessions when the Portal expires. New configuration: when UI config PORTAL_REVOKE_JWT_ON_EXPIRE = yes, WebPhone will log out when the Portal session expires. When PORTAL_REVOKE_JWT_ON_EXPIRE=no, WebPhone will retain its session token in line with best practices.
OMP-5008 Bug Updated Calls Offered (CO) definition to correctly include forwarded and voicemail calls. This ensures more accurate reporting and classification of call events across the system.
OMP-5145 Bug Addressed an issue affecting the sorting of Caller ID and E911 Caller ID numbers in dropdown suggestions. Numbers are now displayed in the correct order.
OMP-5404 Improvement Addressed an issue where the default value for the UI config PORTAL_MENU_SHOW_ROUTE_PROFILES was erroneously recorded as "yes" for Super Users and Resellers in the Portal Library. Now the default appears as "no".
OMP-5764 Bug Addressed an issue where newly created time frames appeared as expired in answering rules.
OMP-5881 Improvement Enhanced Time Frame display and usability across the application. Time Frames are now grouped by owner in dropdowns, improving clarity and visual organization. Users can create Time Frames with the same name as domain-level entries, with domain-level time frames clearly indicated as "overridden by user" during Answering Rule selection. Additionally, Time Frames are now displayed case-insensitively in selection dropdowns for improved readability and consistency.
OMP-5915 New Feature Added support to the platform to connect to Crexendo Marketplace.
OMP-5957 Bug Corrected the definition of the Forward (FWD) stat to clarify that calls forwarded to voicemail do not increment FWD.
OMP-6054 Improvement Removed the Device Type dropdown from the FaxBack Edit # modal in the portal as FaxBack will not allow an unknown device type. ATA types should instead be specified via the FaxBack admin Portal.
OMP-6193 Improvement When viewing a UI config that has multiple default values, each scope's default value will now be displayed in their own row.
OMP-6225 Bug If sites are disabled for a domain, the "Overwrite with Site Defaults" field when editing a user is now correctly hidden.
OMP-6293 Task Reviewed and replaced localization strings within the Portal, WebPhone, SNAP.HD, and SNAPanalytics to eliminate duplication and grammar errors.
OMP-6296 Bug Resolved an issue where, after a user was logged in for two hours, the time format displayed in the UI no longer aligned with the configured settings.
OMP-6301 Bug Resolved a critical issue preventing call transfers via the portal pop-up when SIPREC is enabled.
OMP-6472 Improvement Improved the "Forward if unavailable" help text in the Pre-Queue Options tab when adding or editing a call queue. Now, the help text reads: "Callers are forwarded here when the queue has reached its expected max wait, the queue is full, or the queue has no agents currently logged in."
OMP-6474 Bug Fixed an issue where multiple Auto Attendants designed in API v2 started with the same prompt ("Prompt_100"). This caused problems like overlapping call rules and made only one AA show up in the Manager Portal. Now, the portal assigns unique starting prompts to each newly created Auto Attendant.
OMP-6477 Bug Corrected an issue on Ubuntu 24 where updating .po files via updatelang.sh was not working. Now, the localization library has been updated and is compatible with U24.
OMP-6537 Bug Fixed an issue where some calls were missing transcription and sentiment data, even when the queue, user, or domain was properly configured for it. All eligible calls now correctly display transcription and sentiment information.
OMP-6540 Bug Fixed an issue seen in residential domains that would show users other user data when exporting contacts.
OMP-6575 Improvement Ensured that audit logs record when users export lists of contacts.
OMP-6605 Bug Fixed an issue with the "Show default configs" checkbox. Previously, modifying the box had no effect on the UI.
OMP-6696 Bug Improved 10DLC behavior after receiving early access feedback. Addressed the need for users to receive notifications when attempting to message numbers that have opted out.
OMP-6807 Bug Removed add-on settings for Premium Video. Instead, more robust feature sets can be enabled by choosing different Premium Video plans.

WebPhone (16 tickets)

Ticket Type What changed
WP-1220 Improvement Resolved an issue where the missed calls count on the WebPhone's home card persisted after viewing missed calls.
WP-1508 Improvement Added the UI config, PORTAL_WEBPHONE_REGISTRATION_REPLACE (default "yes"). When enabled, if a second WebPhone instance is opened, a prompt appears for the new session, asking the user whether the new instance should take over or the instance should return to the login page. Taking over the session will update the device credentials, thus stopping any other instances from registering. Setting to "no" will return to pre-v45 behavior.
WP-1679 Bug The value for PORTAL_WEBPHONE_PWA_NAME is now displayed above the PWA icon (during hover-over, etc) and appears along with push notifications.
WP-1784 Bug Resolved an issue where each click-to-call opens a new PWA window; multiple windows accumulated with repeated calls. PWA now reuses the existing instance for calls, preventing multiple windows from opening.
WP-1820 Improvement Extended iFrame support in the WebPhone's left sidebar, allowing configuration of up to three distinct iframe panels. In addition to the original iFrame configs (PORTAL_WEB_PHONE_IFRAME_ICON, PORTAL_WEB_PHONE_IFRAME_NAME, PORTAL_WEB_PHONE_IFRAME_URL), new configs have been added for each additional potential iFrame: PORTAL_WEB_PHONE_IFRAME_ICON_2, PORTAL_WEB_PHONE_IFRAME_NAME_2, PORTAL_WEB_PHONE_IFRAME_URL_2, PORTAL_WEB_PHONE_IFRAME_ICON_3, PORTAL_WEB_PHONE_IFRAME_NAME_3, PORTAL_WEB_PHONE_IFRAME_URL_3.
WP-1862 New Feature Added support for SMS queue functionality in WebPhone.
WP-1865 Bug Fixed an issue where the Caller ID Name and Number were incorrectly displayed in the Webphone Call Park menu after a Privacy-enabled call was parked.
WP-1896 Improvement Made an improvement to the video meeting experience. When a user clicks the video icon from a contact card to start a video meeting or screen share via Iotum, the recipient can now choose to "Join" or "Decline" the invitation. If the recipient declines, the caller receives a notification in the chat indicating the invitation was declined.
WP-1928 Bug WebPhone SMS now allows users to End SMS sessions when the card is minimized through the kebab menu dropdown.
WP-2045 Bug Resolved an issue that occurred when replying to a contact from the Call History page. Using SMS in this scenario would result in a broken message card where users were unable to identify the number they were using to send the message. Now, when you reply via SMS from Call History, the message card will display the correct outbound number as expected.
WP-2144 Task Deprecated the UI config, PORTAL_WEBPHONE_NAME. Now, the name of the WebPhone app will only be specified by PORTAL_WEB_PHONE_NAME. This will affect dropdown app lists and the name that appears on the browser tab.
WP-2158 Bug Resolved an issue where multiple SMS threads were incorrectly created for the same conversation. Messages now correctly group into a single thread as expected.
WP-2159 Bug Corrected an issue where, after accepting a call back, Call Park options were unavailable.
WP-2165 Bug Resolved a WebPhone crash that occurred when accessing a user's profile without an associated email address.
WP-2168 Bug Fixed an issue where an extra card appeared when switching SMS sender numbers.
WP-2212 Bug Fixed an issue that prevented push notifications for chat, SMS, MMS, and calls from being delivered when the PWA was closed, even though the device remained in a "Push Enabled" state. Push notifications now function reliably regardless of whether the PWA is open or closed.

Endpoints Module (14 tickets)

Ticket Type What changed
NDP-577 Bug Addressed a problem that occurred when a phone was deleted from a domain and later added to a different domain. In this scenario, residual configuration data could persist, causing inconsistencies. This fix ensures that all provisioned data is fully cleared when a phone is removed from a domain. When the same device is added to another domain, it starts with a clean configuration, preventing any carryover from prior assignments.
NDP-887 Bug Corrected an issue with the following devices that used a new config format in v44+. The last sync value for these devices was not updating: Flyingvoice PR08, Flyingvoice FIP15GPlus, Flyingvoice P23GW, Algo 8301, Algo 8373, Snom M500, Snom M100, Polycom Rove B1, Mitel 6940.
NDP-979 Bug Fixed a parsing issue in SNAPbuilder where labels containing tokens couldn't properly represent extensions with letter suffixes. The token substitution logic has been corrected and verified to ensure accurate label rendering during configuration generation.
NDP-987 Sub-task Added a new UI Config, PORTAL_BUILDER_HOTDESK_YEALINK_ACCOUNTLABEL_SHOW_OWNER. When set to "yes" (default "no") and hot desking, the account label of a Yealink device reflects the current hot desk owner.
NDP-992 Improvement Added a new Endpoints Module config, "FanvilBLFDefaultTransferAttended". Default value is "no", which retains previous behavior where blind transfers are supported via BLF keys. When set to "yes", BLF keys will allow for attended transfers instead.
NDP-1014 Bug Resolved an issue where multiple device-level overrides were not parsed correctly.
NDP-1015 Bug Addressed an issue occurring when downloading the audit log CSV from the Endpoints Admin UI, which resulted in errors and a blank page. This has been fixed and downloading works as expected.
NDP-1023 Bug Corrected an issue that occurred when saving directory data during the "Apply Backup" process. This directory information is now properly retained and applied, improving reliability during backup restoration.
NDP-1034 Bug Resolved an issue affecting tab selection on Grandstream devices, ensuring the correct tab is now consistently displayed.
NDP-1083 Improvement Added functionality to generate unique usernames for each device, improving identity management and provisioning flexibility.
NDP-1129 Improvement Updated the Apache configuration to ensure the Content-Length response header is returned when the request header, Accept-Encoding, is missing. Previous issues with this behavior caused provisioning failures for older devices.
NDP-1130 Bug Fixed an issue with Mitel configuration generation that occurred when Key 1 was not provisioned.
NDP-1133 Bug Fixed an issue where XML files were generated incorrectly when parameter values contained the "@" symbol.
NDP-1283 Bug Corrected an issue with Custom Format HT814_device_xml that was causing Grandstream HT devices to receive incorrect SIP provisioning information.

Authentication (SSO / 2FA) (3 tickets)

Ticket Type What changed
WTAUTH-2 Epic Implemented a new feature to centralize authentication logic across multiple applications. Now users will interact with the same login page and are then redirected to the appropriate destination based on their login source, such as the Portal or Web Phone. Also added new Portal functionality that allows administrators to enforce Single Sign-On (SSO) and Two-Factor Authentication (2FA) at various organizational levels—system-wide, domain, site, or user.
WTAUTH-12 Story Added several UI configs, allowing configuration in the Portal that before required SSH access for API Configs: PORTAL_RECAPTCHA_V2_ENABLED (enables reCAPTCHA v2), PORTAL_RECAPTCHA_V2_SITE_KEY, PORTAL_RECAPTCHA_V2_SECRET_KEY, PORTAL_RECAPTCHA_V2_INVIS_SITE_KEY, PORTAL_RECAPTCHA_V2_INVIS_SECRET_KEY, PORTAL_RECAPTCHA_MAX_TO_CHECK (default "2"), PORTAL_RECAPTCHA_MAX_TO_FAIL (default "10"; note it is the user's IP that is locked out, which could affect a shared office IP), PORTAL_RECAPTCHA_TIMEOUT_MINUTES (default "20"). Also added new UI configs to enable reCAPTCHA v3: PORTAL_RECAPTCHA_V3_ENABLED, PORTAL_RECAPTCHA_V3_SITE_KEY, PORTAL_RECAPTCHA_V3_SECRET_KEY, PORTAL_RECAPTCHA_V3_MIN_SCORE (default "0.5"; minimum score threshold for access, from 0.0 likely-bot to 1.0 likely-good).
WTAUTH-115 Improvement Languages enabled via PO file now appear in the dropdown language picker for the Portal, Auth App, and WebPhone. A file can also be added or configured at /etc/netsapiens/locale/locale_catalog_overrides.json to modify language labels that appear in the Portal, Auth App, and WebPhone.

CDR & Reporting (6 tickets)

Ticket Type What changed
CDR-308 Bug Fixed an issue where off-net calls made to check voicemail were incorrectly tagged as outbound calls. These calls are now properly classified as incoming.
CDR-317 Bug Resolved an issue where the CDR Scheduled Export process was intermittently skipping entries due to improper array splicing. This fix ensures that all relevant CDRs are consistently included in the export.
CDR-371 Improvement Implemented a feature that triggers email notifications when a CDR Scheduled Export fails—provided email alerts are enabled for that schedule.
CDR-374 Bug Resolved an issue where calls were incorrectly tagged as "answered" when the caller hung up during the voicemail greeting without leaving a message. These calls are now accurately classified as "missed," ensuring more reliable call status reporting and analytics.
CDR-446 Bug Fixed an issue where AST statistics were not updating correctly during on-net geo calls with on-net assisted and semi-assisted transfers. This ensures accurate tracking and reporting of AST metrics across all supported transfer types.
CDR-477 Epic Added a new feature that enables automated migration of events data and CDR tables from the database to S3-compatible storage. Data remains transparently accessible via API, with basic monitoring—no UI changes required. This engine is effective for tables containing historical data that rarely changes but must remain accessible for reporting, compliance, or analytical purposes.

SNAPanalytics (Charts) (1 tickets)

Ticket Type What changed
CHRT-521 Bug Fixed an issue where the SNAPanalytics wallboard logo (analytics_header_logo.png) did not honor domain-level branding but worked by server or system-wide.

Node (5 tickets)

Ticket Type What changed
NN-389 Improvement Added support for Apache load balancing of voicemail reminders. Two new configuration parameters are available in /etc/netsapiens/nsnode.json: maxVoicemailNagHandlers (default: 4) — Sets the number of workers available to process voicemail reminder events. voicemailHandlerTargetRequestCount (default: 10) — Sets the number of reminder events each worker can queue at one time. These parameters allow administrators to tune voicemail reminder throughput based on their system's needs.
NN-492 Bug Resolved an issue where voicemail event subscriptions failed to trigger webhook notifications when voicemails were left via certain methods. All relevant voicemail scenarios now correctly initiate webhook events.
NN-500 Improvement Enhanced configuration and debug logging for voicemail reminders and Time Frames, now allowing enablement without requiring a Node restart. Configure logging by adding the desired settings to the appropriate configuration section in /etc/netsapiens/nsnode.json (debug_logging: timeframes / vmailnag).
NN-553 Improvement Ensured that PWA receives voicemail push notifications when backgrounded or closed in a push enabled state.
NN-554 Improvement Corrected an issue where custom daily recurrence timeframes would loop repeatedly and not expire correctly, particularly in time zones far from GMT (e.g., Asia/Calcutta).

SBus (2 tickets)

Ticket Type What changed
SBUS-123 Bug Resolved a rare crash scenario triggered when thread initialization failed.
SBUS-166 Improvement Improved SBus request speed by allowing asynchronous sending on shared threads.

Backup & Restore (1 tickets)

Ticket Type What changed
BAC-53 Bug Resolved a minor connection pool leak that could occur after restoring a single domain. This issue was only observable under high-volume activity over short time periods.

Certificates & Apache (1 tickets)

Ticket Type What changed
CERT-42 Improvement Previously, Apache could not restart if there were config syntax warnings. Now, as long as warnings are minor, restart will be uninhibited.