Skip to content

karlcswanson/phoneboard

Repository files navigation

Phoneboard

Phoneboard manages Twilio conference rooms and JK Audio AutoHybrid IP2 devices. This dashboard software was developed for the Global Leadership Network to provide live translation to GLS satellite sites.

Screenshots

Phoneboard Control

phoneboard control

l brings up the main controls for phoneboard. Groups of codecs and calls can be controlled with OFF-AIR, Queue, and ON-AIR.

  • OFF-AIR - Set all channels to OFF-AIR. This ends any existing codec calls and Twilio conferences. Callers are instructed to redial 15 minutes before the conference.
  • Queue - Opens up lines. Callers are prompted for a room to join and placed on hold once the conference starts.
  • ON-AIR - Set all channels to ON-AIR. If disconnected, codecs will redial.

Manual Controls

There are additional manual controls for phoneboard. These are available for testing individual codec and Twilio API functions. These can be accessed by pressing e.

Watchdog Controls
  • Disabled - Disables the watchdog for that channel. The codec is left in its current state.
  • OFF AIR - Ends the Twilio conference via the Twilio API and drops the call on the codec.
  • ON AIR - Dials the codec and redials once a call is dropped.
Codec Controls
  • call - Set codec to dial.
  • drop - set codec to drop call.

Clicking codec opens the codec management page.

Twilio Controls
  • close - Close conference via Twilio API.

Keyboard Shortcuts

  • esc - Reload
  • 1...8 - Monitor conference channel
  • 0 - End all WebRTC calls
  • c - Toggle clocks
  • e - Toggle manual controls
  • f - Toggle fullscreen
  • l - Toggle mastercontrol

Call Monitoring

Using the Twilio WebRTC API, calls can be monitored within phoneboard. Pressing 1...8 or clicking on the ON-AIR text will dial into the corresponding conference. 🎷 indicates a current WebRTC call.

On mobile devices, clicking Live and Delay dials the conference line for monitoring.

Switchboard

Switchboard is a separate web server that serves TwiML for Twilio. The Twilio service submits data to switchboard via a POST request. TwiML supplied by Switchboard directs Twilio on how to route calls from the JK Audio codecs and phone calls to the DID numbers.

Installation

Install git, python3-pip, and Node.js

$ sudo apt-get update
$ sudo apt-get install git python3-pip
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt-get install nodejs

Download phoneboard from github

$ git clone https://github.com/karlcswanson/phoneboard.git
$ cd phoneboard/

Install dependencies via npm & pip

$ npm install
$ pip3 install -r py/requirements.txt

build and run phoneboard

$ npm run build
$ npm run server

Edit User and WorkingDirectory within the systemd service files to match your installation and install it as a service.

$ sudo cp switchboard.service /etc/systemd/system/
$ sudo cp phoneboard.service /etc/systemd/system/
$ sudo systemctl start switchboard.service
$ sudo systemctl start phoneboard.service
$ sudo systemctl enable switchboard.service
$ sudo systemctl enable phoneboard.service

Configure nginx

About

A dashboard for monitoring JK Audio VoIP Codecs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published