Meeting Controls for Cisco endpoints

When using a Cisco endpoint, you can enhance your Microsoft Teams or Pexip VMR meeting room experience with Meeting Controls for Cisco endpoints. To use Meeting Controls on Webex-registered Cisco endpoints with a self-hosted Pexip Infinity installation, please contact your Pexip authorized support representative for more information.

On this page:

About Meeting Controls

To enhance your Microsoft Teams or Pexip VMR meeting room experience, you can use the Cisco endpoint's touch panel to:

  • change the conference layout (only for the endpoint on which the macro is being used)(hosts only in Pexip VMRs)
  • enable/disable overlay text (the names of the participants or endpoints visible from the endpoint on which the macro is being used)(hosts only in Pexip VMRs)
  • spotlight / pin a participant*
  • view who is presenting, spotlighted, muted or has raised their hand
  • view the full participants list — sorted by raised hand time, then spotlight status, then time joined

Note that the Teams-like layout does not support meeting control options such as disabling the display of participant names or spotlighting.

Hosts in a Pexip VMR can also:

  • change the conference layout
  • enable/disable overlay text
  • mute/unmute a participant
  • mute/unmute all guests
  • lock/unlock the conference
  • disconnect all participants

* For Microsoft Teams meetings, the macro gives you the option to "pin" a participant. This focuses on that participant, but only on the endpoint on which the macro is being used. People using native Teams clients can also "spotlight" a participant, which means that the participant has focus in the video layout that is shown to all participants.

For Pexip VMRs, the meeting control of focusing on a participant is labeled "spotlight" for that endpoint only.

Mute status

By default, if you mute the Cisco endpoint locally using the touch panel, the endpoint's muted status is not visible in the Teams client.

If you mute the Cisco endpoint from the Teams client, this is synchronized with the mute status visible on the endpoint's touch panel, which becomes muted.

This default mute status behavior can be modified in the settings file during installation.

Supported endpoints and conferences

The Meeting Controls feature is supported:

  • on Cisco Room Devices MX, SX, DX and Room Kit Series, but not SX10. Firmware CE9.13 or later, or RoomOS 11 or later, is required for all.
  • on Webex-registered endpoints.
  • in Microsoft Teams conferences.
  • in Pexip VMRs.

If you are using RoomOS 11.28.1.3 or later, you must use v1.7.1 or later of the Meeting Controls macro.

Prerequisites

  • Admin user access to the Cisco endpoint for configuration.
  • The Cisco endpoint must be registered to either Pexip Infinity or a SIP registrar that is able to proxy messages.
  • The Cisco endpoint must be able to access port TCP/443 on any Transcoding Conferencing Nodes, Proxying Edge Nodes, or reverse proxies to which it connects.
  • Pexip Infinity version 34 or newer.
  • Any Transcoding Conferencing Nodes, Proxying Edge Nodes, or reverse proxies to which the Meeting Controls macro connects must have a valid TLS certificate trusted by the endpoint.
  • A Teams Connector as part of your Pexip deployment if you intend to use the Meeting Controls macro in Microsoft Teams conferences.

Downloads

The Meeting Controls feature uses a Meeting Controls macro that is installed on the Cisco endpoint. During the macro installation, you require the macro file and the settings file. These settings must be customized for your organization before being uploaded to the endpoint. Information on how to access and save these files is given below.

Macro file

Download the following file (you may need to right-click and select Save link as...):

Download link Required?
meeting-controls-macro.js This file is required in all installations but you do not need to customize it.

Settings file

You must customize some of the macro settings for your organization. Below are two macro settings examples for a:

  • Microsoft Teams gateway call

  • Pexip call with VMR support

To customize the settings:

  1. Copy the relevant settings below.
  2. Open the settings in Notepad or a tool of your choice.
  3. Make the following edits:

    Note that when using regex within javascript as we are doing here, any . characters must be escaped within the regex (i.e. \.), and the escape character itself must be escaped within javascript. For example, if the domain is pexample.com, this must be included in the regex field as pexample\\.com

    • For nodeURL and regex, edit <DOMAIN> with the relevant domain for your organization. For Pexip Infinity deployments, this will be the IP address or FQDN of a Conferencing Node or reverse proxy in your deployment.
    • For regex, you may need to customize |teams to match the IVR address used in your organization.
    • For layouts, you can include any supported layouts by using the PexRTC client API layout codes. If you include the "teams" layout for use with the Meeting Controls macro, you must also set enable overlay text and enable active speaker indication to true for the layout used as your default. See Teams-like layout for more information. For gateway rules, this is configured via local policy.
      Note: We strongly recommend that you set Teams-like layout as the default if it is included in the layout options in the macro list. Teams-like layout and Adaptive Composition layout are more resource intensive than other layouts. Switching from a layout with a lower resource usage requirement to one with a higher requirement could causes issues on fully-loaded Conferencing Nodes. If your Conferencing Nodes are under heavy usage, defaulting to a layout that already requires a higher resource reduces the risk of running out of node resources when switching a conference to a layout with lower resource requirements.
  4. Save the settings file as meeting-controls-settings.js


