Skip to content

Releases: vipgabe09267/SouthlandServers_Mass_Notify_server

Southland Servers Mass Notifications Server v0.0.7-beta

Choose a tag to compare

Southland Servers Mass Notifications Server v0.0.7-beta

Southland Servers Mass Notifications Server 0.0.7-beta is a major beta update for FreePBX 17 on Debian 12. It expands the product beyond its existing SIP NOTIFY, dashboard announcement, desktop, Weather.gov, Piper TTS, and direct Asterisk paging features with multi-zone weather routing, optional Xweather lightning detection, live desktop event streaming, branded outbound notifications, improved vendor support, and a substantial administration-interface refresh.

This remains prerelease beta software. Validate phone behavior, paging audio, external integrations, and alert routing on the target deployment before relying on it for safety-critical notification workflows.

Highlights

Multi-zone Weather Alerts

  • The former NWS pages are consolidated under Weather Alerts and clearly identify that the integration supports United States Weather.gov data.
  • Administrators can configure up to five named Weather.gov county or forecast-zone groups.
  • Each group has independent extension recipients, and manual tests can target all groups or selected groups.
  • Alert-chain normalization and deduplication prevent timestamp-only updates and referenced reissues from repeatedly paging the same event.
  • Weather speech defaults to the Amy Piper voice at 25% volume and uses the bundled NWS_alert.wav opening tone with no closing tone.

Dedicated Lightning Alerts

  • A separate Lightning Alerts tab adds optional Xweather cloud-to-ground lightning detection.
  • Administrators configure the protected Xweather credentials, location, alert radius, recipients, independent quiet hours, tones, volume, query interval, and optional all-clear behavior.
  • A storm produces one entry alert when lightning first enters the radius. Repeated strikes from the same active cluster are suppressed until two clear queries reset the state.
  • Live alerts report the nearest strike distance to one decimal mile rather than repeating only the configured radius.
  • Coordinate-based locations are spoken as “this area”; named locations use the configured city or location label.
  • Lightning defaults to the Weather/Amy voice at 25% volume, Lightning_alert.mp3 as the opening tone, no closing tone, and one second of leading silence.
  • The Lightning test has a dedicated 60-second anti-spam cooldown and is labeled TEST ONLY across phone, speech, desktop, email, and Discord delivery.

Adaptive Xweather quota protection

  • Adaptive protection is enabled by default and uses one configured Weather Alert zone as the storm gate.
  • Xweather remains in zero-token standby until a relevant Weather.gov thunderstorm event activates storm mode, then polls through a grace period that defaults to 60 minutes.
  • A protected token governor is designed around the 15,000-token monthly allowance.
  • The default query period is five minutes. One-to-four-minute choices display a free-tier sustainability warning; six-to-ten-minute choices can miss strikes when the subscription only provides the recent five-minute lightning window.
  • Disabling adaptive protection changes the UI to a red shield and polls Xweather continuously at the configured interval regardless of Weather.gov conditions.
  • The Dashboard reports standby, quota protection, stale data, authentication problems, API faults, and other Lightning misconfiguration states.

Announcement audio improvements

  • Dashboard announcements support four independent audio modes: no audio, tones only, TTS only, or tones plus TTS.
  • Opening and closing tones can be selected per announcement from bundled sounds or FreePBX System Recordings; either tone can be set to None without altering the Asterisk dialplan.
  • Regular announcements default to the bundled paging opening and closing tones, the Lessac voice, and 25% volume.
  • Weather and Lightning retain independent voice, tone, volume, and quiet-hour settings.
  • Generated Piper and combined paging WAV files are automatically removed 15 minutes after use.
  • Direct paging remains on Local/<extension>@sls-alert-audio, dynamically resolves the live endpoint, applies auto-answer headers, and passes one validated combined sound identifier to Asterisk.

Live desktop transport and stricter targeting

  • The PBX now provides an authenticated server-sent-event endpoint at /api/sipnotify/desktop/stream.
  • The stream uses each desktop client's Basic-auth username and password, applies the same strict per-client targeting as the JSON endpoint, supports Last-Event-ID, sends keepalives, and provides bounded reconnect events.
  • The initial authenticated event is flushed through Apache promptly, and abandoned streams are allowed to terminate.
  • Every live notification includes renderable presentation metadata. Weather events provide priority-derived background, header, accent, and text colors; colored announcements preserve the selected title/background and colored style; Lightning uses its branded #92400e background. The same values are available as flat compatibility fields and in the structured presentation object.
  • Lightning entry, all-clear, and test visuals are now published to all authenticated desktop clients in addition to their configured phone recipients.
  • The existing /api/sipnotify/desktop JSON route remains available as a compatibility fallback. Desktop applications must explicitly use /stream to receive live events; clients that continue requesting the JSON route remain polling clients.
  • Desktop lists longer than approximately five rows now use a bounded sticky-header scrolling region in General Settings.

