Back to articles
How to Build a Real-Time VICIdial Wallboard with Node.js and Grafana
How-ToDevOps

How to Build a Real-Time VICIdial Wallboard with Node.js and Grafana

via Dev.to DevOpsJason Shouldice

VICIdial logs everything into MySQL. Every dial attempt, every agent state change, every second of talk time, every disposition. The data is there. The problem is getting it onto a screen in a format that tells you something useful before the shift is over. The built-in realtime_report.php works, but it has scaling issues. Every browser tab running it fires its own MySQL queries on each refresh. Ten managers watching = ten times the database load. No alerting, no historical context, no way to spot a creeping drop rate until you're already past 3%. This walkthrough covers a two-layer approach: a Node.js WebSocket server that polls MySQL once and pushes snapshots to every connected viewer, paired with Grafana for visual dashboards with time-series charts, threshold gauges, and alerting. The Architecture VICIdial MySQL --> Node.js (poll every 2-3s) --> HTML Wallboard (big TV) | +-- Grafana (poll every 5-10s) --> Manager laptops, kiosk TVs The Node.js server hits three table types: vicidia

Continue reading on Dev.to DevOps

Opens in a new tab

Read Full Article
6 views

Related Articles