Files
b2bcall/CHANGELOG.md
B2BCall Bootstrap 80e72881b2 feat: Fase 9/10 — métricas, scripts operacionais, callback/wrap-up e aceite final
Fase 9 (segurança e produção):
- GET /api/metrics: endpoint Prometheus com métricas reais (chamadas,
  agentes, filas, CPS por campanha), protegido por permissão
- scripts/backup.sh, restore.sh, healthcheck.sh, install.sh, update.sh —
  testados contra o ambiente real (backup.sh e healthcheck.sh rodados de
  verdade; install.sh/update.sh validados por inspeção, ambiente atual já
  provisionado)
- POST /api/agent-console/dispose: aplica disposição de chamada de verdade
  (lacuna deixada aberta desde a Fase 6), com ações CALLBACK (agenda
  retorno) e DO_NOT_CALL (suprime automaticamente)
- apps/dialer-worker/src/callback-sweep.ts: reativa leads com callback
  vencido; GET /api/callbacks para consulta
- apps/dialer-worker/src/wrap-up-sweep.ts: transição automática
  WRAP_UP -> AVAILABLE + despausa real na fila do Asterisk. Exigiu corrigir
  main.ts para conectar ao AMI mesmo em DIALER_SIMULATION=true
  (DIALER_SIMULATION deve impedir só originação de chamada, não ações
  administrativas de fila)
- nftables revisado (sem alterações necessárias)
- Documentação completa: INSTALL, OPERATIONS, BACKUP_RESTORE, SECURITY,
  DATABASE, API, ASTERISK, OPENSIPS (não implementado, motivo
  documentado), TROUBLESHOOTING
- README.md e CHANGELOG.md reescritos

Fase 10 (testes e aceite):
- Quality gate completo executado: build/typecheck (7 workspaces), lint,
  46 testes unitários, docker compose config/ps, healthcheck — tudo verde
- Aceite de segurança (seção 92): 13 itens verificados ao vivo contra o
  sistema real, não só por inspeção de código
- Aceite Asterisk (seção 93): os 5 comandos executados e documentados,
  comunicação API->AMI->Asterisk validada
- docs/RELATORIO_FINAL.md: relatório final no formato da seção 96

Todos os fixtures de teste desta fase foram removidos/desativados ao
final. Credenciais de acesso entregues separadamente em CREDENCIAIS.txt
(fora do git, nunca versionado).
2026-08-27 19:16:14 -03:00

73 lines
3.3 KiB
Markdown

# 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.