Branded email and Discord delivery

  • Weather and Lightning email is always sent as a multipart branded Southland Servers notification with a plain-text fallback.
  • HTML cards include an embedded Southland Servers logo, Southland Servers Group and SLS Mass Notification System identity, structured alert details, urgency colors, and event-specific icons.
  • Tornado, severe storm, flood, winter, fire, lightning, test, and general notices receive distinct visual treatments.
  • Discord delivery uses a compact branded embed with the SLS identity, logo/avatar, alert-aware colors and emoji, concise fields, timestamp, and explicit test footer.
  • Shared email recipients and the optional Discord webhook are managed from the Notification Destinations popup in General Settings.

SIP NOTIFY and phone-format improvements

  • Manual overrides now use an extension field and supported-phone-family dropdown.
  • Yealink choices are clarified as Yealink - Color and Yealink - Text Only.
  • Panasonic KX-series detection and payload support were added, and Alcatel-Lucent Enterprise detection was expanded.
  • Yealink image announcements use validated 480×272, 8-bit sRGB, non-interlaced PNG images with stripped metadata.
  • Non-Yealink phones receive their vendor-appropriate safe text payload for Labs colored announcements.
  • Unknown registered endpoints remain visible in diagnostics instead of being silently assigned a manual fallback.

FreePBX administration and lifecycle

  • Fresh-install verification now checks the Asterisk PJSIP inventory separately and validates the loopback-only slsmassnotify credentials with a bounded authenticated AMI Ping. Fresh PBXs with no registered contacts no longer fail because an asynchronous contact-list completion event was not returned.
  • Settings now participate in the standard FreePBX Apply Config lifecycle.
  • Public PBX Hostname is automatically detected and displayed read-only.
  • The General Settings, Weather Alerts, Lightning Alerts, Notification Logs, setup wizard, Dashboard widget, and shared branding header received extensive layout and accessibility cleanup.
  • Notification Logs now support event-type, PBX-local calendar-date, and row-limit filters with a clear-filter action.
  • Danger Zone separates Repair Installation, Complete Uninstall, and Replace Configuration into distinct responsive cards.
  • Dashboard health now reports configuration faults, protected-config permission problems, missing routes, stale polling, external API faults, pending settings, delivery faults, and available package updates.
  • Repair and update paths restore the Dashboard integration, Framework menu placement, runtime permissions, API routes, cron entries, dialplan, and local signatures after FreePBX rewrites.

Fresh-install defaults

Profile Voice Volume Opening tone Closing tone
Regular announcements Lessac 25% Paging Tone Opening Paging Tone Closing
Weather Alerts Amy 25% NWS_alert.wav None
Lightning Alerts Weather/Amy 25% Lightning_alert.mp3 None

Additional defaults include a 30-second maximum spoken duration, 90-day notification-log retention, five-minute Xweather queries, adaptive protection enabled, and a 60-minute storm-mode grace period.

Installation and upgrade

cd /tmp
curl -fsSL -o sls-install.sh \
  https://raw.githubusercontent.com/vipgabe09267/SouthlandServers_Mass_Notify_server/main/tools/install_release.sh
chmod +x sls-install.sh
SLS_MASS_NOTIFY_TGZ_URL='https://github.com/vipgabe09267/SouthlandServers_Mass_Notify_server/releases/download/slsmassnotifyserver-0.0.7-beta/slsmassnotifyserver-0.0.7-beta.tgz' \
  ./sls-install.sh

The installer supports fresh installation and upgrades. It preserves /var/lib/asterisk/SLS_Mass_Notifications_Plugin/mass-notifications.config, installs or repairs runtime dependencies and Piper voices, restores API and Dashboard integration, reloads FreePBX/Asterisk, and locally signs the touched modules.

Release asset SHA-256:

df34302a57b3db10179e146f5f5599fc4eb5513f6876eba4aac0ae78960bd717

Validation performed on the production/test PBX

  • Installed-module, repository-module, and TGZ payloads compared byte-for-byte, excluding local signatures.
  • Runtime scripts, public API routes, Dashboard integr...
Read more

Southland Servers Mass Notifications Server 0.0.6 Beta

Choose a tag to compare

