Skip to main content

PSAPLink — Public Safety Alert Network

PSAPLink is a multi-tenant public safety notification platform that connects PSAPs (911/dispatch centers) with their third-party response companies through a real-time, multi-channel alert pipeline. When a dispatcher creates an incident, companies are notified across 11 transport channels, per-user acknowledgements are tracked, and the system automatically escalates when responses are not received on time.

Two Applications

The cloud-hosted hub. Handles hub routing, company dashboards, and the superadmin console.

  • Receives signed incident events from PSAPLink PSAP instances and routes notifications to company users
  • Fans out alerts across 11 transport channels (email, SMS, Slack, Teams, PagerDuty, Discord, CAP, SNPP, ntfy, push, webhook)
  • Tracks per-user acknowledgements; routes ACK confirmations back to the originating PSAPLink PSAP instance
  • Hosts company dashboards where users manage transport preferences, ACK alerts, and send replies
  • Provides a superadmin console for managing all PSAPs, companies, and platform configuration
  • Logs every communication event in an append-only audit record

The lightweight agent installed on each PSAP's isolated network.

  • Polls CAD export files (CFS polling) using vendor-specific parsers
  • Provides a dispatch interface for PSAP telecommunicators to create and send incidents
  • Signs and pushes incident events outbound to PSAPLink Cloud — no inbound connections required
  • Receives company ACK confirmations back from Cloud (callback or poll mode)

System Architecture

[PSAP Network]                         [Cloud Infrastructure]

CAD System (TriTech, CentralSquare,
NewWorld Aegis, etc.)
|
| XML export files
v
PSAPLink PSAP
(behind PSAP firewall)
|
| signed HMAC event (HTTPS)
| POST /api/v1/core/events/incident
v
PSAPLink Cloud
(hub routing)
|
NotificationService
|
+-------------+-------------+
| | |
email SMS Slack ...
| | |
Company users notified via 11 transport channels
|
Company users ACK
(web dashboard or transport reply)
|
AckIngestionService
|
| ACK routed back |
|<--------------------------+
|
PSAPLink PSAP
Dispatcher sees ACK confirmation

Tech Stack

LayerTechnology
BackendPHP 8.2+ / Symfony 7.x
FrontendReact 18
DatabasePostgreSQL 15+
Async QueueSymfony Messenger
Real-timeMercure SSE
Encryptionlibsodium (XSalsa20-Poly1305)
AuthJWT (15-min) + API keys
ContainersDocker Compose