Showing results for 
Search instead for 
Did you mean: 
Walkthrough Wednesdays

Touch-10 Custom Dial Buttons and Events: How to Do it


I have been creating custom buttons for my Cisco touch-10, but am unable to assign any actions to them.  

I am currently trying to create a single, quick-call button that dials a particular web service.  

My guess is that I need to create an event pressed event that fires off an "xCommand Dial" command - but I keep going in circles.  I've referenced the API guide, as well as the touch-10 documentation and quick starts to no avail.

Any assistance would be appreciated. 


In-Room Controls require a third-party control system, such as AMX or Crestron, it's this control system that will control the codec via it's API to dial the address.  It's not possible to use the In-Room Controls and control the codec directly, it doesn't work that way.

In-Room Control on Touch 10

That makes sense for environmental controls, etc. certainly.  What I'm trying to do is just create a button that does what the touch-10 does for the codec already - e.g. basically dials a bookmark that I create in a new menu in a different place on the screen.  For example - I can enter 

xCommand Dial Number: ip@ Protocol:Sip

Directly into the codec to dial the ZOOM service.  I can also make a custom button on the touch-10 screen that lives on the codec.  I can see it in the config XML.  What I want to do is tie that together so my button dials Zoom directly.

My earlier response was around In-Room Controls, which is what I thought you were trying to utilize as I saw you ask the same question in another thread related to that.

You can accomplish what you're attempting by using Facility Service, take a look at the document Facility Service Configuration on C20 TelePresence System for an overview, it will add a question mark "?" icon on the touch panel where you can select the service you've configured to make either an audio or video call to the predefined address, refer to your endpoint's admin guide for more information. Note, only FacilityService 1 is shown on the touch screen.

If Facility Service doesn't fit your needs, than the only other option is to rely on the phone book directory, which is the ideal and recommended method, or utilize In-Room Controls if you have a third-party control system in use. 


I have been looking for the same option, where i could program a button on the touch10 to call out to a particular URI.

You can create favorites for any URI's you want (found under the Contacts button), but you can't create individual buttons to act as speed dials which it sounds like is what you're asking for. See Patrick's answer - the Facility Service ? button gives you one option, but if you want anything else favorites is probably your best route. 

Scott Giese

I have been working through this myself. You may want to look into macros. Link below


I'm not sure if you resolved this or not, but I've found one and changed it a bit to serve the purpose you're looking for.  Note, I'm not a programmer, but I found this online and modified it for Zoom.


Below are two files, one is the javascript file.  You will upload this into the the macro.  Log into the codec and select Integration > Macro Editor.  Then "Import from file..." and upload the .js file.  Be sure to click the save icon next to the macro on the left side navigation under the import button.


Next go to Integration > In-Room Control and press the "Launch Editor" button.  Once in the editor, in the top right corner, press of the menu button, it looks like three horizontal lines.  Then press "Import from file" if this is your first icon, or press "Merge from file" if you already have existing icons, so that you don't replace them.  Select your .xml file and it will show up on screen.  Then press the upload button next to the menu button, which looks like a line with an up arrow below it.


Once you've done this, your one touch speed dial should be working.


Name this "zoomSpeedDial.js":


const xapi = require('xapi');


xapi.event.on('UserInterface Extensions Page Action', (event) => {
    if(event.Type == 'Opened' && event.PageId == 'speed_dial'){
         xapi.command("dial", {Number: MYSPEED_DIAL_NUMBER});

 Name this "zoomSpeedDial.xml"

    <Name>Call Zoom</Name>
          <Name>Number is being dialed</Name>




I'm looking to have a standby Icon on the Home touch panel and when I press it the system needs to go to standby mode instead of clicking the room name on the top and standby, Can you please give me the macro commands for it to work?

So you can use basically the same as the one touch speed dial that I posted above, but get rid of the "const" line, and then change the xapi command to this:


xapi.command("standby activate");

I would recommend changing the panel ID name so that it makes sense for the new command.  And then, obviously change the icon as well, but you can change that in the in-room controls page.

I attempted to create a standby button on the front page by following the latest customization guide. Created the button just fine and my macro didn't have any errors and is enabled, but nothing happens when I push the button. panel_1 is my button ID. 


I don't know anything about creating macros (obviously) so any help is appreciated.


const xapi = require('xapi');

xapi.event.on('UserInterface Extensions Panel
Clicked', (event) => {
if (event.PanelId === 'panel_1') {
xapi.command("standby activate");


The Maco script imported successfully.  However, whenever I try to import the .XML file I get the following error:

Not able to read XML. It looks like the XML you try to import is not a valid UI Extensions configuration. 

Is there something missing in the script?

Make sure when you saved the file, you actually created a .xml.  If you put it into notepad, you could have made filename.xml.txt or something like that.  Use notepad++ and just put the name of the file, and select XML as the filetype.  Then try again.

Hi @davisjaron  brilliant advise on this.  I was wondering if you're able to tell me if there is a way to program the meeting password into this scrip that you have written for the speed dial?  We are running into an issue with connecting to Zoom conferences that have passwords with special characters (ie... !#$) as the touch 10 panel doesn't support keypad special characters. So, I'm wondering if I could leverage the above script but add a meeting password and jump right into the call?

Content for Community-Ad

Spotlight Awards 2021

This widget could not be displayed.