Southland Servers Mass Notifications Server 0.0.6 Beta

This beta focuses on cleaner administration, more reliable Yealink image delivery, unified audio management, and safer maintenance from the FreePBX interface.

What changed

  • Added a Labs colored-announcement designer to the Dashboard with a custom title, background color, and live preview. Colored image announcements are identified as Yealink-only; other supported phones continue receiving their normal text payload.
  • Improved Yealink NWS and announcement images with explicit 480x272 dimensions, validated 8-bit sRGB PNG output, stripped metadata, and non-interlaced encoding for better compatibility with older models.
  • Added FreePBX System Recordings to the opening and closing tone selectors for announcements and NWS alerts. Selected recordings are validated and converted into managed 8 kHz mono Asterisk audio.
  • Removed duplicate audio-upload controls from the plugin. Custom tones are now uploaded once through FreePBX System Recordings and selected from either Mass Notify settings page.
  • Reorganized General Settings and NWS Alerts with clearer sections, compact scrolling lists, and grouped audio choices.
  • Made desktop Client IDs read-only and protected existing IDs during settings saves. Desktop passwords and Control API keys are masked by default and can be revealed with an eye control.
  • Expanded Phone Format Override help with concise examples, all supported vendors, and a clear unsupported-brand notice.
  • Added an Update to Latest Release button. Update availability is checked even when automatic installation is disabled and appears as a yellow warning in General Settings and Dashboard health.
  • Added a confirmed Completely Uninstall action under Danger Zone. It uses the protected root maintenance worker and the same cleanup path as the standalone CLI uninstaller.
  • Changed successful first-run setup completion to return administrators to the FreePBX Dashboard.

Installation and update

Use the recommended release installer from the README. Existing central configuration is preserved byte-for-byte during a normal update. Download a .config backup before major changes.

This remains beta software. Test phone display, TTS paging, NWS behavior, desktop routing, and uninstall/reinstall workflows on a non-critical FreePBX 17 system before relying on it in production.

Package SHA-256: 42eb8f2c008a0e8ffb2d6534ec65e741aebebde772e17b16510d39f61fd1aaff

Southland Servers Mass Notifications Server 0.0.5 Beta

Choose a tag to compare

Southland Servers Mass Notifications Server 0.0.5 Beta

This release focuses on reliability after broader testing across different FreePBX installations, endpoint layouts, and network environments.

What changed

  • Fixed standalone uninstall recovery so a failed FreePBX module transaction cannot leave an enabled registry row pointing at deleted module files.
  • Added configurable HTTP/HTTPS phone-image transport, defaulting to HTTP for legacy Yealink models while authenticated APIs remain HTTPS.
  • Fixed Yealink T48G image-screen loading errors caused by an undocumented XML attribute rejected by stricter legacy firmware.
  • Fixed uninstall cleanup so FreePBX-managed AMI records and regenerated Asterisk configuration are removed correctly.
  • Removed unsafe nested module reinstalls from the uninstall hook and added post-uninstall Apache, database, file, and stock-signature verification.
  • Fixed Control API authorization behind Apache rewrites and added X-API-Key as an alternate authentication header.
  • Fixed central configuration saves that could overwrite unrelated credentials, desktop clients, announcement groups, phone overrides, or NWS settings.
  • Added a configurable public PBX hostname for systems that detected an unusable endpoint such as https://pbx/....
  • Strengthened NWS polling with GeoJSON validation, retries, IPv4 fallback, response limits, clearer diagnostics, and retry-safe alert processing.
  • Improved multi-contact extension support and phone-format detection, with manual per-extension format overrides when automatic detection is not suitable.
  • Fixed Yealink image reuse and rendering so phone and desktop delivery use the same generated alert payload.
  • Corrected Cisco Multiplatform XML-Service delivery and documented its phone-side authentication requirements.
  • Added one second of leading silence to paging audio to prevent the opening tone from being clipped during auto-answer.
  • Isolated desktop event delivery so clients only receive announcements addressed to them or to all desktops.
  • Added CSRF protection throughout the FreePBX interface and tightened API request validation, rate limiting, IP allowlisting, audit retention, and secret handling.
  • Moved Piper into a root-owned runtime, pinned its dependencies and voice assets, and added installer verification for the runtime, voices, APIs, dialplan, and permissions.
  • Reworked Repair Installation and automatic beta updates as restricted root-owned maintenance jobs.
  • Improved installation and removal so updates preserve the central configuration and logs while stale runtime, cron, API, Apache, and integration files are repaired or removed correctly.

