Supranet Roadmap
Supranet Roadmap
Roadmap completo do projeto stCall para a Supranet, cobrindo todas as etapas desde o estado atual até a aplicação estar 100% em produção e disponível para uso comercial.
Última atualização: Fevereiro de 2026
Estado Atual do Projeto
O stCall encontra-se em estágio Beta/MVP — as funcionalidades principais de call center estão implementadas ponta a ponta.
O que já funciona
- Autenticação JWT com controle de acesso por papel (agente/supervisor/admin)
- Dashboard com estatísticas em tempo real
- Discador e interface de chamadas via WebRTC (SIP.js)
- Controles de chamada (mudo, espera, transferência, DTMF)
- Histórico de chamadas com filtros
- Gerenciamento de agentes (listar, buscar, filtrar, criar — parcial: criação de usuário não provisiona endpoint WebRTC automaticamente)
- Dashboard administrativo com monitoramento de agentes em tempo real
- Servidor WebSocket (Bun nativo) com integração Asterisk ARI
- Rastreamento de chamadas e filas
- Sincronização PJSIP com FreePBX
- Configurações do usuário (aparência, áudio, notificações)
- Documentação técnica completa em PT-BR
O que falta ou está incompleto
- Gerenciamento de usuários completo — a criação de usuário não configura automaticamente o endpoint PJSIP, credenciais WebRTC e associação à fila no Asterisk/FreePBX. O usuário é criado no banco mas não consegue fazer/receber chamadas WebRTC
- Exportação de relatórios — necessário exportar em CSV e PDF estilizado (com logo, cabeçalho, formatação profissional)
- Transcrição de chamadas sob demanda — funcionalidade prometida para transcrever áudio de chamadas gravadas
- URA (IVR) — menus de atendimento automático com roteamento por departamento/horário
- Gravação de mensagens e personalização de áudio — upload/gravação de mensagens de URA, música de espera, anúncios de fila, mensagens de fora de expediente e voicemail
- Papel Superadmin — interface dentro do stCall para configurar tudo que hoje depende do FreePBX (URA, áudios, troncos, filas, etc.)
- Papel Wallboard (TV) — usuário dedicado que exibe apenas analytics em tempo real (status dos agentes), sem sidebar nem topbar, para uso em TVs no call center
- Testes automatizados (unitários, integração, E2E)
- Pipelines de CI/CD
- Containerização do FreePBX (atualmente em VM)
- Monitoramento e observabilidade (métricas, alertas)
- Hardening de segurança para produção
- Definição de nome comercial e identidade visual
- Contratos e documentação jurídica
- Estratégia de marketing e vendas
Fase 1 — Estabilização e Testes
Duração estimada: 3–4 semanas
Preparar o software para uso real com agentes do call center.
Checklist
Gerenciamento de Usuários (crítico)
Problema atual: A criação de agentes pelo painel admin insere o usuário no banco de dados, mas não provisiona tudo que é necessário para o agente fazer chamadas WebRTC. Itens faltantes no fluxo de criação:
- Ao criar usuário, criar automaticamente o endpoint PJSIP no Asterisk/FreePBX (via API GraphQL ou AMI)
- Gerar credenciais WebRTC (username/secret) e associar ao endpoint PJSIP
- Configurar transport WebRTC (WSS) no endpoint criado
- Associar o agente à(s) fila(s) de atendimento no Asterisk
- Sincronizar dados entre banco stCall (PostgreSQL) e FreePBX (MySQL)
- Ao editar usuário, refletir alterações no endpoint PJSIP
- Ao desativar/remover usuário, remover ou desabilitar o endpoint PJSIP correspondente
- Testar fluxo completo: criar agente → agente faz login → agente faz/recebe chamada WebRTC
Correções e Testes
- Corrigir lookup de CDR/gravações (temporariamente desabilitado)
- Implementar testes unitários para composables críticos (
useWebRTCPhone,useCallHandler,useAuthAPI) - Implementar testes unitários para o backend (
server.ts,call-tracker.ts,registry.ts) - Criar testes de integração para fluxo WebSocket (conexão → autenticação → eventos)
- Criar testes E2E para fluxos principais (login → discar → atender → desligar)
- Realizar teste de carga com 60+ conexões WebSocket simultâneas
- Testar em todos os navegadores (Chrome, Firefox, Safari, Edge)
- Resolver validação JWT simplificada (reforçar para produção)
- Implementar rate limiting no servidor WebSocket
- Adicionar IP whitelisting opcional
- Revisar e corrigir tratamento de erros em todos os composables
- Testar reconexão automática WebSocket e WebRTC sob falha de rede
- Validar fluxo completo de chamadas entrantes (PSTN → Asterisk → agente)
- Validar fluxo completo de chamadas saintes (agente → Asterisk → PSTN)
Fase 2 — Containerização do FreePBX
Duração estimada: 2–3 semanas
Situação atual: O FreePBX roda em uma VM em
freepbx.supranet.com.br. O objetivo é migrar para container Docker para melhorar portabilidade, manutenção e consistência do ambiente.
Checklist
- Avaliar imagens Docker existentes para FreePBX (ex:
tiredofit/freepbx, build customizado) - Criar Dockerfile customizado para FreePBX com as configurações da Supranet
- Configurar persistência de dados (gravações, banco de dados, configurações)
- Migrar configurações PJSIP da VM para o container
- Configurar volumes Docker para gravações de chamadas
- Migrar banco de dados MySQL do FreePBX da VM para container
- Configurar rede Docker para comunicação entre FreePBX, stcall-ws e PostgreSQL
- Testar conectividade PSTN (troncos SIP) a partir do container
- Testar WebRTC (WSS) com certificados SSL no container
- Configurar STUN/TURN server para traversal de NAT
- Realizar teste comparativo de qualidade de áudio (VM vs Container)
- Documentar procedimento de backup e restauração
- Criar docker-compose unificado com todos os serviços (FreePBX, stcall-app, stcall-ws, PostgreSQL, Traefik)
- Testar deploy completo do stack em servidor limpo
- Descomissionar a VM após validação completa em container
Fase 3 — Infraestrutura de Produção
Duração estimada: 2–3 semanas
Preparar a infraestrutura para deploy em produção com alta disponibilidade.
Checklist
- Configurar Portainer para gerenciamento dos containers
- Configurar Traefik como reverse proxy com SSL automático (Let's Encrypt)
- Criar docker-compose de produção (sem volumes de desenvolvimento, sem devtools)
- Configurar Dockerfile de produção para stcall-app (build otimizado, sem HMR)
- Configurar Dockerfile de produção para stcall-ws (multi-stage build otimizado)
- Implementar health checks em todos os serviços
- Configurar backups automáticos (PostgreSQL, MySQL, gravações)
- Implementar rotação de logs
- Configurar monitoramento com Prometheus + Grafana (ou stack equivalente)
- Criar alertas para: servidor WebSocket down, Asterisk desconectado, banco de dados inacessível
- Configurar métricas de performance (tempo de resposta, chamadas ativas, uso de CPU/memória)
- Definir domínio de produção e configurar DNS
- Configurar firewall (liberar apenas portas necessárias: 443, 8089, 3001, SIP/RTP)
- Implementar WAF (Web Application Firewall) se necessário
- Documentar runbook de operações (procedimentos para incidentes comuns)
Fase 4 — CI/CD e DevOps
Duração estimada: 1–2 semanas
Automatizar o processo de build, teste e deploy.
Checklist
- Criar repositório Git unificado ou definir estratégia de monorepo vs multi-repo
- Configurar GitHub Actions (ou GitLab CI) para stcall-app
- Pipeline: lint → build → test → deploy
- Configurar GitHub Actions para stcall-ws
- Pipeline: lint → test → build → deploy
- Configurar pipeline para docs
- Pipeline: build → deploy
- Implementar deploy automático via Portainer webhook ou SSH
- Configurar ambientes separados (staging e produção)
- Implementar versionamento semântico (semver)
- Configurar changelog automático baseado em commits
- Criar processo de rollback documentado
- Configurar notificações de deploy (Slack, email, etc.)
Fase 5 — Funcionalidades Complementares
Duração estimada: 8–11 semanas (várias trilhas podem rodar em paralelo)
Completar funcionalidades que estão parcialmente implementadas, prometidas, ou faltando.
Checklist
Exportação de Relatórios
- Implementar exportação CSV com dados completos (histórico de chamadas, métricas de agentes, analytics)
- Implementar geração de PDF estilizado com:
- Logo da empresa e cabeçalho profissional
- Tabelas formatadas com cores e estilos
- Gráficos embutidos (resumo visual dos dados)
- Rodapé com data de geração, período do relatório e paginação
- Avaliar biblioteca para geração de PDF (ex:
jsPDF,pdfmake, ou geração server-side compuppeteer/playwright) - Permitir escolha de formato (CSV ou PDF) na interface de exportação
- Permitir seleção de colunas/dados a incluir no relatório
Transcrição de Chamadas sob Demanda
- Avaliar e escolher engine de Speech-to-Text (ex: Whisper da OpenAI, Google Speech-to-Text, Azure Speech)
- Implementar endpoint no backend para solicitar transcrição de uma gravação
- Criar worker/job assíncrono para processar transcrições (não bloquear o servidor principal)
- Armazenar transcrições no banco de dados vinculadas à chamada
- Implementar UI para solicitar transcrição a partir do histórico de chamadas
- Exibir transcrição com timeline (timestamps por trecho de fala)
- Permitir busca textual nas transcrições (encontrar chamadas por conteúdo falado)
- Implementar indicador de status da transcrição (pendente, processando, concluída, erro)
- Considerar custos de API de transcrição e implementar limites/quotas se necessário
URA (IVR) — Unidade de Resposta Audível
Pode rodar em paralelo com as demais funcionalidades desta fase.
- Definir fluxos de URA padrão para a Supranet (ex: "Pressione 1 para vendas, 2 para suporte...")
- Implementar editor visual de fluxo URA no painel admin (drag-and-drop ou formulário estruturado)
- Configurar dialplan no Asterisk para execução dos fluxos de URA
- Suporte a menus multinível (sub-menus aninhados)
- Suporte a roteamento por horário (horário comercial vs fora de expediente)
- Suporte a roteamento por fila/departamento
- Integrar URA com filas de atendimento existentes
- Implementar fallback (timeout, opção inválida) com redirecionamento configurável
- Testar fluxo completo: chamada PSTN → URA → seleção → fila → agente
Gravação de Mensagens e Personalização de Áudio
Pode rodar em paralelo com as demais funcionalidades desta fase.
- Implementar interface para upload de arquivos de áudio customizados (formato WAV/MP3)
- Implementar gravador de mensagens integrado no navegador (gravar direto pelo painel admin)
- Converter áudios enviados para formato compatível com Asterisk (WAV 16-bit 8kHz mono, via
soxouffmpeg) - Gerenciamento de biblioteca de áudios (listar, reproduzir, renomear, excluir)
- Categorizar áudios por tipo:
- Mensagens de URA (saudação, menus, opções)
- Música de espera (hold music)
- Mensagem de fila de espera ("Sua chamada é importante para nós...")
- Mensagem de fora de expediente
- Mensagem de voicemail (saudação da caixa postal)
- Anúncios periódicos em fila ("Você é o próximo da fila...")
- Associar áudios aos pontos de uso no Asterisk (MOH class, URA prompts, queue announcements)
- Implementar pré-visualização/playback de áudio antes de aplicar
- Permitir áudio padrão do sistema com opção de sobrescrever por áudio customizado
- Sincronizar arquivos de áudio com o Asterisk/FreePBX (upload para diretório correto do container)
Papel Superadmin — Interface de Configuração do FreePBX
Tudo abaixo já pode ser feito diretamente pelo FreePBX, mas o objetivo é trazer essas configurações para dentro do stCall, acessível apenas por um usuário com papel superadmin. Isso elimina a necessidade de acessar o painel do FreePBX para operações do dia a dia.
- Criar papel
superadminno sistema de autenticação (acima deadmin) - Implementar rota
/superadmincom guard de acesso exclusivo - Criar seção de configuração de troncos SIP (visualizar, testar conectividade)
- Criar seção de gerenciamento de filas de atendimento (criar, editar, remover filas, definir estratégia de distribuição)
- Criar seção de gerenciamento de URA/IVR (editor de fluxos — vinculado à seção URA acima)
- Criar seção de gerenciamento de áudios do sistema (vinculado à seção Áudio acima)
- Criar seção de configuração de gravação de chamadas (habilitar/desabilitar, formato, retenção)
- Criar seção de configuração de horários de funcionamento (dias da semana, feriados, exceções)
- Criar seção de gerenciamento de extensões/ramais (PJSIP endpoints, codecs, transport)
- Implementar comunicação com FreePBX via API GraphQL e/ou AMI para aplicar as configurações
- Implementar log de auditoria para todas as ações do superadmin
- Testar que alterações feitas via stCall refletem corretamente no Asterisk/FreePBX
Papel Wallboard (TV) — Dashboard de Monitoramento
Usuário dedicado para exibição em televisores no call center. Interface minimalista: sem sidebar, sem topbar — apenas o painel de analytics em tempo real, em tela cheia.
- Criar papel
wallboardno sistema de autenticação - Criar layout dedicado
wallboard.vue(sem AppSidebar, sem TopBar, fundo escuro otimizado para TV) - Criar rota
/wallboardque usa o layout dedicado - Após login de um usuário wallboard, redirecionar automaticamente para
/wallboard - Exibir em tempo real:
- Status de todos os agentes (disponível, em chamada, em pausa, offline) com indicadores visuais grandes
- Total de chamadas ativas no momento
- Tempo médio de espera na fila
- Chamadas em fila aguardando atendimento
- Métricas do dia (total de chamadas atendidas, abandonadas, tempo médio de atendimento)
- Auto-refresh dos dados via WebSocket (sem polling)
- Modo tela cheia automático (fullscreen API)
- Impedir timeout de sessão / screen saver (manter tela ativa)
- Layout responsivo para diferentes tamanhos de TV (43", 55", etc.)
- Tema escuro fixo (otimizado para legibilidade à distância)
Funcionalidades de Chamada
- Implementar UI de transferência de chamada (backend já pronto)
- Implementar UI de conferência/bridge (backend já pronto)
- Implementar sistema de voicemail
- Implementar gravação sob demanda (iniciar/parar gravação durante chamada)
- Adicionar notificações push no navegador para chamadas entrantes
- Implementar fila de espera com música de espera configurável
- Adicionar suporte a múltiplas filas de atendimento
Analytics e Operação
- Completar módulo de analytics/relatórios com gráficos detalhados
- Implementar sistema de pausas/breaks para agentes
- Adicionar integração com CRM (API genérica para consulta de dados do cliente)
Fase 6 — Segurança e Compliance
Duração estimada: 2 semanas
Garantir que a aplicação atende requisitos de segurança e conformidade.
Checklist
- Auditoria de segurança do código (OWASP Top 10)
- Implementar HTTPS em todas as comunicações
- Revisar e reforçar autenticação JWT (rotação de tokens, refresh tokens)
- Implementar auditoria de ações administrativas (log de quem fez o quê)
- Configurar política de senhas fortes
- Implementar bloqueio de conta após tentativas de login falhas
- Validar conformidade com LGPD (Lei Geral de Proteção de Dados)
- Termo de consentimento para gravações
- Política de retenção de dados
- Mecanismo de exclusão de dados pessoais
- Documentar política de privacidade
- Configurar Content Security Policy (CSP) headers
- Revisar permissões de acesso ao banco de dados (princípio do menor privilégio)
Fase 7 — Naming, Identidade Visual e Marketing
Duração estimada: 3–4 semanas (pode rodar em paralelo com fases técnicas)
Definir a identidade do produto para uso interno e futuro comercial.
Checklist
Naming
- Definir nome comercial do produto (opções: stCall, SupraCall, ou outro)
- Verificar disponibilidade de domínio para o nome escolhido
- Verificar registro de marca no INPI
- Registrar domínio comercial
- Registrar marca no INPI (se aplicável)
Identidade Visual
- Criar logotipo do produto
- Definir paleta de cores oficial (baseada no laranja Supranet ou nova)
- Criar manual de identidade visual (guia de marca)
- Aplicar identidade visual no stcall-app (logo, favicon, splash screen)
- Aplicar identidade visual na documentação
- Criar templates de e-mail com branding
Marketing
- Criar landing page comercial do produto
- Elaborar material de apresentação comercial (pitch deck)
- Criar documentação de funcionalidades para clientes (feature list)
- Produzir vídeo de demonstração do produto
- Definir tabela de preços e planos (se houver comercialização)
- Criar comparativo com concorrentes
Fase 8 — Contratos e Documentação Jurídica
Duração estimada: 2–3 semanas (pode rodar em paralelo)
Preparar toda a documentação legal para uso interno e comercialização.
Checklist
Contratos Internos
- Contrato de desenvolvimento e propriedade intelectual (PI)
- Acordo de nível de serviço interno (SLA) com a equipe de operações
- Definir responsabilidades de manutenção e suporte
- Documentar SLA de disponibilidade do sistema (ex: 99.5% uptime)
Contratos Comerciais (para venda)
- Elaborar Termos de Uso do serviço
- Elaborar Política de Privacidade (alinhada com LGPD)
- Criar modelo de contrato de licenciamento de software (SaaS ou on-premise)
- Definir SLA comercial para clientes (tempo de resposta, uptime garantido)
- Elaborar contrato de suporte técnico
- Criar NDA (acordo de confidencialidade) modelo para clientes
Telecomunicações
- Verificar necessidade de registro na ANATEL para serviço de VoIP
- Verificar regulamentação de gravação de chamadas (obrigações legais)
- Documentar conformidade com regulamentações de telecomunicações
Fase 9 — Deploy em Produção e Go-Live
Duração estimada: 1–2 semanas
O grande dia — colocar o sistema em produção para uso real.
Checklist
Pré-Deploy
- Todos os testes passando (unitários, integração, E2E)
- Revisão final de segurança aprovada
- Backup completo do ambiente atual (VM FreePBX)
- Documentação de rollback pronta
- Equipe de suporte treinada
- Agentes treinados no uso do sistema
Deploy
- Deploy do stack completo no servidor de produção
- Configurar DNS e certificados SSL
- Migrar configurações do Asterisk/FreePBX
- Validar conectividade PSTN (troncos SIP)
- Testar chamada entrante end-to-end em produção
- Testar chamada sainte end-to-end em produção
- Testar gravação de chamadas em produção
- Validar monitoramento e alertas funcionando
- Validar backups automáticos funcionando
Pós-Deploy
- Monitorar sistema nas primeiras 48h (modo vigilância intensiva)
- Coletar feedback dos agentes e supervisores
- Corrigir bugs críticos identificados
- Ajustar performance conforme necessidade
- Descomissionar a VM do FreePBX (após período de estabilização)
Fase 10 — Operação Contínua e Evolução
Duração: Contínua
Manter o sistema saudável e evoluir conforme demanda.
Checklist
- Estabelecer ciclo de releases (ex: releases quinzenais)
- Implementar sistema de feedback dos usuários dentro da aplicação
- Monitorar métricas de uso e performance semanalmente
- Planejar sprints de melhorias baseado em feedback
- Manter documentação atualizada a cada release
- Realizar auditorias de segurança periódicas (trimestral)
- Atualizar dependências regularmente (Nuxt, PrimeVue, SIP.js, Bun)
- Avaliar necessidade de escalabilidade (múltiplos servidores WebSocket, load balancing)
- Expandir para documentação em inglês (se houver clientes internacionais)
- Avaliar integração com plataformas adicionais (WhatsApp, chat, email)
Resumo das Fases
| Fase | Descrição | Duração (pior caso) | Dependências |
|---|---|---|---|
| 1 | Estabilização e Testes | 4 semanas | — |
| 2 | Containerização do FreePBX | 3 semanas | — |
| 3 | Infraestrutura de Produção | 3 semanas | Fase 2 |
| 4 | CI/CD e DevOps | 2 semanas | Fase 1 |
| 5 | Funcionalidades (relatórios, transcrição, URA, áudio, superadmin, wallboard) | 11 semanas | Fase 1 |
| 6 | Segurança e Compliance | 2 semanas | Fase 1, 3 |
| 7 | Naming, Identidade Visual e Marketing | 4 semanas | Pode iniciar a qualquer momento |
| 8 | Contratos e Documentação Jurídica | 3 semanas | Fase 7 (naming) |
| 9 | Deploy em Produção e Go-Live | 2 semanas | Fases 1–6 |
| 10 | Operação Contínua | Contínua | Fase 9 |
Cenário pessimista (pior caso, sem paralelismo)
Soma total sequencial: 4 + 3 + 3 + 2 + 11 + 2 + 4 + 3 + 2 = 34 semanas
Cenário realista (com paralelismo máximo)
Semana 1–4: [Fase 1: Estabilização + User Mgmt] + [Fase 2: FreePBX Container] + [Fase 7: Naming/Marketing]
Semana 4–7: [Fase 3: Infraestrutura] + [Fase 4: CI/CD] + [Fase 7: continuação]
Semana 7–18: [Fase 5: Relatórios + Transcrição + URA + Áudio + Superadmin + Wallboard]
+ [Fase 6: Segurança] + [Fase 8: Contratos]
↳ Todas as trilhas da Fase 5 rodam em paralelo entre si
Semana 18–20: [Fase 9: Deploy e Go-Live]
Semana 20+: [Fase 10: Operação Contínua]
Tempo estimado realista até go-live: 18–22 semanas
Data-Alvo de Entrega
Considerando o pior cenário (34 semanas) + 3 semanas de margem de segurança = 37 semanas a partir de 18/02/2026:
Data-alvo: 3 de novembro de 2026
Esta data contempla o pior cenário possível (zero paralelismo) com 3 semanas adicionais de buffer para imprevistos.
No cenário realista (com paralelismo), a entrega pode ocorrer já em meados de julho de 2026.