cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
42092
Views
160
Helpful
100
Replies

CE9.2.1 Macro Framework discussions

Magnus Ohm
Cisco Employee
Cisco Employee

The new Macro Framework that came with CE9.2.1 allows you to create your own small "features" that runs natively on the codec. You can also create a user interface for your features by combining the In-Room Control feature with the Macro Framework!

 

Please share your ideas, questions, code and anything else related to the newly released Macro Framework. Happy coding!

 

PS: The Macro Framework is currently not supported on the SX10 (N)

 

Please visit the official DEVNET page for ROOM DEVICES. 

https://developer.cisco.com/site/roomdevices/

100 Replies 100

Yuki Iwagishi
Cisco Employee
Cisco Employee

When customers asked us to disable "SpeakerTrack" as default, you can do it by xcommand.

 

xcommand Cameras SpeakerTrack Deactivate 

Using this command, I created the sample macro to keep speakertrack disabled unless a user makes it enable.

 

 

const xapi = require('xapi');

xapi.command('Cameras SpeakerTrack Deactivate');

function listenToCalls() {
  xapi.event.on('CallDisconnect', () => {
    xapi.command('Cameras SpeakerTrack Deactivate');
  });
}

listenToCalls();

 

 

dbakhter1
Level 1
Level 1

Marcos become unresponsive and crash after upgrading SX20's to 9.5.x. SX80's and SKP dont have this issue. 

Anyone else is having similar problems with SX20? BTW, No issues were reported on codecs running 9.4.1.

Thanks in advance!

We ran into a problem with 9.5.0 where text entry dialog boxes were not popping up, that was fixed in 9.5.1. But that was across multiple models of codec.



Have you been able to narrow down the issue to ONLY SX20's? Do you know the specific action or function call that causes the macro to fail?



Thank you!


Yuki Iwagishi
Cisco Employee
Cisco Employee

brad657
Level 1
Level 1

Is there a way to setup a macro to swap two monitors to two different roles through a GUI toggle? We have setup the dual screen presentation toggle (the one from the examples), and a hide presentation toggle, but I can't figure out how to write a code that would change both connectors in one toggle.

 

Right now while presenting a listener macro changes connector 1 to second (presentation) and keeps connector 2 at first (video feed) so a toggle that a user could switch 1 to first and 2 to second would be the ideal situation.

 

If anyone has any ideas it would be greatly appreciated.

 

Thanks,

 

Brad

Hi,

You can simply add the second configuration entry when the swap occurs. Can you share the macro you are using right now, it will be easier to tell you where you should put the new code.

 

/Magnus

Thanks for the reply Magnus. I was trying to use the code we had setup for dual screen presentations just with an extra command to change the role of connector 1. Here is the code:

 

const xapi = require('xapi');

const ToggleDual = 'dual_presentation';

function setDualPresentation(on) {
const value = on ? 'PresentationOnly' : 'First';
xapi.config.set('Video Output Connector 2 MonitorRole', value);
}

function syncGui() {
xapi.config.get('Video Output Connector 2 MonitorRole').then(role => {
const toggle = role === 'PresentationOnly' ? 'on' : 'off';
xapi.command('UserInterface Extensions Widget SetValue', {
WidgetId: ToggleDual,
Value: toggle,
});
});
}

function listenToGui() {
xapi.event.on('UserInterface Extensions Widget Action', (event) => {
if (event.WidgetId !== ToggleDual) return;
const on = event.Value === 'on';
setDualPresentation(on);
});
xapi.status.on('Video Output Connector', syncGui);
}

syncGui();
listenToGui();

According to your example it will change the monitor role of connector 2 to either PresentationOnly or First, if the UI setting is enabled, it will be Presentation Only which will display the presentation on both screens. 

 

function setDualPresentation(on) {
xapi.config.set('Video Output Connector 2 MonitorRole', (on ? 'PresentationOnly' : 'First'));
xapi.config.set('Video Output Connector 1 MonitorRole', (on ? 'Second' : 'First'));
}

The above will change both the values depending on the state of "on". If on is true then it will change the connector 2 to presentation only and the first monitor role to "Second", otherwise both to First (which will give the same video feed on both screens instead of just one). I tried to make out what exactly you wanted to do but I am not sure if this covers it. You can swap the values around as well but then you will just swap the content screen and the video screen. Say you for example are showing video on the first connector and content on the second, you will then show video on the second and presentation on the first.

 

Let me know if this covers it or if you need to elaborate on the scenario you want to achieve.

 

/Magnus

 

Thanks Magnus, this worked perfectly! I just had to swap the connector one role but other than that it worked like a charm. This will make one of our users very happy.

 

Here is the full code in case anyone else comes across this thread:

 

const xapi = require('xapi');

const ToggleDual = 'swap_monitor';

function setDualPresentation(on) {
xapi.config.set('Video Output Connector 2 MonitorRole', (on ? 'PresentationOnly' : 'First'));
xapi.config.set('Video Output Connector 1 MonitorRole', (on ? 'First' : 'Second'));
}

function syncGui() {
xapi.config.get('Video Output Connector 2 MonitorRole').then(role => {
const toggle = role === 'PresentationOnly' ? 'on' : 'off';
xapi.command('UserInterface Extensions Widget SetValue', {
WidgetId: ToggleDual,
Value: toggle,
});
});
}

function listenToGui() {
xapi.event.on('UserInterface Extensions Widget Action', (event) => {
if (event.WidgetId !== ToggleDual) return;
const on = event.Value === 'on';
setDualPresentation(on);
});
xapi.status.on('Video Output Connector', syncGui);
}

syncGui();
listenToGui();

 

I have the following scenario : 

- user with webex account

- MX800 registered on Webex Cloud

- user schedules a meeting through user account web interface and send an email to the participants ( H.323, SIP devices, SfB users, Webex users )

 

Is it possible to add a "join to meeting" button on MX800 touch interface in order to join the scheduled meeting ?

There is no infrastructure ( TMS, CUCM,TMSPE,etc ), just the EP registered to cloud.

 

The issue is how to get the scheduled meeting number ( or URI ) to define it on call procedure related to this button.

Thank you for any helpful comments.

We do have a booking API that accept an XML doc with the meeting details including the meeting number. TMS uses this API, but its not documented.

I recommend looking at the following repo (created by Nick Mueller). That might help you get started:

https://github.com/acaeti/OBTP-emulator

/Magnus
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: