Call-Monitor Dashboard

The Call-Monitor Dashboard was a project I created for my work. Its main purpose was to gather a variety of tools and features that are spread across multiple sites and programs into one central database-driven page. This was created using PHP, JQuery, AJAX, Javascript, MySQL and HTML5.


  • LDAP Authentication
  • Levels of Access
  • Phones/Queue Call Monitor
  • Announcements/Global Issues Broadcast
  • Online Notepad
  • Lunch Schedule
  • Team Shoutbox
  • Domain Query
  • Agent Randomizer
  • Settings/Control Panel
  • Customizable jQuery Windows

The tool is now being used by floor agents on a daily basis. 

The Dashboard

The dashboard was created primarily in PHP and jQuery. At arrival to the tool, you are prompted to enter the your LDAP username and password. The user/pass is sent to the LDAP Authentication server and returns if the credentials were successful or other. If successful, a session is created and you are logged into the system. When loading, a number of settings are checked. If these do not exist in the database, a record is created for the user and window settings are pulled from a Default record.

The jQuery Widgets (Windows) have many functions, including resizing, moving, minimizing and closing. When a user moved, resizes, minimizes or closes any of the windows, the jQuery window calls a function to call an AJAX POST in the back end to update the users window settings on the database. This allows the user to move windows around freely and have their settings saved without any interruption.

When the tool is loaded, the user record is checked to see if any custom window positioning has been created and will position/size the window to their settings. This also will save if a window was minimized to the tray or closed. If the customer wishes to have a window minimize or close by default, they can specify this for any individual window in the Settings.

The Settings section allows Tier 1 users to modify their Nickname (for chat/shoutbox), and their saved window settings. For higher levels of access (Tier 2, Leads, Admins and Superadmins), they are given extra fields to modify  access of agents for levels that are lower than their own, and change announcements or global issues settings.

Phone Queue/Call Monitor

The phone queue and call monitor is the largest widget on the tool. The widget updates every 3 seconds and reports to the agents of the agents and queues status. This reports over 3 times faster than the previous call monitor we use and has a number of improvements, such as showing when a call is ringing on a phone, or how many calls have been dodged by the agent.

callmonagents [Database] - This database stores the agents names, extensions, calls taken, among other useful information.

callmonchannels [Database] - A database that stores the channels queue names, awaiting calls, wait duration, and more...

callmon.php - This is the main code which is refreshed for each agent every 3 seconds. This queries the Callmonagents and Callmonchannels databases located on the same server to pull and display all of the information into formatted tables.

callmonupdate.php - This php file is executed by the server to run every 3 seconds using a cronjob. The update gets the file contents of agents.php and queues.php, parses through the returned data and then updates the Callmonagents and Callmonchannels database tables.

agents.php & queues.php - These files run queries on the Asterisk phone system. Queues.php just requests the queue status, while agents.php runs a first pass to query all of the agents, and a second pass to query any channels the agents extension are using to retrieve Caller ID information.

Announcements & Global Issues

The Announcements and Global Issues are two identical widgets that display a scrolling ticker-feed. The information is pulled from database tables of the respective names. These tables are modifiable from controls within the Settings for Tier2 and higher level agents.

Online Notepad

Agents often find that they need to write down notes or important information while they are taking calls. This is a simple widget that has a large multi-line textbox for them to leave notes in. The page periodically checks if there is updated or modified text compared to the last update, and then posts that information to the database for that user.

If anything happens, such as browser crashing or the user wants to switch a computer, all of the text/information is restored into the window when they next log onto the Dashboard.


The shoutbox is a simple widget that is no different from any other shoutbox found on the web. The username is pulled from the session they are logged into, and also makes use of any nicknames they have specified in the Settings.

Agents were told that they can be social and goofy using this, but if the tool was abused, they would have their post changed to show their undying love for Nickelback.

Lunch Schedule

The lunch schedule simply allows Tier 2 and higher agents to modify the time fields for the agents. On updating these fields, the database is updated to the database. The widget refreshes when there is a change on the database table and updates the fields with the correct records. At midnight each night the table is wiped.

Query Widget

Two of the most important tools that agents use are "whois" and "dig" from dnr tool server using putty terminal. This widget bypasses the need to have a putty terminal open and to run separate commands on the same domain name. By simply punching in the domain name and hitting submit, this will return a "whois" query using an array of trusted WhoIs Search Engines, as well as a "dig" of the domains DNS records.


The last tool was a game that was created using HTML5's Canvas and Javascript. This browses the call-monitors agents database table to show a list of all agents available to enter the Randomizer. The Randomizer then shows a game which is database driven (to show any agents viewing a duplicate outcome) in which agents walk one-by-one into the Meeting Room of win, where they can often be knocked to the back of the line by various NES video-game characters. This includes Mike Tyson from Punchout, Duck Hunt Dog or more. The loser(s) who do not make it into the meeting are then displayed on the screen.