https://github.com/sieteunoseis/cisco-axl
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.
https://github.com/sieteunoseis/cisco-axl
api automation axl callmanager cisco cisco-axl cisco-cucm cli cucm javascript json nodejs provisioning skill skills soap telephony unified-communications voip xml
Last synced: 2 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/sieteunoseis/cisco-axl
- Owner: sieteunoseis
- License: mit
- Created: 2022-11-03T00:07:07.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-03-25T02:15:15.000Z (3 months ago)
- Last Synced: 2026-03-26T08:42:05.695Z (3 months ago)
- Topics: api, automation, axl, callmanager, cisco, cisco-axl, cisco-cucm, cli, cucm, javascript, json, nodejs, provisioning, skill, skills, soap, telephony, unified-communications, voip, xml
- Language: JavaScript
- Homepage:
- Size: 574 KB
- Stars: 12
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: MIT-LICENSE.txt
Awesome Lists containing this project
README
# Cisco AXL Library & CLI
[](https://www.npmjs.com/package/cisco-axl)
[](https://github.com/sieteunoseis/cisco-axl/actions/workflows/ci.yml)
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org)
[](https://skills.sh/sieteunoseis/cisco-axl)
[](https://buymeacoffee.com/automatebldrs)
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](https://developer.cisco.com/docs/axl/#!axl-developer-guide).
## Installation
```bash
npm install cisco-axl
```
### Global CLI install
```bash
npm install -g cisco-axl
```
Or run without installing:
```bash
npx cisco-axl --help
```
### AI Agent Skills
```bash
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
```bash
# 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
```bash
cisco-axl config add --host --username --password --cucm-version --insecure
cisco-axl config use # switch active cluster
cisco-axl config list # list all clusters
cisco-axl config show # show active cluster (masks passwords)
cisco-axl config remove # 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](https://github.com/sieteunoseis/ss-cli) `` placeholders.
## CLI Commands
| Command | Description |
|---------|-------------|
| `get ` | Get a single item |
| `list ` | List items with search, pagination, returned tags |
| `add ` | Add an item (inline JSON, template, or bulk CSV) |
| `update ` | Update an item |
| `remove ` | Remove an item |
| `sql query/update` | Execute SQL against CUCM |
| `execute ` | Run any raw AXL operation |
| `operations` | List available operations |
| `describe ` | Show tag schema for an operation |
| `doctor` | Check AXL connectivity and health |
See [full CLI reference](docs/cli.md) 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
```javascript
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](docs/api.md) for all methods, error handling, batch operations, TypeScript, retry config, and logging.
## Giving Back
If you found this helpful, consider:
[](https://buymeacoffee.com/automatebldrs)
## License
MIT