Skip to main content

Cisco Collaboration Endpoints

@dougschaefer/cisco-collaboration-endpointsv2026.04.27.1· 3d agoMODELS
01README

Cisco RoomOS device and macro management via Webex Control Hub — device inventory, health checks, workspace management, xAPI command execution, status queries, configuration management, macro lifecycle (save, activate, deploy, fleet push), and MTR-aware operations. Vault-based credential resolution.

02Release Notes

Add curated README and LICENSE to tarball (additionalFiles), bringing extension's Swamp Club quality grade from F/B to A-/B.

03Models2
@dougschaefer/cisco-collaboration-endpoints-devicev2026.03.16.4cisco/device.ts
fn list(product?: string, connectionStatus?: string, tag?: string, type?: string)
List all devices in the Webex org. Optionally filter by product type, connection status, or tag.
ArgumentTypeDescription
product?stringFilter by product name (e.g., 'Cisco Codec Pro', 'Cisco Room Kit Pro')
connectionStatus?stringFilter by connection status: connected, disconnected, connected_with_issues
tag?stringFilter by device tag
type?stringFilter by device type: roomdesk, phone, accessory, camera
fn get(deviceId: string)
Get detailed information about a specific device by ID.
ArgumentTypeDescription
deviceIdstringWebex device ID
fn getStatus(deviceId: string, statusPaths: array)
Query xAPI status values from a device. Use specific paths (e.g., 'SystemUnit.Software.Version') rather than broad wildcards for MTR devices.
ArgumentTypeDescription
deviceIdstringWebex device ID
statusPathsarrayStatus paths to query (max 10). Examples: SystemUnit.Software.Version, SystemUnit.Uptime, Standby.State
fn enableMacros(deviceId: string)
Enable the macro runtime on a device by setting Macros.Mode=On and Macros.AutoStart=On.
ArgumentTypeDescription
deviceIdstringWebex device ID
fn healthCheck(deviceId: string)
Run a health check on a device — queries connection status, firmware version, uptime, standby state, and network address. Uses specific status paths safe for both native and MTR mode devices.
ArgumentTypeDescription
deviceIdstringWebex device ID
fn setConfiguration(deviceId: string, patches: array)
Set one or more device configurations via JSON Patch. Use the path format 'Config.Path/sources/configured/value'. On MTR devices, only configs tagged with include_for_extension='mtr' are available.
ArgumentTypeDescription
deviceIdstringWebex device ID
patchesarrayArray of configuration patches to apply
fn executeCommand(deviceId: string, command: string, commandArgs?: string, body?: string)
Execute an arbitrary xAPI command on a device via the Webex cloud API. Commands work in all device modes (native, MTR, Zoom). For macro-specific commands, prefer the @dougschaefer/cisco-collaboration-endpoints-macro model methods.
ArgumentTypeDescription
deviceIdstringWebex device ID
commandstringxAPI command name (e.g., 'Audio.Volume.Set', 'Standby.Activate', 'SystemUnit.Boot')
commandArgs?stringCommand arguments as JSON string (e.g., '{\
body?stringCommand body content (used by commands like Macros.Macro.Save)
fn updateTags(deviceId: string, tags: array)
Update tags on a device. Tags are used for organizing and filtering devices in Control Hub and can be used to target fleet operations.
ArgumentTypeDescription
deviceIdstringWebex device ID
tagsarrayComplete list of tags to set on the device (replaces existing tags)
fn listWorkspaces(displayName?: string, workspaceLocationId?: string, calling?: string)
List Webex workspaces (rooms/spaces) in the org. Workspaces represent physical locations with assigned devices, calendar integration, and calling configuration.
ArgumentTypeDescription
displayName?stringFilter by workspace display name (partial match)
workspaceLocationId?stringFilter by workspace location ID
calling?stringFilter by calling type: freeCalling, hybridCalling, webexCalling, thirdPartySipCalling
fn getWorkspace(workspaceId: string)
Get detailed information about a specific workspace by ID.
ArgumentTypeDescription
workspaceIdstringWebex workspace ID

Resources

device(infinite)— Cisco RoomOS device registered to Webex Control Hub — codecs, boards, desk devices, and room navigators
workspace(infinite)— Webex workspace (room/space) with assigned devices, calendar integration, and calling configuration
@dougschaefer/cisco-collaboration-endpoints-macrov2026.03.16.4cisco/macro.ts
fn list(deviceId: string)
List all macros on a device. Returns macro names and activation state.
ArgumentTypeDescription
deviceIdstringWebex device ID
fn get(deviceId: string, macroName: string)
Get a specific macro's source code from a device.
ArgumentTypeDescription
deviceIdstringWebex device ID
macroNamestringMacro name on the device
fn save(deviceId: string, macroName: string, content: string, transpile?: boolean)
Save (upload) a macro to a device. Overwrites any existing macro with the same name. Does not activate — call activate separately or use deploy for the full lifecycle.
ArgumentTypeDescription
deviceIdstringWebex device ID
macroNamestringMacro name (alphanumeric and underscores)
contentstringJavaScript macro source code
transpile?booleanWhether to transpile ES6+ to ES5 for the macro engine (defaults to true)
fn activate(deviceId: string, macroName: string)
Activate a macro on a device by name.
ArgumentTypeDescription
deviceIdstringWebex device ID
macroNamestringMacro name to activate
fn deactivate(deviceId: string, macroName: string)
Deactivate a macro on a device by name.
ArgumentTypeDescription
deviceIdstringWebex device ID
macroNamestringMacro name to deactivate
fn remove(deviceId: string, macroName: string)
Remove a macro from a device by name.
ArgumentTypeDescription
deviceIdstringWebex device ID
macroNamestringMacro name to remove
fn restartRuntime(deviceId: string)
Restart the macro runtime on a device. Required after saving or activating macros.
ArgumentTypeDescription
deviceIdstringWebex device ID
fn deploy(deviceId: string, macroName: string, content: string, transpile?: boolean, removeExisting?: boolean)
Full macro deployment lifecycle: ensure Macros.Mode is on, save the macro, activate it, and restart the runtime. Records each step for audit.
ArgumentTypeDescription
deviceIdstringWebex device ID
macroNamestringMacro name (alphanumeric and underscores)
contentstringJavaScript macro source code
transpile?booleanWhether to transpile ES6+ to ES5 (defaults to true)
removeExisting?booleanRemove existing macro with same name before saving (clean deploy, defaults to false)
fn deployFleet(deviceIds: array, macroName: string, content: string, transpile?: boolean, removeExisting?: boolean)
Deploy a macro to multiple devices. Runs the full deploy lifecycle on each device sequentially with error isolation — a failure on one device does not stop deployment to remaining devices.
ArgumentTypeDescription
deviceIdsarrayArray of Webex device IDs to deploy to
macroNamestringMacro name (alphanumeric and underscores)
contentstringJavaScript macro source code
transpile?booleanWhether to transpile ES6+ to ES5 (defaults to true)
removeExisting?booleanRemove existing macro before saving on each device (defaults to false)

Resources

macro(infinite)— Cisco RoomOS macro deployed to a device — source code, activation state, and deployment metadata
deployment(infinite)— Macro deployment result — step-by-step record of a push operation to one or more devices
04Previous Versions10
2026.04.13.1Apr 13, 2026

Add .meta({ sensitive: true }) to accessToken, clientSecret, refreshToken credentials

2026.04.03.1Apr 3, 2026

Fix URL path resolution in _client.ts — new URL() was dropping /v1 prefix, causing 404 on all API calls. Fix duplicate instance names in device list by using device ID instead of serial.

2026.04.02.1Apr 2, 2026

Restore local source files with pinned zod@4.3.6, post-upgrade audit

2026.03.29.1Mar 29, 2026

Pin zod to 4.3.6

2026.03.28.1Mar 28, 2026

Remove MSP-specific language from description and labels

2026.03.16.4Mar 16, 2026
2026.03.16.3Mar 16, 2026
2026.03.16.2Mar 16, 2026
2026.03.16.1Mar 16, 2026
2026.03.13.2Mar 13, 2026
05Stats
A
100 / 100
Downloads
15
Archive size
17.5 KB
  • Has README or module doc2/2earned
  • README has a code example1/1earned
  • README is substantive1/1earned
  • Most symbols documented1/1earned
  • No slow types1/1earned
  • Has description1/1earned
  • At least one platform tag (or universal)1/1earned
  • Two or more platform tags (or universal)1/1earned
  • License declared1/1earned
  • Verified public repository2/2earned
06Platforms
07Labels