mirror of https://github.com/Lukibeg/OmniBoard.git
Merge remote main with local project
This commit is contained in:
commit
b6e99d3128
14
.env.example
14
.env.example
|
|
@ -1,4 +1,4 @@
|
||||||
APP_NAME=Laravel
|
APP_NAME=Ominiboard
|
||||||
APP_ENV=local
|
APP_ENV=local
|
||||||
APP_KEY=
|
APP_KEY=
|
||||||
APP_DEBUG=true
|
APP_DEBUG=true
|
||||||
|
|
@ -20,12 +20,12 @@ LOG_STACK=single
|
||||||
LOG_DEPRECATIONS_CHANNEL=null
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
LOG_LEVEL=debug
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
DB_CONNECTION=sqlite
|
DB_CONNECTION=mysqli
|
||||||
# DB_HOST=127.0.0.1
|
DB_HOST=127.0.0.1
|
||||||
# DB_PORT=3306
|
DB_PORT=3306
|
||||||
# DB_DATABASE=laravel
|
DB_DATABASE=laravel
|
||||||
# DB_USERNAME=root
|
DB_USERNAME=root
|
||||||
# DB_PASSWORD=
|
DB_PASSWORD=
|
||||||
|
|
||||||
SESSION_DRIVER=database
|
SESSION_DRIVER=database
|
||||||
SESSION_LIFETIME=120
|
SESSION_LIFETIME=120
|
||||||
|
|
|
||||||
72
README.md
72
README.md
|
|
@ -1,3 +1,4 @@
|
||||||
|
<<<<<<< HEAD
|
||||||
<p align="center"><a href="https://laravel.com" target="_blank"><img src="https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg" width="400" alt="Laravel Logo"></a></p>
|
<p align="center"><a href="https://laravel.com" target="_blank"><img src="https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg" width="400" alt="Laravel Logo"></a></p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
|
|
@ -57,3 +58,74 @@ ## Security Vulnerabilities
|
||||||
## License
|
## License
|
||||||
|
|
||||||
The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
|
The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
|
||||||
|
=======
|
||||||
|
# OmniBoard 📊
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
## 🚀 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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue