diff --git a/.env.example b/.env.example index c0660ea..1c7216d 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,4 @@ -APP_NAME=Laravel +APP_NAME=Ominiboard APP_ENV=local APP_KEY= APP_DEBUG=true @@ -20,12 +20,12 @@ LOG_STACK=single LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug -DB_CONNECTION=sqlite -# DB_HOST=127.0.0.1 -# DB_PORT=3306 -# DB_DATABASE=laravel -# DB_USERNAME=root -# DB_PASSWORD= +DB_CONNECTION=mysqli +DB_HOST=127.0.0.1 +DB_PORT=3306 +DB_DATABASE=laravel +DB_USERNAME=root +DB_PASSWORD= SESSION_DRIVER=database SESSION_LIFETIME=120 diff --git a/README.md b/README.md index 0165a77..7eb38e4 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +<<<<<<< HEAD

Laravel Logo

@@ -57,3 +58,74 @@ ## Security Vulnerabilities ## License The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT). +======= +# 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