Tickets CAD: la piattaforma open source per la gestione delle emergenze e del dispatch operativo

Introduzione: attenzione all’omonimia

Il nome può trarre in inganno: TicketsCAD non è un gestionale di ticket per help desk o customer care, quanto piuttosto un sistema di Computer Aided Dispatch (CAD), ovvero una piattaforma web per la gestione e la tracciabilità delle operazioni di soccorso. Il progetto nasce come “Open ISES” (Open Information Systems for Emergency Services) ed è distribuito gratuitamente con licenza GPLv2, principalmente tramite SourceForge (indirizzo: openises.sourceforge.net) e GitHub.

Il pubblico ideale sono quelle realtà che il sito stesso definisce “le organizzazioni che ne hanno più bisogno ma che possono permetterselo meno”: corpi vigili del fuoco volontari, servizi medici di emergenza (EMS), squadre CERT, gruppi di radioamatori ARES/RACES, search & rescue e servizi di sicurezza dei campus universitari.

Storia e origini del progetto

Il progetto ha radici sorprendentemente solide. Secondo LIMSWiki, tutto inizia nel luglio 2005, quando il paramedico e programmatore Robert Austin viene contattato dallo sviluppatore volontario Arnold Shore circa la mancanza di software CAD open source per i servizi di emergenza. Ne nasce il progetto Open ISES su SourceForge, fondato ufficialmente il 2 agosto 2005, con l’obiettivo di fornire alle agenzie di soccorso “il software, i materiali e le competenze di cui hanno bisogno per fare il loro lavoro”. Arnold Shore ha poi ricoperto il ruolo di Lead Developer e Project Leader per diciotto anni, affiancato nel tempo da altri contributori.

Curiosità tecnica: il codice deriva da un’applicazione matura e rispettata di ticket-tracking chiamata PHP-Ticket, notevolmente estesa con funzionalità di mappatura e adattamenti per le operazioni di dispatch, come il tracciamento di pazienti e soccorritori. Con oltre trent’anni di attività dichiarati (contando anche la base originale) e oltre 50.000 download, si tratta di uno dei progetti più longevi nel suo settore.

Architettura e versioni

La versione storica (3.44) è scritta in PHP e JavaScript, utilizza un database MySQL/MariaDB e gira su un normale web server come Apache o IIS, con le mappe di Google per la geolocalizzazione. L’installazione avviene tramite una procedura guidata integrata ed è considerata semplice. È disponibile anche un pacchetto Windows con dipendenze incluse (“Ticket2Go”) ed esistono guide della community per installazioni alternative, ad esempio su Raspberry Pi 3.

Una nota importante sullo sviluppo attuale: la versione 3.44 è ormai considerata legacy — viene mantenuta solo per correzioni di sicurezza e bug — mentre lo sviluppo attivo è concentrato sulla versione 4.0, un vero e proprio rewrite con interfaccia Bootstrap 5 basata su PHP 8.2 e un design “keyboard-first” pensato per il dispatch veloce. La v4 mantiene lo stesso schema database MariaDB, quindi un’installazione 3.44 esistente può essere aggiornata sul posto. Al momento della scrittura, la stabile è la 3.44.1, mentre la nuova UI della 4.0 è in fase di sviluppo.

Funzionalità principali

Ciò che colpisce di TicketsCAD è l’ampiezza della dotazione “out of the box”, senza costi aggiuntivi per moduli o addon:

  • Gestione completa del ciclo di vita degli incidenti: apertura dell’evento, assegnazione delle unità, registro delle azioni, con dati che includono località, natura della chiamata, protocollo standard, chiamante, unità inviate, in risposta, sul posto e rientrate.
  • Mappatura avanzata: mappe Leaflet con tile OpenStreetMap, lookup indirizzi geocodificato, overlay meteo e condizioni stradali, annotazioni personalizzate sulla mappa, coordinate USNG, GPS, APRS e tracciamento mobile delle unità.
  • Gestione del personale: roster con nominativi (callsign), certificazioni, record di addestramento, assegnazioni ai team e identificatori di comunicazione, con importazione dei nominativi dall’archivio ULS della FCC.
  • Scheduling: turni, template, gestione eventi con assegnazioni basate sui ruoli, auto-iscrizione e gestione delle fasce orarie.
  • Struttura e magazzino: i locali possono essere configurati come magazzini, con funzionalità di controllo scorte.
  • Richieste pubbliche: pagina di richiesta pubblica con flag speciali (es. “immediato pericolo di vita”), con conferme e aggiornamenti via email al richiedente.
  • Funzionamento offline: opzione di operare senza connessione internet, con indicazioni dedicate per installazioni completamente isolate (air-gapped).
  • Personalizzazione completa: terminologia di menu, pulsanti e etichette dei campi configurabili in qualsiasi lingua; oltre trenta pannelli di configurazione per sistema, utenti, personale, comunicazioni, localizzazioni e altro.
  • Console e postazioni: progettazione di console personalizzate e gestione delle postazioni operatore.
  • Moduli ICS e Winlink per la compilazione e l’invio dei form standard di incident command.
  • Reporting: dati RM per incidenti, unità di risposta e attività di caserma; strumenti per identificare i “frequent flyer”, ovvero gli abuser del servizio.
  • Modalità “All Hands”: override temporaneo delle regioni per far vedere a tutti tutti gli incidenti e le risorse.