Installation

Use the recommended installer command in the project README. Existing installations can run the same command to update; the central configuration and retained event history are preserved.

This remains a beta release. Test phone display behavior, paging audio, desktop delivery, NWS polling, and any vendor-specific overrides before relying on it for operational alerting.

Package SHA-256: a46b823d38d86fe01ad7880f94d0ad43101f1c7422c3c3afbb8f26cfde64c196

Southland Servers Mass Notifications Server 0.0.4 beta

Choose a tag to compare

0.0.4-beta improves the Mass Notify admin experience, diagnostics, and install reliability for larger FreePBX systems.

What's changed:

  • Added runtime diagnostics under Help for install health, detected phone endpoint formats, desktop client activity, and recent Control API use.
  • Reworked Help diagnostics into stacked scrollable panels so endpoint, desktop, and API tables do not overlap on different FreePBX themes or screen widths.
  • Made the dashboard announcement widget more compact for larger installs so the Send Announcement button stays visible.
  • Added optional Control API IP allowlists, per-IP rate limiting, and 30-day API audit logging.
  • Added schema validation for uploaded .config files before they are staged.
  • Added a Repair Installation action under General Settings > Danger Zone.
  • Added clearer Asterisk NOTICE logging for page start, dial target, playback, and completion.
  • Added endpoint vendor detection diagnostics, including a visible flag for unknown phone vendors.
  • Added NWS preview output for representative TTS, phone XML, desktop JSON, and email subject.
  • Added managed SIP NOTIFY templates during install and hardened delivery for Yealink, Cisco/Fanvil, Poly, Snom, Grandstream, Aastra/Mitel, Sangoma, Avaya, VTech, ALE, and unknown endpoints.
  • Hardened endpoint detection for registered contact states such as Avail and made phone-targeted sends fail clearly if no requested endpoints are registered.
  • Fixed Mass Notify menu ordering so the submenu is Help, Logging, General Settings, NWS Alerts.
  • Removed the Stable update channel option until stable builds exist.

Notes:

  • This is still a beta release. Test on a non-critical PBX before deploying broadly.
  • Existing central .config data is preserved during normal updates.
  • Piper voices are downloaded during install instead of being bundled in the repository.

Southland Servers Mass Notifications Server 0.0.3 beta

Choose a tag to compare

Southland Servers Mass Notifications Server 0.0.3 beta

This beta refresh hardens the installer, uninstall cleanup, Piper TTS setup, and module repair flow for FreePBX systems.

Highlights

  • Hardened manual TGZ installs so rerunning the installer repairs runtime files, API rewrite routing, Piper executable permissions, generated config, and local FreePBX signatures.
  • Added a release installer hash guard so stale local 0.0.3 TGZ files fail before installing old package code.
  • Added a release uninstall cleanup script that removes generated runtime files, API folders, Apache config, sound symlinks, local signer artifacts, and temporary installer files while preserving central config files.
  • Expanded the module uninstall hook to clean generated runtime artifacts and remove the AMI user, Apache config, API folders, signing artifacts, and sound symlinks.
  • Repaired local signing for FreePBX 17 by using standard single-file module.sig signing, importing trust into the FreePBX GPG home, and validating with FreePBX's verifier.
  • Re-signed only the SLS module and Dashboard, which are the FreePBX modules modified by this package.
  • Fixed installer abort paths caused by already-enabled modules or FreePBX bootstrap nonzero exits.
  • Added a configurable Piper TTS maximum duration with a 30-second default and 10-minute maximum.
  • Hardened Piper detection so installs work when piper-tts is available through the venv Python module path instead of a generated venv/bin/piper console script.
  • Added the installed package version and update status in Other Settings.

Package

  • Asset: slsmassnotifyserver-0.0.3-beta.tgz
  • SHA256: 79051f5fcbb209c03673ee9be47164d41b2a830d6803d91ce2fdfa8e58fab3fa

Notes

This is still beta software. Test on a non-production FreePBX system before deploying broadly.

Southland Servers Mass Notifications Server v0.0.2-beta

Choose a tag to compare

Southland Servers Mass Notifications Server v0.0.2-beta

Public beta prerelease update for the FreePBX 17 Southland Servers Mass Notifications Server module.

