Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/affordablemobiles/vicidial-ws-agent-wallboard
Go/HTML5/WebSocket Drag-and-Drop Agent Wallboard for Vicidial/GoAutoDial
https://github.com/affordablemobiles/vicidial-ws-agent-wallboard
golang pbx vicidial wallboard websockets
Last synced: about 1 month ago
JSON representation
Go/HTML5/WebSocket Drag-and-Drop Agent Wallboard for Vicidial/GoAutoDial
- Host: GitHub
- URL: https://github.com/affordablemobiles/vicidial-ws-agent-wallboard
- Owner: affordablemobiles
- Created: 2016-01-07T12:25:05.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2018-09-25T09:18:54.000Z (over 6 years ago)
- Last Synced: 2024-06-20T00:37:18.519Z (7 months ago)
- Topics: golang, pbx, vicidial, wallboard, websockets
- Language: Go
- Size: 451 KB
- Stars: 18
- Watchers: 10
- Forks: 17
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Vicidial Agent Wallboard
This is the HTML5 / GoLang / WebSocket version of our Vicidial agent wallboard.
Tested with Go v1.5.1
## WebSockets are the future!
Our wallboard became very popular, on loads of screens and desktops all around the place! But for a while, that was it's own demise.
Using the old method of every instance polling a PHP script every second for updates, which would individually run all the required queries, it was quickly locking up the database server as the number of users increased.
As a soloution, this new method runs the queries only once, then sends them out to every connected user via their persistant WebSocket connection.
Plus, as an added bonus, everything looks a lot smoother and runs more fluidly! :).
## Features
* WebSockets by default (single set of queries to all users).
* Option for polling (each user runs their own set of queries, like the old wallboard).
* Inbound SLA & Drop rates in the main header (globally or per campaign, same as for the wait times).## How to run...
* Edit files for DB config (main.go), SLA time (agent_status.go).
* Make sure you're in the folder, then `go build` should produce an executable named `pbx_wallboard`
* Copy `pbx_wallboard` plus the folders `wallboard_html` & `wallboard_templates` into a folder on your server.
* Place `data.json` from your old wallboard install in the same folder (generating this not currently supported).
* Run `pbx_wallboard` in a screen, detach and leave running!
* You can access via:
* WebSocket version: `http://:8888/wallboard/`
* Polling version: `http://:8888/wallboard/poll.html`
* Status JSON: `http://:8888/wallboard/status`
* Edit Layout: `http://:8888/wallboard/edit.html`
* Beware this layout editor is unauthenticated and will allow arbitrary post data to be written to data.json
* It is advisable to secure both this URL and the save endpoint `http://:8888/wallboard/save` with some kind of auth / restriction.
* We use nginx to reverse proxy to ours, for SSL & if running two instances on different ports, you can have a backup.