La v4 in arrivo introduce un tema scuro moderno, widget drag-and-drop sulla dashboard, mappatura in tempo reale e un layout a due colonne per la creazione di nuovi incidenti con indirizzi geocodificati e coordinate impostabili cliccando sulla mappa.

Comunicazioni e integrazioni

È probabilmente l’aspetto in cui il progetto mostra la maggiore ambizione, e la ragione per cui vale la pena guardare oltre l’etichetta di “software gratuito per volontari”. TicketsCAD 4 non si limita a un canale di notifica: espone un ventaglio di modalità di comunicazione pensate per ambienti dove i sistemi sono eterogenei e nessuno può essere lasciato fuori.

Canali messaggistica e voce. La dotazione comprende chat interna, SMS (con gateway Twilio, BulkVS e Pushbullet), email SMTP, Slack, Zello push-to-talk, Meshtastic (mesh radio) e messaggistica radio DMR. A questi si aggiunge l’integrazione con APRS e il supporto ai moduli ICS/Winlink. Nella tabella comparativa pubblicata dal progetto, la voce “multi-mode messaging” elenca esplicitamente chat, SMS, email, Slack, Zello, mesh e DMR come punti di forza rispetto ai CAD commerciali, dove la dotazione varia.

Come funziona concretamente l’integrazione con Zello. Qui il progetto va oltre la semplice menzione. Nel repository della v4 esiste una cartella proxy/ descritta come “Zello WebSocket proxy“, con note di deploy per Linux in proxy/INSTALL-LINUX.md e un esempio di unit systemd già predisposta. Si tratta quindi di un componente server-side che l’organizzazione installa e configura in autonomia, ottenendo l’aggancio fra la piattaforma push-to-talk e il dispatch: l’operatore può raggiungere le unità attraverso il canale vocale senza cambiare applicazione, e le comunicazioni restano tracciate nella stessa console che gestisce gli incidenti.

Va detto che i materiali del progetto parlano genericamente di “Zello” e non citano esplicitamente la variante Zello Work; poiché però l’integrazione è costruita su WebSocket e Zello Work espone sia un proprio API server-side sia una Channel API WebSocket, la compatibilità appare architetturalmente plausibile. Chi ha necessità di certezza su questo punto specifico dovrebbe confermarlo sul gruppo Google “open-source-cad”, che è il canale di supporto ufficiale del progetto.

Tracciamento delle posizioni. Sette provider di localizzazione, con risoluzione per priorità: APRS, Meshtastic, OwnTracks, OpenGTS, GPS via DMR, geolocalizzazione del browser e altri ancora. Un approccio pragmatico: invece di imporre un formato, il sistema accetta quello che le squadre già usano sul campo.

Radio e reti amatoriali. Oltre ad APRS e DMR, il codice include componenti per il relay AllStar e un ponte Python dedicato a Meshtastic, con una console di rete (net-control.php) per la gestione dei traffici.

Trascrizione e sintesi vocale. La funzione speech-to-text gira localmente (Vosk, faster-whisper, in-process): nessun audio e nessuna trascrizione lascia la macchina. Anche la sintesi vocale è locale per impostazione predefinita (Piper), con driver opzionali Deepgram e OpenAI-compatibili che però devono essere creati manualmente da un amministratore e non sono precaricati. Nessun peso di modello AI viene distribuito nel repository.

Una nota di trasparenza utile. Il progetto documenta con precisione cosa esce dalla propria installazione. Di default sono attivi solo i tile delle mappe e la ricerca indirizzi (nominatim.openstreetmap.org), richiesti dal browser dell’operatore: sono le due sole cose che un’installazione isolata noterà fallire. Tutto il resto — allerte meteo, SMS, Slack, webhook, notifiche push, lookup nominativi e DMR, APRS, DMR e Zello — è disattivato di default e va abilitato esplicitamente. Esiste un file SECURITY.md con la tabella per singolo servizio, il contenuto esatto trasmesso e le indicazioni per installazioni completamente offline. È un livello di documentazione sulla privacy che molti prodotti commerciali non offrono.

Nota tecnica sul resto dello stack. Il repository contiene oltre 13.000 self-test distribuiti su più di 500 file, uno schema di base di circa 110 tabelle importato automaticamente, migrazioni per singola funzionalità e un docker-compose.yml per chi preferisce la containerizzazione. Segnali di un progetto tenuto con metodo, non di un residuo storico.

Valutazione

Punti di forza

Costo zero, davvero. Il progetto è inequivocabile su questo: “$0 per sempre, 100% open source”. Non esistono prezzi per modulo né fee aggiuntive — una boccata d’ossigeno per organizzazioni volontarie con budget pari a zero.

Autenticità e longevità. Trent’anni di uso nel mondo reale, un progetto nato da chi il settore lo conosce dall’interno (un paramedico), e una community attiva (il gruppo Google “open-source-cad” funge da forum di discussione e supporto).

