# Changelog Todas as fases foram construídas e testadas contra containers reais (Postgres/Redis/Asterisk), nunca apenas documentadas — ver `TODO.md` para o detalhamento de cada item testado por fase. ## Fase 0 — Bootstrap - Estrutura do monorepo (pnpm workspaces), decisões de arquitetura documentadas em `docs/ARCHITECTURE.md`. ## Fase 1 — Asterisk + PJSIP - Asterisk 22.10.1 compilado do fonte, PJSIP Realtime via ODBC/Postgres, AMI/ARI, CDR/CEL via `cdr_adaptive_odbc`/`cel_odbc`. ## Fase 2 — Autenticação e RBAC - Argon2id, JWT + refresh rotativo, RBAC completo, auditoria, rate limiting progressivo de login, bootstrap de `super_admin` com senha aleatória. ## Fase 3 — Telefonia e eventos - `packages/telephony` (client AMI próprio), `apps/asterisk-events` (normalização de eventos → Postgres/Redis pub-sub). ## Fase 4 — Troncos, ramais e dialplan - CRUD de troncos/ramais com provisionamento PJSIP Realtime, criptografia AES-256-GCM de segredos, dialplan estruturado versionado com rollback automático, administração do Asterisk via allowlist de comandos. ## Fase 5 — Call Center - Filas (8 estratégias, membership 100% dinâmica via AMI), console do agente (login/pausa/disponibilidade), monitoramento de filas em tempo real. ## Fase 6 — Campanhas e discador preditivo - CRUD de campanhas com máquina de estados, import CSV streaming, normalização de telefone BR, lista de supressão (DNC), CPS limiter (token bucket Redis), reserva concorrente de leads (`FOR UPDATE SKIP LOCKED`), `PredictiveDialerEngine` (EWMA de answerProbability/TMA/abandono, pacing adaptativo), retry engine, horário de campanha, lock distribuído por campanha. ## Fase 7 — CDR, métricas e relatórios - Reconciliação de estados órfãos, TME/TMA reais, relatório de chamadas e de agentes, dashboard geral e do discador, indicadores de compliance configuráveis. ## Fase 8 — Frontend completo - Next.js 15 + Tailwind v4 + componentes estilo shadcn/ui, todas as telas do checklist de aceite, Nginx como reverse proxy único (porta 80). ## Fase 9 — Segurança e produção - Endpoint Prometheus (`GET /api/metrics`) com métricas reais (chamadas, agentes, filas, CPS por campanha). - Scripts operacionais: `install.sh`, `update.sh`, `backup.sh`, `restore.sh`, `healthcheck.sh`. - Disposição de chamada aplicada de fato (`POST /api/agent-console/dispose`) com ações CALLBACK (agenda retorno) e DO_NOT_CALL (suprime automaticamente) — lacuna deixada em aberto na Fase 6/8. - Agendamento de callback: `apps/dialer-worker/src/callback-sweep.ts` reativa leads no horário agendado; `GET /api/callbacks` para consulta. - Wrap-up automático: `apps/dialer-worker/src/wrap-up-sweep.ts` transiciona o agente de volta para `AVAILABLE` (e despausa nas filas) após o tempo de wrap-up da fila expirar — lacuna deixada em aberto na Fase 6. - Revisão de nftables (sem alterações necessárias — regras já cobriam o Nginx publicado na Fase 8). - Documentação completa: `docs/INSTALL.md`, `docs/OPERATIONS.md`, `docs/BACKUP_RESTORE.md`, `docs/SECURITY.md`, `docs/DATABASE.md`, `docs/API.md`, `docs/ASTERISK.md`, `docs/OPENSIPS.md` (não implementado — motivo documentado), `docs/TROUBLESHOOTING.md`. ## Fase 10 — Testes e aceite - Ver `docs/RELATORIO_FINAL.md` para o relatório de aceite completo.