# OmniBoard 📊 ![Laravel](https://img.shields.io/badge/Laravel-12.x-FF2D20?style=for-the-badge&logo=laravel) ![PHP](https://img.shields.io/badge/PHP-7.4%20%7C%208.2-777BB4?style=for-the-badge&logo=php) ![Vue.js](https://img.shields.io/badge/Vue.js-3.x-4FC08D?style=for-the-badge&logo=vue.js) ![Asterisk](https://img.shields.io/badge/Asterisk-AMI-orange?style=for-the-badge) ## 🚀 Sobre o Projeto O **OmniBoard** é uma solução de monitoramento de performance para Call Centers e Centrais de Atendimento. O objetivo é acabar com a "caixa preta" da telefonia, transformando eventos brutos do PABX e do WhatsApp em métricas visuais em tempo real para gestores. Diferente de soluções monolíticas que rodam dentro do servidor do cliente, o OmniBoard utiliza uma arquitetura **SaaS (Software as a Service)**. Um agente leve coleta os dados localmente e os transmite para uma nuvem centralizada, garantindo escalabilidade, segurança e baixo consumo de recursos no servidor de telefonia. --- ## 🏗 Arquitetura O sistema é dividido em dois componentes principais para resolver o problema de conectividade (NAT/VPN) e escalabilidade: ### 1. The Cloud Core (Servidor) Hospedado na nuvem (VPS), é o cérebro da operação. * **Stack:** Laravel 12 + MySQL + Redis. * **Responsabilidade:** Receber dados via API, gerenciar múltiplos inquilinos (Multi-tenant), processar histórico e servir o Dashboard via WebSockets. ### 2. The Local Agent (Cliente) Um script leve em **PHP Puro** que roda dentro do servidor FreePBX/Asterisk do cliente. * **Stack:** PHP 7.4 (Nativo do FreePBX) com Sockets TCP. * **Conexão:** Conecta-se ao AMI (Asterisk Manager Interface) na porta 5038. * **Responsabilidade:** "Escutar" eventos (Entrada em fila, Pausas, Abandonos), filtrar e transmitir via HTTPS para o Cloud Core. * **Segurança:** Opera apenas com saída de dados (Outbound), sem necessidade de abrir portas no firewall do cliente ou configurar VPNs complexas. --- ## ✨ Funcionalidades * **Monitoramento de Filas em Tempo Real:** * Visualização de clientes aguardando na fila. * Tempo médio de espera (TME). * Alertas visuais de gargalos. * **Gestão de Agentes:** * Status ao vivo (Disponível, Falando, Pausado, Deslogado). * Identificação de pausas excessivas. * **Integração WhatsApp (HelenaCRM):** * Unificação das métricas de atendimento via chat no mesmo painel da voz. * **Métricas Críticas:** * Contador de Chamadas Abandonadas (Lost Calls). * Nível de Serviço (SLA). --- ## 🛠 Tecnologias Utilizadas * **Backend:** Laravel 12 * **Frontend:** Vue.js / Blade Templates * **Real-time:** Laravel Reverb / WebSockets * **Coleta de Dados:** PHP Streams (fsockopen) para conexão AMI raw. * **Infraestrutura:** Vultr VPS (Linux) --- ## 🔄 Fluxo de Dados ```mermaid graph LR A[Asterisk Server] -- AMI Event (TCP 5038) --> B(Agente PHP Local) B -- JSON / POST (HTTPS) --> C{Laravel Cloud API} C -- Store --> D[(Database)] C -- Broadcast --> E(WebSocket Server) E -- Push --> F[Navegador do Gestor] >>>>>>> b3ca2fa0a9321407a81a23c65366e37298548044