Instalação AstraCalls padrão Link: https://github.com/AstraOnlineWeb/AstraCalls/tree/main git clone https://github.com/AstraOnlineWeb/AstraCalls.git 📞 AstraCalls Chamadas de voz e vídeo do WhatsApp em Go puro, direto do navegador — prontas para produção SaaS. VoIP nativo (áudio + vídeo, 1:1 e em grupo), gateway SIP/PBX, suíte completa de mensagens, disparos, webhooks confiáveis, integração com Chatwoot e deploy em Docker Swarm + Traefik. Visão Geral · Funcionalidades · Arquitetura · Início Rápido · Configuração · Deploy · API · n8n · Suporte 📋 Visão Geral O AstraCalls pareia uma ou mais contas do WhatsApp (QR code, código de pareamento ou passkey) e permite fazer e receber chamadas de voz e vídeo de qualquer navegador, ligar para tronco/ramal SIP, e operar a conta como canal de mensagens (texto, mídia, botões, listas, carrossel, enquete, formulário, pix, produto, status…). O microfone e a câmera do navegador chegam ao servidor Go por WebRTC (ou por WebSocket, com fallback automático quando o WebRTC não passa no firewall). O servidor transcodifica para os codecs do WhatsApp (MLow para voz, H.264 para vídeo) e injeta a mídia na malha de relay SRTP do WhatsApp — e o caminho inverso traz o áudio e o vídeo do outro lado de volta ao navegador. Toda a pilha VoIP roda nativamente em Go: codec MLow, RTP/SRTP/SRTCP, STUN, transporte SCTP/DTLS do relay, pipeline H.264 e a sinalização , integrados ao whatsmeow e servidos a um painel React 19. A única dependência em C é o codec opus_mlow (via cgo) — e é opcional: sem ela o servidor roda em modo somente sinalização. Várias contas podem ser pareadas e operadas lado a lado, cada uma com QR, status, histórico e banco próprios. Uma conta mantém várias chamadas 1:1 simultâneas (uma por atendente), roteadas por call ID. Status: estável e em produção (última versão estável no CHANGELOG). Chamada em grupo é funcional (áudio + vídeo, 3+ participantes) mas segue marcada como experimental, atrás da flag WACALLS_GROUP_CALLS. 🚀 Funcionalidades ☎️ Chamadas de voz Saída e entrada 1:1 com áudio bidirecional, várias chamadas simultâneas por conta. Espera (hold/resume) com música, atender em espera e transferência cega entre atendentes (troca de dono + ponte, sem tocar a perna do WhatsApp). Mudo / mão levantada ( mute_v2, raise_hand) nos dois sentidos. Timeout de toque, recusa que para o telefone de quem ligou, consent freshness (RFC 7675) — a chamada não cai sozinha aos ~20s. Toque fantasma ( POST /calls/fake): liga e desliga antes de atender (aviso/alerta). Transporte de áudio no navegador: WebRTC com fallback automático para WebSocket ( WACALLS_DEFAULT_TRANSPORT=auto|webrtc|websocket); WS de áudio PCM16 full-duplex ( GET /calls/{id}/ws) pronto para agentes de voz/IA. Gravação opt-in por sessão: MP3 mono mixado dos dois lados, vira nota privada no Chatwoot e evento recording no webhook. 📹 Chamadas de vídeo Vídeo 1:1 (câmera do atendente e do cliente), upgrade/downgrade no meio da chamada (áudio → vídeo e volta), religar a câmera, MediaClock (áudio e vídeo no mesmo relógio). Orientação automática (lê a rotação do celular no RTP e no stanza