Engineering Deathmatch

S1E2 Two Rings, Four Hearts

In this special Cisco Live edition of Engineering Deathmatch, the engineers are challenged with configuring 2Ring COMPACT AGENT and 2Ring GADGETS for Cisco Finesse.  Two collaboration CCIEs, Anthony “The Antagonizer” Holloway and Chad “The Stack” Stachowicz, face off in this battle for the ages to see who will be victorious.  This challenge was sponsored and written by 2Ring (

Scenario and Solution

The challenge details can be found at:

For this challenge, we will go over the high level tasks to complete each item in the challenge, but keep in mind there are several ways that you can go about completing each one.

Task 1:  Configure Jabber on the pod computer to include a tab to use the 2Ring COMPACT AGENT.compactagent

In order to deploy the 2Ring COMPACT AGENT to a single user, you don’t have to mess around with Jabber configuration XML files or anything like that.  For a single user it’s much easier to use the following steps:

  1. Within the Jabber client, click the settings gear
  2. Navigate to File – New – Custom Tab
  3. Enter a name for the tab and enter the URL for the COMPACT AGENT, click ok.

Once you have completed that, your Jabber client should have a tab that looks something like the image to the right.

Task 2: Add 2Ring GADGETS to the Finesse layout

Within the 2Ring GADGETS admin guide there is a sample configuration to add the 2Ring GADGETS into Cisco Finesse.  If you copy the configuration that is there into the Finesse desktop layout, being careful not to replace the call control gadget that is already in the system then this step is resolved fairly quickly.  Just remember about the call control gadget because if you just copy and paste what is in the document (changing the hostname/appPath definition) then you will overwrite the call control gadget and you will have to go back to the default configuration to grab it.

Task 3: Configure BROWSER tabs so that the first tab goes to Engineering Deathmatch and that the third tab goes to an external DASHBOARD

Once you have the gadgets added into Finesse, customizing them requires going in and editing the individual configuration files.  In order to customize the BROWSER gadget, you can navigate to the browser directory of your 2Ring install (for our lab, this is \\\c$\inetpub\wwwroot\Engineering\Browser\Configuration).  Once there, you can copy the config-sample.json over to the config.json and edit the necessary items.  For this particular challenge, you need to edit these to components:

“id”: “tab_one”,
“title”: “Deathmatch”,
“url”: ““,
“color”: “darkblue”,
“userClose”: false


“id”: “tab_three”,
“title”: “Real Time Stats”,
“url”: ““,
“color”: “violet”,
“userClose”: false

Once you’ve done that and saved the config.json file this part of the challenge is complete.

Task 4: Configure the InfoPANEL to store caller ID in a variable and perform a Bing search on that

Again, what I found the easiest way to do this is to copy the sample configuration and use that to modify the final file.  Again, this is mostly done by copying the sample configuration and making sure that in the new dialog section of the workflow that you add a step to set callVariable1 to the calling number.  I’m not going to go deep into this here because the next step will deal more with dealing with that call variable.

Task 5: Allow users to change callVariable1 and click a button to search on the new value

There are two files that need to be changed in order to accomplish this task.  First, you need to add the button in the config.json by adding the following:

 “buttonRows”: [
“id”: “Bing”,
“title”: “Bing It!”,
“color”: “red”,
“toolTip”: “Search It!”,
“isEnabled”: true

Then, in the workflow.js, this section needs to be added in order to let the user modify the variable and click the button to search on it.  Make sure that the buttonId matches what you set in the config file:

 this.buttonClick = function (user, buttonId) {
var activeCall = actions.dialogHelper.getActiveCall();
var callVariable1 = actions.dialogHelper.getCallVariable(activeCall, “callVariable1”);
if (buttonId == “Bing”) {
actions.browser.navigateTab(“browserGadget”, “tab_two”, “” + callVariable1, true);

And that should get you through this step.  Congratulations, you have completed this challenge!