cisco-axl
v2.1.2
Published
A library and CLI for Cisco CUCM AXL operations
Downloads
742
Maintainers
Readme
Cisco AXL Library & CLI
A JavaScript library and CLI to interact with Cisco CUCM via AXL SOAP API. Dynamically discovers all AXL operations from the WSDL schema — any operation for your specified version is available without static definitions.
Administrative XML (AXL) information can be found at: Administrative XML (AXL) Reference.
Installation
npm install cisco-axlGlobal CLI install
npm install -g cisco-axlOr run without installing:
npx cisco-axl --helpAI Agent Skills
npx skills add sieteunoseis/cisco-axlRequirements
If you are using self-signed certificates on Cisco VOS products you may need to disable TLS verification, or use the --insecure CLI flag.
Supported CUCM versions: 11.0, 11.5, 12.0, 12.5, 14.0, 15.0
Quick Start
# Configure a cluster
cisco-axl config add lab --host 10.0.0.1 --username admin --password secret --cucm-version 14.0 --insecure
# Test the connection
cisco-axl config test
# List phones
cisco-axl list Phone --search "name=SEP%"
# Get a specific phone
cisco-axl get Phone SEP001122334455
# SQL query
cisco-axl sql query "SELECT name, description FROM device WHERE name LIKE 'SEP%'"Configuration
cisco-axl config add <name> --host <host> --username <user> --password <pass> --cucm-version <ver> --insecure
cisco-axl config use <name> # switch active cluster
cisco-axl config list # list all clusters
cisco-axl config show # show active cluster (masks passwords)
cisco-axl config remove <name> # remove a cluster
cisco-axl config test # test connectivityAuth precedence: CLI flags > env vars (CUCM_HOST, CUCM_USERNAME, CUCM_PASSWORD, CUCM_VERSION) > config file.
Config stored at ~/.cisco-axl/config.json. Supports ss-cli <ss:ID:field> placeholders.
CLI Commands
| Command | Description |
|---------|-------------|
| get <type> <identifier> | Get a single item |
| list <type> | List items with search, pagination, returned tags |
| add <type> | Add an item (inline JSON, template, or bulk CSV) |
| update <type> <identifier> | Update an item |
| remove <type> <identifier> | Remove an item |
| sql query/update | Execute SQL against CUCM |
| execute <operation> | Run any raw AXL operation |
| operations | List available operations |
| describe <operation> | Show tag schema for an operation |
| doctor | Check AXL connectivity and health |
See full CLI reference for bulk CSV, command chaining, piping with --stdin, and operation discovery.
Global Flags
| Flag | Description |
|------|-------------|
| --format table\|json\|toon\|csv | Output format (default: table) |
| --insecure | Skip TLS certificate verification |
| --clean | Remove empty/null values from results |
| --no-attributes | Remove XML attributes from results |
| --read-only | Restrict to read-only operations |
| --no-audit | Disable audit logging for this command |
| --debug | Enable debug logging |
Library API
const axlService = require("cisco-axl");
const service = new axlService("10.10.20.1", "administrator", "ciscopsdt", "14.0");
// Get, list, add, update, remove
await service.getItem("Phone", "SEP001122334455");
await service.listItems("Phone", { name: "SEP%" });
await service.addItem("RoutePartition", { name: "NEW-PT", description: "New" });
// SQL
await service.executeSqlQuery("SELECT name FROM routepartition");
// Any AXL operation
const tags = await service.getOperationTags("addRoutePartition");
tags.routePartition.name = "INTERNAL-PT";
await service.executeOperation("addRoutePartition", tags);See full API documentation for all methods, error handling, batch operations, TypeScript, retry config, and logging.
Giving Back
If you found this helpful, consider:
License
MIT

