Cisco DX80 CE 9 Kiosk

**Update:  I has since written a much cleaner alternative to this kiosk that you can find detailed here.

If you have worked with the DX80 or DX70 in some depth you have probably seen or at least heard of the Kiosk use case.  In an organization such as a bank you can have the DX in a side office where clients can push a button to reach an expert who would not typically be available at a remote branch.  The home equity loan expert, wealth manager or business specialist for instance.  Originally the DX’s ran an Android based code with an availabe application to turn the unit into a customization video Kiosk of sorts.  The idea was cool but keeping it patched and secure was a concern for some organizations.  The Collaboration Endpoint, aka CE, code addressed this by essentially bringing the operating system from the larger telepresence endpoints down to the DX platform.  This addressed concerns but left a gap from a Kiosk perspective, until recently.

My goal was to use a DX as a Kiosk.  Initially I tried configuring a DX80 in a PLAR configuration.  Unfortunately, this is not supported on the CE code like it was on Android.   Frankly it would have been kludgy as only one destination would have been supported.

After poking through the admin interface on a system running CE 9.2.1 I noticed the “Macro Editor” under the “Integration” tab.  There was documentation and examples included within this page so getting started was easy.  The macro language is essentially java script so most anyone with a bit of web programming experience should be ready to roll.  If not, leverage the examples and change bits and pieces as you feel comfortable.  When loading an example macro a widget interface is also loaded adding an additional button to the main screen.  With the code all loaded it was experimentation time.

First, I noticed the UI change in the bottom of the main screen next to the typical call button as you can see below:

On my system, I have the default background in place.  On yours you may choose to create a custom one to help draw attention to the set of menu options and encourage users to interact with the system.  One caveate, at least for now, is that the green call button cannot be removed.  If you have concerns about abuse of the system from a calling perspective I suggest locking down calling from the call control perspective.

After tapping on the “Virtual Assistance” shortcut my bank example menu opens up as you see below.

I’ll admit it is a bit simplistic. At this time there are no real styling options, however the interface should not intimidate users.

Next, let’s take a look at the macro code behind the scenes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/**
 
 * A small In-Room controls panel with 4 quick dial numbers
 
 */
 
const xapi = require('xapi');
 
 
// These match the widget ids of the In-Room control buttons
 
const numbers = {
 
  dial_reception: username@technologyordie.com',
 
  dial_wealth: '1000',
 
  dial_lending: '2000',
 
  dial_mortgage: '3000',
 
};
 
 
function dial(number) {
 
  console.log('dial', number);
 
  xapi.command('dial', { Number: number });
 
}
 
 
function listenToGui() {
 
  xapi.event.on('UserInterface Extensions Widget Action', (event) => {
 
    if (event.Type === 'clicked') {
 
      const number = numbers[event.WidgetId];
 
      if (number) dial(number);
 
      else console.log('Unknown button pressed', event.WidgetId);
 
    }
 
  });
 
}
 
 
listenToGui();

 

I won’t explain this all in full but I will draw your attention to a few key items.  First, “xapi” is an object that monitors the xapi events.  This will include UI interactions, system status changes, etc.   Second, the “numbers” array is a list of numeric numbers or SIP URI’s.  The keys of the array match widget id’s to keep the coding concise.  The easiest way to change the behavior of this script is to change this list to suite your needs.  Finally, the “listenToGui” function ties it all together and is run continually waiting for UI interaction to enter the rest of this script.

Be sure to check out the other example scripts that are included in the CE 9.2.1 (and later) releases of code and get creative enhancing the experience on your video systems! Finally, check out other projects I have created on Git Hub!

Feel free to comment below with questions to comments.  I hope someone finds this helpful!

This entry was posted in Collaboration and tagged , , . Bookmark the permalink.

2 Responses to Cisco DX80 CE 9 Kiosk

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    This site uses Akismet to reduce spam. Learn how your comment data is processed.