|
I was looking at licensing numbers on a CUCM cluster last week and something didn't add up. More device licenses consumed than users who should have them. Not a huge gap — but enough to make me dig. So I asked Claude Code to check every phone's Owner User ID field against who actually controls the device — the controlled-device association in CUCM. A minute later it came back with 13 mismatches. 10 phones had a blank Owner User ID. A real user still had the device listed as their controlled device, but the owner field was just… empty. 3 more had their previous owners still listed — people who'd left the company. The phones had been reassigned, someone updated the controlled device list, but nobody went back and changed the Owner User ID. Here's why this matters beyond licensing. CUCM uses Owner User ID for things like Extension Mobility login behavior, phone personalization, and — depending on your setup — which calling search space gets applied. When the owner field is blank or stale, you might not notice day to day. Phones ring, calls connect, life goes on. But licensing counts silently drift, reports stop making sense, and if you're running any kind of compliance audit, you've got a gap you can't easily explain. The real problem is that this kind of drift is almost invisible. There is no downtime — it happens one phone reassignment at a time, over months or years. It's the kind of thing you'd never audit manually because who's going to open 200 phone configs and cross-reference the owner field against the device association table? That's what made this feel different. Claude Code found all 13 by running a single AXL SQL query — comparing the device owner against the controlled-device association for every phone on the cluster. Took 57 seconds. Then it offered to fix them. I tested one first before committing to the batch. Confirmed the owner field updated correctly, confirmed nothing else changed. Then let it do the rest. Finding the problem was useful. Fixing it in the same conversation — without opening a BAT file or going through devices one by one — that's the part I keep thinking about. How long has it been since you checked Owner User ID on your cluster? let me know what you find. I read every reply. P.S. — Here's the SQL query if you want to check your own cluster right now but don't have an AI agent connected. run sql select d.name as device_name, own.userid as owner_userid, eu.userid as controlling_userid from device d left join enduser own on d.fkenduser=own.pkid join enduserdevicemap m on m.fkdevice=d.pkid join enduser eu on m.fkenduser=eu.pkid where own.userid is null or not (own.userid = eu.userid) If it returns zero rows, your cluster is clean. If it doesn't — well, now you know. |