cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
47070
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

Magnus Ohm
Cisco Employee
Cisco Employee

In CE9.2.1 the Intelligent Proximity Controls has been removed. Attached is an example Proximity Control Panel (In-Room Control + Macro Script) that shows what you could do to leverage the removal of these controls if they are needed.

 

In CE9.1.4 the Cisco Proximity control in the UI would not turn off the feature itself but rather just disable the service. Ultrasound is still playing out and may cause disturbance to other systems. The example has several options to disable the services one by one, the whole feature, or disable all services (like before) it also lets you adjust the ultrasound volume so if you are experiencing pairing issues it might be useful to turn up the ultrasound volume on the fly.

 

Feel free to use, modify for your own need, or simply to learn or get inspiration for other macros.

 

The attached file contains a GUI element and a Macro. Upload the GUI element to the In-Room Control editor (If you already have an In-Room Control Panel, make sure to take a backup or bake the panel into your existing panel by modifying the XML files. Upload the .js file to the Macro Editor, start the Macro and try it out!

 

Feel free to post questions or ideas here as well and maybe someone will take the challenge and create a macro for you on request!?

 

/Magnus

Magnus Ohm
Cisco Employee
Cisco Employee

In CE9.2.1 you can compose video sources, but this is only available from the xAPI! You don´t want to go into the xAPI and change the source layout manually, you want to have a GUI interface to do this easily on the fly, whenever you need.

 

I have attached an example source composition matrix (In-Room Control GUI + Macro) to show how it can be done. Feel free to modify it and create your own version suited for your own deployments.

 

TIP: This composer has a lot of different buttons for different compositions alignments but very little macro code, this is because I utilize the naming conventions of the buttons to generate the source combination. So the button name is just numbers that represents the source combo. This means I can create as many buttons (source combos) I want without generating more macro code.

 

The attachment contains a GUI element and a Macro Script. Upload the GUI element to the In-Room Control editor and push to the codec. Upload the Macro Script to the Macro Editor and start the macro to try it out. The source composer supports up to 4 sources in the main video frame, but is limited to the amount of sources you have available on your system. If you click a button that goes out of range we catch the error and print it on the screen for three seconds.

 

Try it out! :)

 

/Magnus

Magnus Ohm
Cisco Employee
Cisco Employee

This macro has a bit more functionality where we mix Spinners and Sliders. The main purpose of this In-Room Control + Macro combo is to adjust the color temperatures, contrast, brightness, etc.. on either the left or right screen.

 

Did you ever had issues with the screens having different color temperatures or brightness? I do not claim this to be a solution to such a problem but an example on how you can use the In-Room Control and Macros to adjust the values while sitting in front of the system comparing the screens. You can reset the settings to default by a simple press of a button.

 

It only works for MX700/MX800 Dual screens running CE9.2.1. This is a specialized Macro that does only this. Maybe it even can prove to be useful in a real scenario, or simply for learning or inspiration.

 

The attachement has a GUI element and a Macro element. Upload the GUI element to the In-Room Control Editor and push to the codec. Then upload the Macro to the Macro editor and start the macro. Now you can adjust he monitors color values from the Touch 10. Pretty neat :)

 

/Magnus

stmetcal
Cisco Employee
Cisco Employee

Magnus

 

Any idea if we could use the Macro Framework to have an ICON on the Touch 10 or DX screen to dial ONE specific number to create  "Kiosk Mode"

I am no coder so looking to see if this is"Do-able"

 

I don't know about an icon, but you can create a page on the Touch 10, there is example quick dial macro and associated Touch 10 interface in the Macro Editor.'s Help Guide.

Absolutely.

If you take the two files I have attached and put them on the codec you will have a one-button-to-dial functionality.

The XML file you import in the in-room control editor on the web interface on the codec and the js file you import to the macro editor - also available on the web interface - under the integration tab.

 

David

ps: yo need to rename the files from .txt to .xml and .js  as those were illegal file names for the forum here

Cool! This is exactly what I was looking for. Two questions:

 

1. Is there a way to place the "Press me to Dial" button in the center of the screen? Right now, it's to the right of the green Call button.

2. Or can I use this to replace the green Call button? I have a Video Kiosk, and want to lock down any unused buttons. Basically, the user will press a button, which will go to a hunt group in CUCM, then connect to Agents with Jabber Video on the desktop.

 

Thanks, Randy

Unfortunately You cannot remove the green call button. I am not sure if that would be possible in the future but I understand the usecase. 

 

/Magnus

I am trying to expand the one-button-to-dial macro to a One-Button-AdHoc-Conference.

So far I can get it to work with an audio only conference, but it won't add Video for the 3rd endpoint.

I am using the command sequence Dial Number1, Call Hold, Dial Number2, Call Join.

I am getting this error, so I think there's something wrong with my Call Join syntax:

 

15:46:47 AdHoc
'Unhandled promise rejection' { code: 3,
  message: 'Ambiguous command',
  data: { xpath: '/Call' } }

 

Any ideas? Please see the attached txt file.

 

Thanks, Randy

The syntax for your Join command isn't correct, in your macro you're calling "xCommand Call Join 0", the command should be either:

  • xCommand Call Join
  • xCommand Call Join CallId: CallId

Try the macro file attached, remove .TXT from the extension before uploading to the endpoint.

Thanks, I tried both xapi.command('Call','Join'); and xapi.command('Call','Join CallID:0');

I get the same results from each one. Video+audio to the first endpoint, and audio to the second.

 

Looking at the output of "xStatus Call", it is clear that the Macro is building two separate media streams. Also, the DX70 conference screen looks different, so I suspect the Macro is invoking a built in DSP bridge, not the CUCM MRGL Video bridge.

 

If I run the xCommands directly from the CLI, then "xStatus Call" shows a single media stream to the MRGL MCU, as expected. I suspect that "Join" needs to reference the actual Call-ID numbers, not just the default "Join:0".

 

These are the commands that work from the CLI:

 

  xCommand Dial Number:<number-1>
  xCommand Call Hold
  xCommand Dial Number:<number-2>
  xCommand Call Join

 

Thanks, Randy

I tested on an SX80 with Multisite enabled, I called two endpoints using the macro and it joined both calls into a single conference on the SX80.  Is Conference > Multipoint Mode is set to CUCMMediaResourceGroupList?  The commands made via the XAPI is the same as what the macro is calling, so if it works using the XAPI, it should also work via the macro.  What happens if you enter the commands, one on each line under Integration > Developer API, similar to how the macro will issue them sequentially?

It works from the Developer API section if I execute each command line separately, one at a time.

If I try to execute all 4 lines at once, it gives the same failure result.

(From the Developer API, you do have to add the "xCommand Call Hold" command.)

 

I ran "xStatus Conference Multipoint Mode" from the CLI, and it confirms it is using CUCM MRGL.

I don't think this can be configured locally, once the DX70 is registered to CallManager.

I will try upgrading to the latest CE 9.2.2

 

Don't know if it matters much, but I'm testing with an SX80 using Multisite, not registered to CUCM.  Might need to follow up with TAC and see if they can help, obviously there is a behavior difference between VCS and CUCM registered endpoints when joining calls into a multipoint conference.