Microsoft Teams gateway call example

Copy to clipboard
const meeting_controls_settings = {
  "services": [
    {
    "nodeURL": "https://<DOMAIN>/api/client/v2/conferences",
    "layouts": ["1:7", "teams", "ac", "2x2", "3x3", "1:0"],
    "regex": "^({{teamsMeetingId}}|teams)@<DOMAIN>$",
    "shouldMCUMute": false,
    "panelSettings": {
    "controls": ["layout", "overlayText"],
    "roster": true
    }
    }
  ],
  "InCallButton": {
  "panelId": "panel_pex_in",
  "type": "InCall",
  "icon": "Info",
  "name": "Meeting Controls"
  },
  "LayoutButton": {
  "panelId": "layout_panel",
  "type": "Never",
  "icon": "Info",
  "name": "Change Layout"
  }
}


Pexip call with VMR support example

Copy to clipboard
const meeting_controls_settings = {
  "services": [
  {
    "nodeURL": "https://<DOMAIN>/api/client/v2/conferences",
    "layouts": ["1:0", "1:7", "ac", "4:0"],
    "regex": "^(.+)@<DOMAIN>$",
    "shouldMCUMute": false,
    "panelSettings": {
    "controls": [
          "layout",
          "overlayText",
          "lockConference",
          "muteGuests",
          "disconnectAll"
    ],
    "roster": true
    }
  }
  ],
    "InCallButton": {
    "panelId": "panel_pex_in",
    "type": "InCall",
    "icon": "Info",
    "name": "Meeting Controls"
  },
    "LayoutButton": {
    "panelId": "layout_panel",
    "type": "Never",
    "icon": "Info",
    "name": "Change Layout"
  }
}

Manual installation of Meeting Controls

The following instructions explain how to install the Meeting Controls macro and settings manually on a single endpoint. If you use Enhanced Room Management (ERM) and want to provision the macro on multiple endpoints simultaneously, proceed to ERM installation of Meeting Controls.

  1. Log into the web interface of your Cisco endpoint in your browser.
  2. Go to Macro Editor.

  3. Select Enable Macros. This prompt only appears if you have never used a macro before.
  4. In the Macro Editor, select Import from file and select the settings file (e.g. settings.js) that you edited and saved earlier.
  5. Select the Save to video system icon:

  6. Select Import from file again and select the macro file (e.g. meeting-controls-macro.js) that you downloaded earlier.
  7. Select the Save to video system icon:

  8. Toggle the macro from off to on:

  9. Refresh the web page.

With immediate effect, during Teams and Google Meet conferences the touch panel of the Cisco endpoint shows the additional control features.

Troubleshooting

General

If you need to troubleshoot the Meeting Controls macro at any point, you can download logs from the web interface in

System Maintenance > Issues and Diagnostics > Systems logs > Download logs...

ERM installation of Meeting Controls

If you use Enhanced Room Management (ERM), you can enable Meeting Controls on multiple endpoints simultaneously.

Installing Meeting Controls macro in ERM

  1. Go to Enhanced Room Management > Panels and macros.
  2. On the Room Controls tab, select the + button.

  3. Enter a title and description for the settings.
  4. Attach the settings file that you downloaded earlier and select Add.
  5. Again, select the + button.
  6. Enter a title and description for the macro.
  7. Attach the macro file that you downloaded earlier and select Add.

The Meeting Controls macro and settings are now installed in ERM.

Provisioning Meeting Controls on multiple endpoints in ERM

The following instructions explain how to provision one or more Cisco endpoints in ERM with Meeting Controls.

  1. Go to Enhanced Room Management > Systems.
  2. On the Search tab, select all room systems that you want to deploy Meeting Controls to.
  3. Select Provisioning.
  4. Select Apply macros/panels and from the Controls options select Meeting Controls macro.
  5. To enable the macro on the endpoints with immediate effect select Apply, otherwise select Schedule for the night.

