Giter VIP home page Giter VIP logo

vicidial-ws-agent-wallboard's Introduction

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://<server>:8888/wallboard/
    • Polling version: http://<server>:8888/wallboard/poll.html
    • Status JSON: http://<server>:8888/wallboard/status
    • Edit Layout: http://<server>: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://<server>: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.

vicidial-ws-agent-wallboard's People

Contributors

iamacarpet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vicidial-ws-agent-wallboard's Issues

Error on build

/test/va # go build main.go:6:5: cannot find package "github.com/codegangsta/negroni" in any of: /usr/lib64/go/src/pkg/github.com/codegangsta/negroni (from $GOROOT) ($GOPATH not set) main.go:5:5: cannot find package "github.com/gorilla/mux" in any of: /usr/lib64/go/src/pkg/github.com/gorilla/mux (from $GOROOT) ($GOPATH not set) agent_status_ws.go:10:5: cannot find package "github.com/gorilla/websocket" in any of: /usr/lib64/go/src/pkg/github.com/gorilla/websocket (from $GOROOT) ($GOPATH not set) agent_status_ws.go:11:5: cannot find package "github.com/satori/go.uuid" in any of: /usr/lib64/go/src/pkg/github.com/satori/go.uuid (from $GOROOT) ($GOPATH not set) agent_status.go:11:5: cannot find package "github.com/ziutek/mymysql/mysql" in any of: /usr/lib64/go/src/pkg/github.com/ziutek/mymysql/mysql (from $GOROOT) ($GOPATH not set) agent_status.go:12:5: cannot find package "github.com/ziutek/mymysql/thrsafe" in any of: /usr/lib64/go/src/pkg/github.com/ziutek/mymysql/thrsafe (from $GOROOT)

Error while build

main.go:6:5: cannot find package "github.com/codegangsta/negroni" in any of:
D:\Program Files\Go\src\github.com\codegangsta\negroni (from $GOROOT)
C:\Users\Mithun\go\src\github.com\codegangsta\negroni (from $GOPATH)
main.go:5:5: cannot find package "github.com/gorilla/mux" in any of:
D:\Program Files\Go\src\github.com\gorilla\mux (from $GOROOT)
C:\Users\Mithun\go\src\github.com\gorilla\mux (from $GOPATH)
main.go:7:5: cannot find package "github.com/ziutek/mymysql/tree/master/mysql" in any of:
D:\Program Files\Go\src\github.com\ziutek\mymysql\tree\master\mysql (from $GOROOT)
C:\Users\Mithun\go\src\github.com\ziutek\mymysql\tree\master\mysql (from $GOPATH)
main.go:8:5: cannot find package "github.com/ziutek/mymysql/tree/master/thrsafe" in any of:
D:\Program Files\Go\src\github.com\ziutek\mymysql\tree\master\thrsafe (from $GOROOT)
C:\Users\Mithun\go\src\github.com\ziutek\mymysql\tree\master\thrsafe (from $GOPATH)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.