URL Notification System
URL Notification System
UNS drives unattended screens. You give it a list of web pages, it rotates them across whichever displays you point at it, and when an emergency alert arrives it takes those screens over until the alert clears.
It was built for a campus deployment, where the same screens that normally show timetables, menus and dashboards have to become weather and lockdown notices the moment something happens - without anyone walking round the building.
Project Site: https://uns.techidiots.net/ Source: github.com/TechIdiots-LLC/UNS Downloads: Releases
How It Works
┌──────────────────┐ ┌─────────────────────────────┐
│ Alert feed │ CAP / │ UNS server │
│ (CAP, RSS, │─ RSS ──►│ ┌───────────────────────┐ │
│ Atom) │ │ │ Emergency monitor │ │
└──────────────────┘ │ │ (cron / Task Sched.) │ │
│ └───────────┬───────────┘ │
│ ▼ │
┌──────────────────┐ │ ┌───────────────────────┐ │
│ Admin panel │────────►│ │ URL lists, groups, │ │
│ (web browser) │ │ │ emergency state │ │
└──────────────────┘ │ └───────────┬───────────┘ │
└──────────────┼──────────────┘
│ each display asks
│ "what should I show?"
┌─────────────────┼─────────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Display │ │ Display │ │ Display │
│ Lobby │ │ Dorm │ │ Office │
└──────────┘ └──────────┘ └──────────┘
Each display is a registered client with its own URL and its own list of pages. It asks the server what to show, gets one page back plus how long to hold it, and repeats. Nothing is pushed to the screens, so they cope with being rebooted, moved or briefly disconnected without any attention.
Features
- Per-display URL lists with individual refresh intervals, editable from the browser
- Client groups - collect screens into a group with a shared list, either adding to each member's rotation or replacing it entirely for a takeover. A screen can belong to several groups at once
- Emergency mode that overrides every display at once, or just one group or one screen
- CAP alert monitoring - watches a Common Alerting Protocol, RSS or Atom feed and turns emergency mode on and off by itself
- Alert routing - rules send an incoming alert only to the screens it concerns, matching on CAP category, severity, area description or geocode (SAME / FIPS / UGC)
- Custom messages and RSS panels for content that has no page of its own
- Saved and archived lists so a set of pages can be restored to a screen later
- Active Directory or local accounts, with per-feature permissions
Emergency Alerting
The monitor is a plain PHP script run from cron or Task Scheduler. It reads a feed, decides whether an alert is genuinely in force, and switches emergency mode accordingly.
Because CAP alerts carry their own expiry, status and cancellation, drills marked
Exercise do not take over displays unless you ask for them, and an alert stands itself
down when it lapses rather than needing someone to remember to clear it.
Routing rules decide who sees what:
| Rule | Sends to |
|---|---|
geocode contains 020161, severity ≥ Severe |
Group "Riley Campus" |
category is Met |
Group "Outdoor Signs" |
event contains Tornado, severity ≥ Extreme |
Every display |
With no rules configured, any alert in force simply turns on emergency mode everywhere - which is how it behaved before routing existed.
The Displays
A display is just a browser pointed at its client URL, so almost anything with a screen works. Two ways to run one:
- Browser homepage - point the machine's homepage at the client URL. Simple, but a site that redirects itself can leave the screen stuck there.
- Kiosk browser with the UNS extension (recommended) - the bundled
Client/AlertStationClientfolder runs Chrome in kiosk mode with a small extension that polls the display's feed and sets the tab address itself, so a page that tries to break out gets replaced at the next check. Scripts for auto-login, auto-start and blank cursors are included.
Requirements
- A web server with PHP 7.4 or newer (Apache or IIS)
- MySQL/MariaDB, Microsoft SQL Server, or SQLite - chosen during install
- A browser on each display
There is a web installer that checks what it needs up front, keeps the database and template cache out of the web root where it can, and generates the database and administrator credentials for you.
History
UNS was originally written by Phillip Ferland with the concept by Andrew Calcutt, and lived on SourceForge. It has since been substantially rewritten and is maintained by TechIdiots LLC - brought up to current PHP, given database portability, moved to Smarty templates, and had its Windows-only alerting script replaced with the cross-platform CAP monitor.
License
GPL-2.0
© 2010 Phillip Ferland © 2026 TechIdiots LLC and Andrew Calcutt