cisco-ucce-cli

SKILL.md

Cisco UCCE CLI

Read-only CLI for monitoring and troubleshooting Cisco Unified Contact Center Enterprise 12.6. Covers 5 API services: AW Config/Status, Finesse, CVP, Diagnostic Portal, and VVB.

Setup

# Install globally
npm install -g cisco-ucce
# Or run without installing
npx cisco-ucce --help

Configuration

# Add a cluster
cisco-ucce config add prod

# Edit config with hosts and credentials
# Config location: ~/.cisco-ucce/config.json
cisco-ucce config show

# Set active cluster
cisco-ucce config use prod

# Test connectivity
cisco-ucce config test

Config supports <ss:ID:field> placeholders for ss-cli integration (optional).

Global Flags

--format table|json|toon|csv   (default: table)
--host <host>                  (override target host)
--cluster <name>               (use specific cluster)
--insecure                     (skip TLS verification)
--no-audit                     (disable audit logging)

Common Workflows

System Health Check

# Quick health check across all services
cisco-ucce doctor

# AW system-wide status
cisco-ucce status

# Version check across all PGs/Routers
cisco-ucce diag version --host all

Agent & Queue Monitoring

# All agent states from Finesse
cisco-ucce finesse users

# Queue stats by ID (IDs = skill group IDs from AW)
cisco-ucce finesse queue 205001

# List all teams
cisco-ucce finesse teams

# Not-ready reason codes
cisco-ucce finesse reason-codes --category NOT_READY

# Find agents by team (pipe JSON to jq)
cisco-ucce agent list --format json | jq '.[] | select(.agentTeamName == "IT.CALL")'

# Count agents per team
cisco-ucce agent list --format json | jq 'group_by(.agentTeamName) | .[] | {team: .[0].agentTeamName, count: length}'

PG / Router Diagnostics

The Diagnostic Portal runs on PGs (port 7890), Routers (port 7890), AW (port 8443), CUIC (port 8443), and Finesse (port 8443). Use --host to target a specific server, or --host all for all.

# What's running on a PG?
cisco-ucce diag list-processes --host pg1b.example.com

# Service states
cisco-ucce diag list-services --host pg1b.example.com

# Active alarms
cisco-ucce diag alarms --host pg1b.example.com

# Performance counters
cisco-ucce diag perf --host pg1b.example.com

# Network connections
cisco-ucce diag netstat --host pg1b.example.com

# IP configuration
cisco-ucce diag ipconfig --host pg1b.example.com --args "/all"

# Available log files
cisco-ucce diag log-files --host pg1b.example.com

# Product version
cisco-ucce diag version --host pg1b.example.com

# Check ALL hosts at once
cisco-ucce diag alarms --host all

CVP Investigation

# CVP version
cisco-ucce cvp version

# All CVP nodes and types (CALL, MEDIA, VXML)
cisco-ucce cvp servers

# SIP/IVR/ICM config on a call server
cisco-ucce cvp properties --host cvp1a.example.com

CVP OPS (/cvp-config/) uses a dedicated API user. CVP call servers (/cvp-orm/rest/) use AW credentials.

VVB Active Calls

# Active calls on first VVB
cisco-ucce vvb active-calls

# Active calls across ALL VVBs
cisco-ucce vvb active-calls --host all

Configuration Audit & Export

# Export resources to CSV for comparison/reporting
cisco-ucce agent list --format csv > agents.csv
cisco-ucce skillgroup list --format csv > skillgroups.csv

# Full machine inventory (all servers in solution)
cisco-ucce inventory list

# Specific machine details
cisco-ucce inventory get 5000

# Precision queue routing
cisco-ucce precisionqueue list

# PG configuration with CTI addresses
cisco-ucce peripheralgateway list

# Dialed numbers
cisco-ucce dialednumber list

# Call types
cisco-ucce calltype list

Scripting & Monitoring

# Monitor queue depth every 30s
watch -n 30 'cisco-ucce finesse queue 205001 --format json | jq .callsInQueue'

# Export all config resources
for resource in agent skillgroup calltype precisionqueue attribute; do
  cisco-ucce $resource list --format csv > "${resource}.csv"
done

# JSON output for pipe-friendly scripting
cisco-ucce finesse system-info --format json

AW Config Resources

All support list and get <id> (except department which is list-only):

Command API Resource Notes
agent agent 3000+ agents, paginated
skillgroup skillgroup IDs map to Finesse queue IDs
calltype calltype
precisionqueue precisionqueue
attribute attribute
expandedcallvariable expandedcallvariable NOT callvariable
mediaroutingdomain mediaroutingdomain
bucketinterval bucketinterval
dialednumber dialednumber
peripheralgateway peripheralgateway Includes CTI addresses
department department List only, no get
inventory machineinventory Full solution inventory
agentteam agentteam May return 403 for some users