Release notes

Macro version Release date Description
v1.8.0 September 2025

New features

  • New Search function on the Participants page which allows you to search for a specific participant.
  • Scrollable participants list. On the touch panel, you can now scroll up and down to view all of the meeting participants on that page. In previous versions, the participants list was only paginated, not scrollable. The page size can now be controlled by the new, optional configuration flag rosterPageSize. If you want to have 50 participants per page, then you can set it to rosterPageSize: 50. If this setting is not present or set to 0, the page size is automatically set to adjust to the endpoint's capabilities.

  • Support for the Client Mute API which distinguishes between client-side and server-side muting. There are also new user interface prompts to guide the user in choosing whether to stay muted/unmuted if the meeting Host mutes/unmutes their microphone. Pexip Infinity v36 or higher required.
  • Provide detailed information in the console when the macro's configuration is invalid — for example when it contains missed or mismatched fields. The information might look like:

    Meeting Macro Settings are invalid" "{"error":"Settings found but are invalid, check or update your settings (missed fields: InCallButton.name, services[1].shouldMCUMute) (mismatched fields: services[0].panelSettings.controls (should be <array>))"}"

Improvements

  • Hide the Controls tab when there are no controls available.
  • In previous versions, if the Meeting Controls macro was used to disable overlay text, some layouts in a gateway call could still show overlay text when the remote user was speaking. This has now been fixed.
  • New optional settings flag ignoreHttpAllowList. If this is present and set to true, the Meeting Controls macro will not use the HTTP Allow List mechanism. This may be useful if you want to adopt Meeting Controls without affecting other existing macros that have not established a HTTP Allow List.
  • New optional settings flag extendedLogging. If this is present and set to true, additional roster list information is logged. Note that there may be performance implications if this is enabled on older endpoints or third-party tools in meetings with hundreds of participants.
  • Fixes an issue that prevented the Participants page from displaying when a participant name contained one or more special characters.
  • Fixes an issue that sometimes caused Meeting Controls to become unresponsive during a call.
  • Fixes an issue that caused the mute state to become out of sync between client-side and server-side muting.
v1.7.2 5 November 2024 Fixes an issue encountered by Webex-registered endpoints where the macro could sometimes fail to find the Session-ID and the call would not connect.
v1.7.1 4 October 2024

New features

  • Support for Webex-registered endpoints. To use Meeting Controls on Webex-registered Cisco endpoints with a self-hosted Pexip Infinity installation, please contact your Pexip authorized support representative for more information.

Improvements

  • Removes the deprecated CommonJS module.
  • Adds new metadata headers to every HTTP request: Serial Number, SIP URI, and macro name/version. This helps Pexip Support to identify requests based on endpoint serial number, SIP URI, and macro name/version.
  • Improves performance to prevent unnecessary requests that occasionally generated excessive traffic, and in rare circumstances, caused the endpoint to stop working.
  • Replaces the use of emoji with a string for raised hand indication. Previously, the use of an emoji for this indication could cause the endpoint to stop working.
  • Fixes an issue where the macro attempted to add the same hostname more than once in the system list.
  • General improvements to SIP Session-ID change logging.
v1.7.0 1 February 2024
  • The Meeting Controls macro is now available to use on Cisco endpoints in Pexip VMRs.
  • The following controls are now available for hosts in Pexip VMRs:
    • Mute/unmute a participant
    • Mute/unmute all guests
    • Lock/unlock the conference
    • Disconnect all participants
  • The order of participants in the participants list is now sorted by raised hand time, then spotlight status, then time joined.
  • General improvements to the user interface.
  • In previous versions, there was an issue where an API call disconnected, it could still show as an active call in the macro logs. This has now been fixed.
v1.6.1 16 May 2023
  • Applies the resolution for Cisco bug CSCvw94531 (whereby the Cisco endpoint became unresponsive if another participant using a Teams client raised their hand) to additional endpoint versions.
  • Resolves an issue with synchronization of mute states between endpoint and server.
v1.6.0 31 March 2023
  • Adds support for RoomOS 11.
  • Resolves an issue where the Cisco endpoint became unresponsive if another participant using a Teams client raised their hand.
  • The Cisco endpoint's mute state now shows as muted if the endpoint is muted from Teams.