cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
12633
Views
50
Helpful
39
Replies

Uploading TelePresence macros or startup scripts via API

seanscott83
Level 1
Level 1

The idea of macros in CE 9.2 is great, and I've already configured a few test macros that add some helpful functionality for end users. My issue is over 50 of our ~150 endpoints is an SX10 and it's hard to add functionality to some devices but not all as the big sell when we migrated from Polycom to Cisco was "the same UI no matter what room you're in."

 

The idea of the ability to receive user feedback directly from the Touch 10 is something I've wished we could implement for a while. After some useful reading on this thread, it looks like you can actually use the new UI elements like text boxes, and have the remote feedback server listen for events. For example:

 

  1. Devices is registered to HTTP feedback server
  2. Device call status changes from in call to not in call and sends feedback to HTTP server
  3. HTTP server sends xCommand UserInterface Message TextInput Display"and records the feedback in a way we can parse.

I think we could do almost anything else you'd use macros for but do the automation on the webserver side since I already did this in CE 8 to automatically swap the content location during a call.

 

My issue now is trying to figure out how to automate the process of getting these onto the endpoints. To automatically register with a feedback server, you need to have a startup script, but according to the API documentation, you can only do so via the GUI, which is a pain to manually do on 150+ devices. Similarly, is there a way to upload and enable macros on the endpoints? It would be a nightmare if every time you wanted to add/remove/update a script, you had to manually log into the web GUI of every device.

 

Thoughts?

 

Thanks,

Sean

39 Replies 39

Hi Im struggeling with this same thing.
What exactly do you mean by this? Single string?

This is my xml payload:

 

<Command>
<Security>
<Certificates>
<Services>
<Add>
<body>{{cert}}</body>
<PrivateKeyPassword>strongPkPassword</PrivateKeyPassword>
</Add>
</Services>
</Certificates>
</Security>
</Command>

 

Any help much appriciated! :D

 

Can you confirm if widgets actually will report feedback to an HTTP listener?

 

I've set up the below feedback listener and don't seem to be getting anything coming through to the http server when I tap any of the UI buttons. 

 

xcommand HttpFeedback Register FeedbackSlot: 1 ServerUrl: http://mywebserver:8653 Expression: /Status/UserInterface/Extensions/Widget

I've confirmed that it does work successfully when registering other feedback like the h323 on/off as show below.

 

 

xcommand HttpFeedback Register FeedbackSlot: 1 ServerUrl: http://mywebserver:8653 Expression: /Status/H323/Mode

 

 

Hi, change the expression to start with /event/ not /status/ on the widget one. Did that help?

/Magnus

Yep, that worked. Thanks!

Hi,

 

now I've created a custom XML command, that includes the user interface customization and the macro to handle the events, based on your instructions and the upload is working fine. The panels are added and the macro is showing loaded and activated. This is the result:

<Command>
  <ExtensionsSetResult status="OK"/>
  <MacroSaveResult status="OK"/>
  <MacroActivateResult status="OK"/>
</Command>

However if I do anything on the new panel, the macro is not invoked. If I turn the macro off from the web interface and then back on without changing anything else, the panel starts working.

Am I missing something, or is this a bug?

 

Thanks

I can test the scenario. Could you send me the xml payload you are sending? (You can send me a private message).

 

I have created a one button panel and an alert message type macro for troubleshooting. See the command XML for deploying them in the attached file.

 

Thanks for the example.

 

I do see the same thing as you do and I think it may be a bug, I will check it out. In the GUI (web) when you stop and start a Macro it also triggers a Runtime restart.

 

It seem like the "Activate" command does not automatically trigger a Runtime Restart as well.

 

You can fix this by adding a runtime restart at the end of the payload:

 

--Omitted--
    </Macro>
    <Runtime>
      <Restart command='True'></Restart>
    </Runtime>
  </Macros>
--Omitted--

Right after the end of </Macro>. This will trigger the runtime to restart and the macro should become active (working active :) )

 

/Magnus

Thanks, this is working.

Hi Magnus,

 

This has been an excellent thread, so thank you for all the inputs.

I have an issue where when I upload a new panel, it deletes the existing panels. The only way I have been able to keep existing panels is by adding them to the new panel configuration. 

Is there a way to add new panels without deleting the old ones first. 

 

EG If I use this confiuration and I changed the order number to 2, It still deletes the any panel in panel position 1 or 3

 

<Extensions>
<Version>1.5</Version>

<Panel>

<PanelId>newwebexcall</PanelId>

<Type>Home</Type>

<Icon>Camera</Icon>

<Order>2</Order>

<Color>#02BBCC</Color>

<Name>WebEx2</Name>
</Panel>

Please rate all useful posts

Hi,

A TAC engineer contacted me regarding your case I gave him an example script and explained him how it works. The API is a bit limited when it comes to merging many panels at once so you can only upload a panel one by one (afaik) but it will be added as a new and not overwrite.

 

I assume you have your own way of distributing the XML to your codecs, so the script was meant as an example (a bit slow but its fully functional).

 

TMS can also be used but you need to URL encode the XML body as mentioned in a previous post.

 

/Magnus

Magnus,

 

Thank you and yes it worked beautifully with python. Python has something called multiprocessing and I can configure 200 endpoints in less than 10 minutes. I just encoded the body as suggested and it does the magic.

Please rate all useful posts

Is there a way to load macros to ALL of your codecs in some bulk way? Or do you need to go to each and every codec individually to create a desired macro? Thanks! 

Yes, you can use the command XML API of the endpoints to upload macros. Also from CE9.3 you have the option to create a backup file on one endpoint that contains the macros and use TMS to load the backup on all other units. Check the CE9 release notes (https://www.cisco.com/c/dam/en/us/td/docs/telepresence/endpoint/software/ce9/release-notes/ce-software-release-notes-ce9.pdf , pg. 17) for the exact commands and further details.

Awesome. Thanks and sorry for the delay
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: