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:

  1. Agente clica em "Discar" no frontend
  2. SIP.js envia INVITE direto para o Asterisk via WSS
  3. Asterisk conecta a chamada com o destino (PSTN ou ramal)
  4. Áudio flui diretamente entre navegador e Asterisk

Chamadas de Entrada

Chamadas entrantes são roteadas pelo servidor WebSocket:

  1. Chamada chega ao Asterisk via PSTN
  2. Asterisk dispara evento StasisStart
  3. stcall-ws recebe o evento via ARI WebSocket
  4. stcall-ws roteia para o agente disponível via WebSocket
  5. Agente atende via WebRTC
  6. Á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
NavegadorVersão MínimaSuporte WebRTC
Chrome94+Completo
Firefox91+Completo
Safari15+Completo
Edge94+Completo
Copyright © 2026