Ricchezza funzionale. Per il costo di una licenza commerciale di CAD si ottiene qui quasi tutto: mappatura, comunicazioni multicanale, gestione personale, scheduling, magazzino, reporting.

Interoperabilità. La capacità di parlare simultaneamente con SMS, email, Slack, push-to-talk, mesh radio, DMR e APRS è rara anche nei prodotti commerciali, ed è esattamente ciò che serve a squadre miste, dove alcuni hanno un telefono, altri una radio e altri ancora solo un ponte radio.

Leggerezza e portabilità. Requisiti modesti (PHP + MySQL + un web server qualsiasi) che girano perfino su un Raspberry Pi, con opzione Docker per chi la preferisce.

Punti deboli

Estetica datata nella v3. La versione legacy si porta dietro frameset e jQuery 1.4: la sua interfaccia denuncia l’età. La v4 promette di colmare il divario, ma è ancora in sviluppo.

Supporto di tipo comunitario. Niente SLA commerciale: ci si affida al forum e a GitHub per bug e domande. Le recensioni utente su SourceForge assegnano 5/5 alle funzionalità, ma 4/5 a design e supporto.

Installazione self-hosted. Richiede competenze tecniche minime (LAMP stack o Docker) — non è un servizio cloud “chiavi in mano”. Per team senza alcuna figura tecnica può rappresentare una barriera.

Integrazioni da attivare una per una. La ricchezza di canali ha un prezzo in configurazione: ogni servizio esterno va abilitato, credenziali incluse, e alcune parti richiedono componenti aggiuntivi da installare sul server (come il proxy Zello o il ponte Meshtastic). È flessibilità, ma anche lavoro.

Un inciampo di immagine. Il vecchio dominio del progetto è scaduto ed è stato acquisito da terzi che ne chiedono la rivendita: un episodio che testimonia quanto il progetto sia povero di risorse, e che costringe a fare attenzione a usare solo gli indirizzi ufficiali (SourceForge e GitHub).

A chi è consigliato (e a chi no)

Consigliatissimo a: associazioni di volontariato di protezione civile e antincendio, squadre EMS volontarie, gruppi CERT, radioamatori di supporto alle emergenze, search & rescue e servizi di sicurezza di campus — soprattutto se dispongono almeno di una persona con competenze IT di base e preferiscono l’autogestione (self-hosting) a soluzioni cloud.

Particolarmente indicato a chi opera in contesti con sistemi di comunicazione misti e vuole un unico punto di regia: chi usa Zello o Slack insieme a radio DMR, chi ha bisogno di integrare APRS o reti mesh, chi vuole conservare una traccia unificata delle comunicazioni accanto agli incidenti.

Sconsigliato a: chi cerca un sistema CAD professionale certificato con garanzie contrattuali, formazione ufficiale e uptime garantito, oppure chi semplicemente necessita di un help desk per il customer service: in quel caso TicketsCAD risponde a un problema completamente diverso.

Conclusioni

TicketsCAD è un piccolo miracolo di idealismo pratico: software mission-critical di livello professionale, mantenuto per decenni da una community che crede che i servizi di emergenza volontari non debbano pagare per gli strumenti del proprio mestiere. La versione 3.44 resta affidabile seppur datata nell’aspetto, mentre la rinascita come TicketsCAD 4 — con interfaccia moderna, PHP 8.2, un parco di integrazioni che va dai ponti radio alle piattaforme push-to-talk e una roadmap attiva — suggerisce un progetto in salute e non un relitto storico. Se la vostra organizzazione di soccorso ha più buona volontà che budget, questo è probabilmente il software che state cercando.

Informazioni pratiche

VoceDettaglio
LicenzaGNU GPL v2
CostoGratuito
RequisitiPHP 8.2 (v4), MySQL/MariaDB, web server (Apache/IIS); Docker opzionale; pacchetto Ticket2Go per Windows
Versione stabile3.44.1 (legacy, maintenance)
Nuova versione4.0 con nuova UI (in sviluppo)
Canali di comunicazioneChat, SMS, email, Slack, Zello PTT, Meshtastic, DMR, APRS, ICS/Winlink
Tracciamento posizioniAPRS, Meshtastic, OwnTracks, OpenGTS, DMR GPS, geolocalizzazione browser
Codice sorgenteGitHub (openises/tickets e openises/TicketsCAD)
DistribuzioneSourceForge (openises.sourceforge.net)
SupportoGruppo Google “open-source-cad”

Fonti

  • Sito ufficiale del progetto (openises.sourceforge.net)
  • Pagina progetto su SourceForge (sourceforge.net/projects/openises/) — recensioni e valutazioni utenti
  • LIMSWiki, voce “Tickets CAD” — storia del progetto
  • Repository GitHub openises/tickets e openises/TicketsCAD — dettagli tecnici, integrazioni, roadmap versioni, note di sicurezza
  • Documentazione Zello per sviluppatori (zello.com/developers, zellowork.com/api.htm) — API e SDK push-to-talk

Share with

Torna in alto