cisco-risport-cli
SKILL.md
cisco-risport CLI
CLI for querying Cisco CUCM real-time device registration status via RisPort70 SOAP API.
Setup
Configure a cluster (one-time, interactive prompt for password — never pass credentials on the command line):
cisco-risport config add <name> --host <host> --username <user> --insecure
# You will be prompted securely for the password
cisco-risport config test
For Secret Server integration:
cisco-risport config add <name> --host '<ss:ID:host>' --username '<ss:ID:username>' --password '<ss:ID:password>' --insecure
Or use environment variables (set via your shell profile, a .env file, or a secrets manager — never hardcode credentials):
export CUCM_HOST=<host>
export CUCM_USERNAME=<user>
export CUCM_PASSWORD=<pass>
Commands
config — Manage cluster configurations
cisco-risport config add <name> --host <host> --username <user>
# You will be prompted securely for the password
cisco-risport config use <name>
cisco-risport config list
cisco-risport config show
cisco-risport config remove <name>
cisco-risport config test
query — Query CM device registration status
cisco-risport query # all devices
cisco-risport query --class Phone --status Registered # registered phones
cisco-risport query --class SIPTrunk # SIP trunks
cisco-risport query --select-by Name --item SEP001122334455 # specific device
cisco-risport query --select-by DirNumber --item 1001 # by directory number
cisco-risport query --class Phone --model "Cisco 8845" # by model
cisco-risport query --node cucm-pub --status UnRegistered # unregistered on specific node
cisco-risport query --paginate # auto-paginate all results
cisco-risport query --ext # use SelectCmDeviceExt for extended data
Options: --class, --status, --model, --select-by, --item, --protocol, --download-status, --node, --max, --paginate, --ext
cti — Query CTI device/line/provider status
cisco-risport cti # all CTI providers
cisco-risport cti --class Device --status Open # open CTI devices
cisco-risport cti --class Line # CTI lines
cisco-risport cti --select-by AppID --item "Cisco CTIManager" # by application
cisco-risport cti --device-name SEP001122334455 # by device name
cisco-risport cti --dir-number 1001 # by directory number
Options: --class, --status, --node, --select-by, --item, --device-name, --dir-number, --max
models — List device model ID-to-name mappings
cisco-risport models # all models
cisco-risport models --search 8845 # filter by name or ID
cisco-risport models --format json # JSON output
status-reasons — List status reason codes
cisco-risport status-reasons # all reason codes
cisco-risport status-reasons --format json
summary — Cluster health dashboard
cisco-risport summary # Phone, Gateway, SIPTrunk counts
cisco-risport summary --all-classes # all 8 device classes
cisco-risport summary --node cucm-pub # specific node only
cisco-risport summary --ext # use extended API
cisco-risport summary --format json # JSON for scripting
doctor — Configuration and connectivity health check
cisco-risport doctor # run all checks
cisco-risport doctor --insecure # with TLS skip
Checks: active cluster config, RisPort API connectivity, node discovery, config file permissions, audit trail size.
Common Workflows
Check if a phone is registered
cisco-risport query --select-by Name --item SEP001122334455 --format json
Check if a DN is active
cisco-risport query --select-by DirNumber --item 1001
SIP trunk health
cisco-risport query --class SIPTrunk --format table
Cluster health dashboard
cisco-risport summary --all-classes
Find unregistered phones
cisco-risport query --class Phone --status UnRegistered
Verify connectivity before scripting
cisco-risport doctor
Export all registered phones to CSV
cisco-risport query --class Phone --status Registered --paginate --format csv > phones.csv
Look up a status reason code
cisco-risport status-reasons --format json
Output Formats
--format table(default) — human-readable table--format json— for scripting/parsing--format toon— token-efficient for AI agents (recommended)--format csv— for spreadsheets
Global Flags
--host <host>— override CUCM hostname--username <user>— override CUCM username--password <pass>— override CUCM password--cluster <name>— use a specific named cluster--insecure— skip TLS certificate verification (required for self-signed certs)--no-audit— disable audit logging for this command--debug— enable debug logging
Weekly Installs
2
Repository
sieteunoseis/sk…buildersFirst Seen
11 days ago
Security Audits
Installed on
amp2
cline2
opencode2
cursor2
kimi-cli2
warp2