What Changed

  • Expanded the authenticated Control API at /api/sls-mass-notify.
  • Added remote announcement delivery through the Control API.
  • Added optional Piper TTS audio for Control API announcements.
  • Added Control API targeting by individual extension and announcement group.
  • Added colored/image announcement options using style, title, and background_color.
  • Added Control API support for triggering the configured NWS test workflow.
  • Added redacted config reads through the Control API.
  • Added allowlisted config updates through the Control API, with staged or immediate apply behavior.
  • Hardened config updates so [redacted] placeholders are ignored instead of overwriting live credentials.
  • Moved the Control API controls into a warning panel directly above Danger Zone in Other Settings.
  • Updated Help documentation for the new Control API actions.
  • Bumped module/package version to 0.0.2-beta.

PowerShell Control API Examples

Standard TTS announcement:

$Body = @{
  action = "send_announcement"
  message = "Remote announcement test."
  targets = @("1000")
  groups = @()
  desktop = $true
  tts = $true
  style = "standard"
} | ConvertTo-Json -Depth 10

Colored announcement:

$Body = @{
  action = "send_announcement"
  message = "Colored remote announcement test."
  targets = @("1000")
  desktop = $true
  tts = $true
  style = "colored"
  title = "Announcement"
  background_color = "#991b1b"
} | ConvertTo-Json -Depth 10

Install Or Upgrade

Run on the FreePBX server as root or a sudo-capable administrator:

cd /tmp
curl -fsSL -o sls-install.sh \
  https://raw.githubusercontent.com/vipgabe09267/SouthlandServers_Mass_Notify_server/main/tools/install_release.sh
chmod +x sls-install.sh
SLS_MASS_NOTIFY_TGZ_URL='https://github.com/vipgabe09267/SouthlandServers_Mass_Notify_server/releases/download/slsmassnotifyserver-0.0.2-beta/slsmassnotifyserver-0.0.2-beta.tgz' \
SLS_MASS_NOTIFY_SHA256='e7cf98ed47fb8742bbd921856716177fad11125e8e3bf711e003b4a0a52b1b6a' \
./sls-install.sh

SHA256

e7cf98ed47fb8742bbd921856716177fad11125e8e3bf711e003b4a0a52b1b6a  slsmassnotifyserver-0.0.2-beta.tgz

Beta Notice

This is a beta prerelease. Test on a non-critical FreePBX 17 system before relying on it for live emergency or operational notifications.

Southland Servers Mass Notifications Server v0.0.1-beta

Choose a tag to compare

Southland Servers Mass Notifications Server v0.0.1-beta

Initial public beta prerelease for the FreePBX 17 Southland Servers Mass Notifications Server module.

Highlights

  • FreePBX module: slsmassnotifyserver.
  • Mass Notifications menu with Notification Logs, NWS Settings, NWS Testing, SIP Notify Settings, Other Settings, and Help.
  • Mandatory first-run setup wizard with beta warning, AGPL-3.0 notice, EULA acceptance, NWS setup, Control API setup, SIP NOTIFY endpoint selection, Piper TTS voice selection, volume settings, and retention settings.
  • Dashboard SIP NOTIFY Announcements widget.
  • Desktop app endpoint and phone-brand SIP NOTIFY endpoints.
  • Optional Piper TTS audio paging with opening and closing tones.
  • NWS weather alert polling and configurable NWS zone support.
  • Central transplantable config at /var/lib/asterisk/SLS_Mass_Notifications_Plugin/mass-notifications.config.
  • Runtime permission repair for generated images, logs, SIP NOTIFY journal files, and Mass Notifications runtime folders.
  • Control API support, disabled by default.
  • AGPL-3.0 licensing, EULA, README, install notes, security policy, changelog, and phone format notes.

Install

Run on the FreePBX server as root or a sudo-capable administrator:

cd /tmp
curl -fsSL -o sls-install.sh \
  https://raw.githubusercontent.com/vipgabe09267/SouthlandServers_Mass_Notify_server/main/tools/install_release.sh
chmod +x sls-install.sh
SLS_MASS_NOTIFY_TGZ_URL='https://github.com/vipgabe09267/SouthlandServers_Mass_Notify_server/releases/download/slsmassnotifyserver-0.0.1-beta/slsmassnotifyserver-0.0.1-beta.tgz' \
SLS_MASS_NOTIFY_SHA256='885f4f3b8cda5a5f3bdfd9215c6795aac14087f09024a61f7a2332bc8cd6f9cc' \
./sls-install.sh

SHA256

885f4f3b8cda5a5f3bdfd9215c6795aac14087f09024a61f7a2332bc8cd6f9cc  slsmassnotifyserver-0.0.1-beta.tgz

Beta Notice

This is a beta prerelease. Test on a non-critical FreePBX 17 system before relying on it for live emergency or operational notifications.