Steven Johnston
← Work
№ 08 · CUCM → Webex Calling · 2026

WEBEX MIGRATE

Pulls telephony config out of on-prem CUCM, live over AXL or from BAT/Unity CSVs, dry-runs every object against the target Webex org, then pushes in dependency order. Rollback deletes exactly what it created, in reverse.

Context
Personal project
Role
Sole designer / engineer
Status
Active build
SOURCE
REVIEW
WEBEX
PUSH
REPORTS
objecttypedry-run
amcleod@acme.com person ready
+44 141 555 0142 person ready
HG-Glasgow-Sales hunt group warn
HG-Support-L1 hunt group ready
CPG-Floor-2 pickup blocked
batch 03 · 142 ready · 7 blocked rollback armed ↩
Fig. 01 · stylised interface preview

The problem

CUCM-to-Webex Calling migrations live in spreadsheets: export BAT files, eyeball thousands of rows, hand-build users and hunt groups in Control Hub, and pray nothing half-applies. When something fails mid-push, 'undo' means remembering what you created.

The approach

01

Pull straight from CUCM via the AXL API (users, phones, lines, hunt pilots/lists/line groups, pickup groups) or upload BAT/Unity CSV exports, with raw rows kept for audit.

02

A mapping engine builds a Webex payload per object (people, hunt groups, call pickup) with traffic-light readiness and notes, so you review and choose exactly what migrates, mapped to target Webex locations.

03

OAuth against the target org with admin scopes; tokens AES-256-GCM encrypted and auto-refreshed. Every batch dry-runs first: person exists? number in inventory? location exists? licence available?

04

Push runs through a queue in dependency order, people before groups, idempotent on re-run, with rollback that deletes exactly what the batch created, in reverse order. Readiness, dry-run, and post-push CSV reports at every stage.

Outcome

Pipeline
5 stages
source → review → webex → push → report
Rollback
Exact reverse
deletes only what the batch created
Runtime
Serverless
Workers, D1, R2, Queues
Design note

The migration tool I wanted on every cutover weekend: dry-run everything, push in order, and an undo button that actually means it.

Built with

TypeScriptHonoReactCloudflare WorkersD1R2QueuesCUCM AXLWebex APIsVitest

More tools

01 GLADIUS AI Network Auditor 02 SHELLMATE Terminal + AI Copilot 03 CISCO API NAVIGATOR Cisco DevNet API Chat
← Back to tools
Get in touch
stevie.johnston@gmail.com
Glasgow, Scotland
UTC+0 / UTC+1