Guia Inicio
Introdução
Visão geral do stCall, requisitos do sistema e conceitos fundamentais.
Introdução
O stCall é um software de call center desenvolvido para uso interno com planos de comercialização. A aplicação integra com Asterisk PBX para fornecer uma solução completa de atendimento para 60+ agentes simultâneos.
Visão Geral
O sistema é composto por três componentes principais:
┌─────────────────────────────────────────────┐
│ Frontend (stCall) │
│ Nuxt 3 + PrimeVue + SIP.js │
│ │
│ WebRTC ←──────→ Asterisk PJSIP (WSS) │
│ WebSocket ←────→ stcall-ws (WS) │
└─────────────────────────────────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────────┐
│ Asterisk PBX │ │ WebSocket Server │
│ (Container) │ │ (stcall-ws) │
│ │ │ │
│ - PJSIP/WebRTC│ │ - ARI Events │
│ - PSTN │ │ - Roteamento │
│ - Gravações │ │ - Autenticação │
└─────────────────┘ └─────────────────────┘
│
▼
┌──────────────┐
│ PostgreSQL │
│ + MySQL │
│ (FreePBX) │
└──────────────┘
Frontend (stCall)
Aplicação Nuxt 3 que roda no navegador dos agentes. Responsável por:
- Interface de chamadas (discador, controles, histórico)
- Conexão WebRTC com Asterisk para áudio
- Conexão WebSocket com stcall-ws para eventos e comandos
- Dashboard administrativo e gerenciamento de agentes
WebSocket Server (stcall-ws)
Servidor Bun nativo que atua como intermediário entre o frontend e o Asterisk:
- Mantém conexão persistente com Asterisk ARI
- Autentica agentes via JWT
- Roteia eventos do Asterisk para os agentes corretos
- Executa comandos dos agentes no Asterisk via API HTTP
Asterisk PBX
Central telefônica que gerencia a conectividade PSTN e mídia WebRTC:
- Endpoints PJSIP configurados para WebRTC
- Aplicação Stasis para roteamento de chamadas entrantes
- Gravação de chamadas
- Conectividade com a rede telefônica pública (PSTN)
Arquitetura de Chamadas
Chamadas de Saída
O agente inicia a chamada diretamente via WebRTC (SIP.js), sem passar pelo servidor WebSocket:
- Agente clica em "Discar" no frontend
- SIP.js envia INVITE direto para o Asterisk via WSS
- Asterisk conecta a chamada com o destino (PSTN ou ramal)
- Áudio flui diretamente entre navegador e Asterisk
Chamadas de Entrada
Chamadas entrantes são roteadas pelo servidor WebSocket:
- Chamada chega ao Asterisk via PSTN
- Asterisk dispara evento StasisStart
- stcall-ws recebe o evento via ARI WebSocket
- stcall-ws roteia para o agente disponível via WebSocket
- Agente atende via WebRTC
- Áudio flui diretamente entre navegador e Asterisk
Papéis de Usuário
Agente
- Receber e fazer chamadas
- Gerenciar chamadas ativas (mudo, espera, transferência)
- Acessar próprio histórico de chamadas
- Ouvir gravações das próprias chamadas
- Gerenciar perfil e configurações pessoais
Administrador
- Todas as funcionalidades do agente
- Dashboard de monitoramento em tempo real
- Analytics de desempenho por agente
- Gerenciamento de agentes (CRUD)
- Acesso a gravações de todos os agentes
- Configurações do sistema (Asterisk, gravações, manutenção)
Requisitos
Para Desenvolvimento
- Docker e Docker Compose
- Bun 1.x (para desenvolvimento local sem Docker)
- Git para controle de versão
Para Produção
- Asterisk PBX com ARI habilitado e PJSIP configurado para WebRTC
- PostgreSQL 16 para dados da aplicação
- MySQL/MariaDB (FreePBX) para sincronização PJSIP
- Certificados SSL para WSS (WebSocket Secure)
- Servidor STUN/TURN para traversal de NAT
Navegadores Compatíveis
| Navegador | Versão Mínima | Suporte WebRTC |
|---|---|---|
| Chrome | 94+ | Completo |
| Firefox | 91+ | Completo |
| Safari | 15+ | Completo |
| Edge | 94+ | Completo |