Skip to content

Releases: AstraOnlineWeb/AstraCalls

AstraCalls v0.0.2

Choose a tag to compare

@AstraOnlineWeb AstraOnlineWeb released this 08 Jul 13:07

Primeira versão estável desde a v0.0.1. Destaques: API completa estilo WAHA, recepção de novos tipos de mensagem no Chatwoot, recursos avançados do whatsmeow e suporte a pareamento por passkey.

✨ Novidades

API completa (compatível com clientes estilo WAHA)

  • Mensagens e contatos
  • Grupos (criar, participantes, admin)
  • Canais, status, presença e perfil
  • Histórico de conversas e mensagens
  • Aliases de compatibilidade nos payloads (id/chatId/subject/role/from…)
  • Documentação OpenAPI/Swagger de todas as rotas

Novos tipos de mensagem recebida (renderizados no Chatwoot e no webhook)

  • Enquete/poll — criação, encaminhamento e recebimento de votos decodificados
  • Figurinha (sticker/WebP) vira anexo
  • Catálogo/produto e pedido do WhatsApp Business
  • Cobrança Pix
  • Evento do WhatsApp (nome/descrição/data BRT/local/link) + RSVP (Vou/Talvez/Não vou)
  • Contato/vCard (nome + telefones)
  • Reação (com o ID da mensagem reagida)
  • Visualização única (desembrulha ViewOnce V2/V2Extension/legado; avisa quando indisponível)

Recursos avançados do whatsmeow

  • Pareamento por código (sem QR)
  • Privacidade da conta (leitura e alteração; privacidade de status)
  • Mensagens temporárias (padrão e por conversa)
  • Admin de grupo — solicitações de entrada, modo de aprovação e quem pode adicionar membros
  • Perfil Business de contato e link/QR "me adicione"

Passkey (WebAuthn)

  • Pareamento de contas em que o WhatsApp passou a exigir passkey
  • Extensão AstraCalls Passkey (Chrome) + integração no painel e download pelo próprio painel

Integração Chatwoot

  • Abre conversas de grupos e canais (com toggles)
  • Espelha como nota privada as mensagens 1:1 enviadas pelo aparelho (anti-loop por id)
  • Resposta com citação bidirecional (Chatwoot ↔ WhatsApp)
  • Grava source_id na mensagem de saída do agente
  • Não reutiliza contato de grupo legado em conversa 1:1

Chamadas

  • Gravação de chamada opt-in por sessão → nota privada no Chatwoot + webhook
  • Disparo em massa de ligações com áudio pré-gravado

Rede

  • Proxy de saída por sessão (http/https/socks5) via painel e API

Interface

  • Redesign com identidade AstraCalls (logo, favicon, paleta navy/azul, layout de cards flutuantes, pt-BR)

🐛 Ajustes

  • Selects de áudio responsivos (empilham no mobile, não estouram o box)
  • Cabeçalho da conta responsivo (ações quebram linha; rótulos viram ícone no mobile)
  • Bolinha do Switch encosta corretamente no fim
  • Sidebar e conteúdo unificados num único container

🐳 Docker

docker pull astraonline/wacalls:v0.0.2

Changelog completo: v0.0.1...v0.0.2

Full Changelog: v0.0.1...v0.0.2

AstraCalls v0.0.1 — primeira versão

Choose a tag to compare

@github-actions github-actions released this 26 Jun 13:11

Primeira versão pública do AstraCalls, um fork de produção do WaCalls que adiciona toda a camada necessária para operar chamadas de voz do WhatsApp como serviço.

✨ Novidades desta versão

🗄️ Persistência em PostgreSQL (1 banco por sessão)

Modelo estilo WAHA: um banco principal (wacalls_main) + um banco por sessão (wacalls_<id>). Isola credenciais por conta e escala melhor em cenário multi-tenant/SaaS. Configurável por WACALLS_PG_URL e WACALLS_PG_NAMESPACE.

💬 API de mensagens

Envio de mensagens via whatsmeow: POST /api/sessions/{sid}/messages/{text|image|audio|video|document} (mídia por base64 ou URL).

🔔 Webhooks por sessão

GET/POST/DELETE /api/sessions/{sid}/webhook — dispara eventos message e receipt para a URL configurada.

🤝 Integração nativa com Chatwoot

Contato/conversa find-create por telefone, mensagens WhatsApp → Chatwoot (texto + mídia) e Chatwoot → WhatsApp via webhook. Tudo com 1 QR só por número.

📲 Widget de chamada dentro do Chatwoot

widget.js injetável que adiciona um botão de telefone na conversa: faz a chamada WebRTC direto do navegador do agente, abre e toca ao receber ligação, mostra "Chamando…" até atender, inicia o cronômetro só na conexão real e silencia o toque ao atender.

🔐 Autenticação por API key

Middleware withAuth: com WACALLS_API_KEY setada, as rotas /api/* exigem X-API-Key (ou ?apiKey= no SSE). Cliente React com tela de login.

🌐 Mídia WebRTC pronta para nuvem (ICE-TCP / NAT 1:1)

Resolve o bloqueio de UDP de entrada de provedores cloud usando SetNAT1To1IPs + ICE-TCP. Gated por WACALLS_PUBLIC_IP (aceita auto) e WACALLS_UDP_PORT.

🐳 Deploy em Docker Swarm + Traefik (HTTPS)

Stack com Postgres dedicado, rede de host para a mídia, proxy socat com labels Traefik e imagem versionada no Docker Hub (astraonline/wacalls:develop).

⚡ UX e robustez

Envio de offer/accept assíncrono (UI não trava no timeout de 15s) e parsing correto do <relay> de entrada (áudio nas chamadas recebidas).

📄 Licença

Relicenciado sob AGPL-3.0; o aviso MIT original do WaCalls é preservado em LICENSE.WaCalls.

👥 Créditos

Construído sobre o trabalho da equipe do WaCalls: @jotadev66, @jobasfernandes, @edgardmessias, @w3nder.


🛠️ Suporte Profissional: WhatsApp +55 61 9 9687-8959