Skip to content

Repository files navigation

Cisco AXL Library & CLI

npm version CI License: MIT Node.js Version Skills Buy Me a Coffee

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-axl

Global CLI install

npm install -g cisco-axl

Or run without installing:

npx cisco-axl --help

AI Agent Skills

npx skills add sieteunoseis/cisco-axl

Requirements

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 connectivity

Auth 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:

"Buy Me A Coffee"

License

MIT

About

Cisco CUCM AXL API library & CLI skills for provisioning phones, lines, route patterns, partitions, CSS, and more. Supports SOAP/XML, bulk operations, SQL queries, and automation.

Topics

Resources

Stars

13 stars

Watchers

3 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages