- Spegnimento
- 24 aprile 2026 alle ore 22:39 UTC
- Autore
- Kamo
- Impegno
- 3bc4f64
CRUD (estensione / utenti / dispositivi / segreteria): - VoipExtensionsController a... - VoipUsersController a /api/voip/instances/{id}/users - VoipDevicesController a... - VoipVoicemailController all'indirizzo. - Ogni GET accetta ?refresh=true per forzare-fetch dal fornitore e aggiornare la cache; altrimenti serve dalla cache locale per l'interfaccia utente snappy. - Ogni percorso di scrittura chiama il fornitore e aggiorna la cache locale in modo che l'aggregato le viste rimangono coerenti senza aspettare la prossima sincronizzazione programmata. - Voicemail GET /{vmId}/audio trasmette l'audio grezzo dal fornitore via StreamingResponseBody in modo che l'interfaccia utente possa <audio src=...> direttamente. Org-aggregate (VoipOrgAggregateController a /api/voip/org): - /estensione, /users, /dispositivi, /voicemails restituisce righe in ogni caso con {instanceId, istanzaName} pillole. L'interfaccia utente li rende aggregati schede in /settings/features/phone. - /health run checkHealth() su ogni istanza attiva in parallelo per-instance (tramite i conteggi cacheti di SystemSyncService), restituisce l'istanzaHealthDto[]. - POST /sync esegue instanceSyncService contro ogni istanza attiva corrente. Attiva il pulsante "Sync this org now" nell'interfaccia utente. Sincronizzazione interna (VoipInternalSyncController): - POST /internal/voip/sync-global loops tutte le istanze attive piattaforma-wide. Chiamato dal lavoro al quarzo di DaemonService. Protetto dall'esistente InternalAuthFilter in VOIPService. Costruisce il verde.