Pagination: --page N --page-size N. Without these flags, auto-paginates all records.

Diagnostic Portal Endpoints

All support --host <hostname> and --host all:

Command Endpoint Notes
diag list-processes ListProcesses
diag list-services ListServices
diag version GetProductVersion
diag license GetProductLicense
diag netstat GetNetStat
diag ipconfig GetIPConfig --args "/all"
diag perf GetPerformanceInformation --component <path>
diag perf-counter GetPerfCounterValue
diag trace-level GetTraceLevel
diag alarms GetAlarms
diag trace-components ListTraceComponents
diag trace-files ListTraceFiles <component> required, --hours N
diag log-components ListLogComponents
diag log-files ListLogFiles <component> required, --hours N
diag app-servers ListAppServers
diag config-categories ListConfigurationCategories
diag config-category GetConfigurationCategory <category> required
diag traceroute GetTraceRoute
diag ping GetPing
diag download-trace DownloadTraceFile <component> <file>, -o path
diag download-log DownloadLogFile <component> <file>, -o path

Trace & Log File Collection

# 1. Discover available trace components
cisco-ucce diag trace-components --host pg1a.example.com

# 2. List trace files for a component (last 12 hours default)
cisco-ucce diag trace-files "Peripheral Gateway 1A/opc" --host pg1a.example.com
cisco-ucce diag trace-files "CTI Server 1A/ctisvr" --hours 24

# 3. Download a trace file
cisco-ucce diag download-trace "Peripheral Gateway 1A/opc" "PG1A_opc_trace.zip" -o ./traces/

# 1. Discover available log components
cisco-ucce diag log-components --host pg1a.example.com

# 2. List log files (EventLog, Tomcat, ICMDBA, etc.)
cisco-ucce diag log-files "EventLog" --host pg1a.example.com
cisco-ucce diag log-files "Tomcat" --hours 24

# 3. Download a log file
cisco-ucce diag download-log "EventLog" "System.evtx.xml" -o ./logs/system-events.xml

Server-Side Log Locations

When RDP/SSH access is needed, these are the common file paths:

PG / Router (Windows)

Path Contents
C:\icm\<instance>\logfiles\ ICM binary trace logs (opc, pim, jgw, etc.)
C:\icm\<instance>\logfiles\dumplog\ Text-converted trace logs
C:\icm\serviceability\diagnostics\logs\ Diagnostic Framework service logs
C:\icm\serviceability\wsccli\ Unified System CLI tool and output
C:\icm\serviceability\wsccli\conf\devices.csv Multi-server collection config

Use dumplog <process> /bt HH:MM /et HH:MM /ms /o on the server to convert binary logs to text.

AW / HDS (Windows)

Path Contents
C:\icm\<instance>\logfiles\ AW/HDS service logs
C:\icm\<instance>\logfiles\dbworker\ Database replication logs
C:\icm\serviceability\diagnostics\logs\ Diagnostic Framework logs

CVP (Windows)

Path Contents
%CVP_HOME%\logs\ CVP application logs
%CVP_HOME%\logs\OAMP\ OPS Console logs
%CVP_HOME%\conf\ CVP configuration files

Finesse / CUIC / VVB (VOS Linux)

Path Contents
/var/log/active/tomcat/logs/ Finesse/CUIC web application logs
/var/log/active/platform/log/ Platform service logs
Use cisco-dime CLI for VOS log collection DIME-based log download

Cluster Config Structure

{
  "activeCluster": "prod",
  "clusters": {
    "prod": {
      "aw": {
        "hosts": ["aw-a.example.com"],
        "username": "<your-aw-user>",
        "password": "<ss:ID:password>"
      },
      "finesse": {
        "hosts": ["fin-a.example.com"],
        "username": "<your-finesse-user>",
        "password": "..."
      },
      "cvpOps": {
        "host": "cvpops.example.com",
        "port": 8111,
        "username": "<your-cvp-api-user>",
        "password": "..."
      },
      "cvpCallServers": { "hosts": ["cvp1a.example.com"], "port": 8111 },
      "diagnosticPortal": {
        "hosts": [
          { "host": "pg1a.example.com", "port": 7890 },
          { "host": "aw-a.example.com", "port": 8443 }
        ],
        "username": "<domain\\your-admin-user>",
        "password": "..."
      },
      "vvb": {
        "hosts": ["vvb1a.example.com"],
        "username": "<your-vvb-user>",
        "password": "..."
      },
      "insecure": true
    }
  }
}

Auth precedence: CLI flags > env vars (CISCO_UCCE_USERNAME/CISCO_UCCE_PASSWORD) > config file.

Weekly Installs
2
First Seen
10 days ago
Installed on
amp2
cline2
opencode2
cursor2
kimi-cli2
warp2