OmniBoard/README.md

3.1 KiB

OmniBoard 📊

Laravel PHP Vue.js Asterisk

🚀 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

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