- Navios
- 24 de abril de 2026 às 22:39 UTC
- Autor
- Kamo
- Enviar
- 3bc4f64
Por recurso de instalação CRUD (extensões / usuários / dispositivos / correio de voz): - VoipExtensionsController. - VoipUsersController em /api/voip/instances/{id}/usuários - VoipDevicesController. - VoipVoicemailController em... - Cada GET aceita ?refresh=true para force-fetch do provedor e atualizar cache; caso contrário, serve de cache local para UI snappy. - Cada provedor de chamadas de caminho de gravação E upserts cache local para o agregado as visualizações permanecem consistentes sem esperar pela próxima sincronização agendada. - Voicemail GET /{vmId}/audio transmite o áudio bruto do provedor através StreamingResponseBody para que a UI possa <audio src=...> diretamente. Org-aggregate (VoipOrgAggregateController em /api/voip/org): - /extensões, /usuários, /dispositivos, /voicemails retornam linhas em cada instância com comprimidos {instanceId, instanceName}. UI transforma estes no agregado tabulações em /settings/features/phone. - /health runs checkHealth () em cada instância ativa em paralelo per-instance (através das contagens em cache da instanceSyncService), devolve a instanceHealthDto[]. - POST /sync executa instânciaSyncService contra cada instância ativa do org atual. Pode o nível de inquilino "Sync esta org agora" botão na UI. Sincronização interna (VoipInternalSyncController): - POST /internal/voip/sync-loops globais de todas as instâncias ativas em toda a plataforma. Chamado pelo trabalho do DaemonService. Protegidos pelos actuais InternalAuthFilter no VOIPService. Fica verde.