CUCM Phone Inventory Tool

This application is for producing reports that can either be used as an Inventory Tool by the Engineering finishing a CUCM install or by the CUCM Administrator running periodical Audit Reports to check for configuration consistency of the phones.

It’s main aim is to give the full phone configuration from the CUCM (Phone and Line) and the configuration on the phone itself in one line of a spreadsheet. This does include the phone MAC and serial number if the phone supports the http GET DeviceInformationX method.

It’s a free app but donations of teacakes and/or Guinness are always welcome 🙂

Update 31st Oct 2014
A big thank you to Phillip from touchbase.co.uk for giving me access to a CUCM 10 and some of his time. This enable me to update the app and add support for this ver of CUCM. Thanks again Phillip!

Prerequisites to running the Application
O/S: Windows
Requires JRE 8 and above. You can check this by running java -version in a dos prompt.
Tested on Windows 7 and Vista

Java version MS-DOS prompt

Java version MS-DOS prompt

Else got to Java Version click on Verify Java version, allow the plug-in to run and in a few seconds you should see something like this:

Java Version

Java Version

If you dont have version 7+ of Java JRE you can download it from here Java JRE

Download
Current version: NetPacket CUCM Phone Audit Tool 0_111 Last update 22nd of Jun 2015

Ver:0_111 Date 22nd of Jun 2015
Fixed bug with relative path in .wsdl files

Ver:0_110 Date 18th of Jun 2015
Rebuild to work with JRE 8+

Ver:0_109 Date 31st of Oct 2014
Add CUCM ver 10.x support

Ver:0_108 Date 28th of Aug 2014
Allow for multiple select of Device Pools

Ver:0_107 Date 9th of Aug 2013
Added optimisation for http GET over LAN, WAN and VPN connections
Update to GUI

Ver:0_106 Date 26th of Jul 2013
Notes: Added Phone Data port CDP information. Switch Hostname, Switch IP address, Switch Port and Port Speed will now be included in Detail Report

Ver:0_105 Date 2nd of Jul 2013
Notes: Base build

CUCM Prerequisites
CUCM version 9.x +
CUCM Server Node must be running “Cisco AXL Web Service” service
The user account used in the application must have “Standard AXL API Access” privileges on CUCM

Type of Reports

Data in Basic Report

Note: Very limited testing on 7940 and 7960 phones. Phones below tested with firmware 9+.

Data from CUCM about Phone details

uudi, Name, Description, Product, Model, Protocol, DevicePoolName, CallingSearchSpaceName, LocationName, MediaResourceListName, NetworkLocation, OwnerUserName, DigestUser, LoadInformation, VersionStamp, UpgradeFinishTime, ServicesUrl ,EnableExtensionMobility, LoginUserId, LoginTime and LoginDuration

IP Phone tested and Supported : ATA186, ATA187,7940, 7960, 7941, 7942, 7945, 7965, 7937, 7925, 7921, 6941, CUPC, “IP Communicator” and Jabber

Data from CUCM about Line details

Pattern, RoutePartitionName, AsciiLabel, Display, DisplayAscii, Label, CallerName, CallerNumber, DialedNumber, RedirectedNumber, MWL Policy, PartitionUsage, E164Mask, BusyTrigger, MaxNumCalls and Assign UserID

IP Phone tested and Supported : ATA186, ATA187,7940, 7960, 7941, 7942, 7945, 7965, 7937, 7925, 7921, 6941, CUPC, “IP Communicator” and Jabber

Detailed Report

Data from CUCM about Phone details

uudi, Name, Description, Product, Model, Protocol, DevicePoolName, CallingSearchSpaceName, LocationName, MediaResourceListName, NetworkLocation, OwnerUserName, DigestUser, LoadInformation, VersionStamp, UpgradeFinishTime, ServicesUrl ,EnableExtensionMobility, LoginUserId, LoginTime and LoginDuration

IP Phone tested and Supported : ATA186, ATA187, 7940, 7960,7941, 7942, 7945, 7965, 7937, 7925, 7921, 6941, CUPC, “IP Communicator” and Jabber

Data from CUCM about Line details

pUudi, Pattern, RoutePartitionName, AsciiLabel, Display, DisplayAscii, Label, CallerName, CallerNumber, DialedNumber, RedirectedNumber, MwlPolicy, PartitionUsage,E164Mask, BusyTrigger, MaxNumCalls, AssUserID, Description, AlertingName, AsciiAlertingName, VoiceMailProfileName, ShareLineAppearanceCssName, PresenceGroupName, UserHoldMohAudioSourceId, NetworkHoldMohAudioSourceId, CallForwardAllVM,CallForwardAllDest, CallForwardAllCss, CallForwardBusyIntVM, CallForwardBusyIntDest, CallForwardBusyIntCss, CallForwardBusyVM, CallForwardBusyDest, CallForwardBusyCss, CallForwardNoAnswerIntVM, CallForwardNoAnswerIntDest, CallForwardNoAnswerIntCss, CallForwardNoAnswerVM, CallForwardNoAnswerDest, CallForwardNoAnswerCss, CallForwardNoCoverageIntVM, CallForwardNoCoverageIntDest, CallForwardNoCoverageIntCss, CallForwardNoCoverageVM, CallForwardNoCoverageDest, CallForwardNoCoverageCss, CallForwardOnFailureVM, CallForwardOnFailureDest, CallForwardOnFailureCss, CallForwardNotRegisteredIntVM, CallForwardNotRegisteredIntDest, CallForwardNotRegisteredIntCss, CallForwardNotRegisteredVM, CallForwardNotRegisteredDest, CallForwardNotRegisteredCss and CallPickupGroupName

IP Phone tested and Supported : ATA186, ATA187,7940, 7960, 7941, 7942, 7945, 7965, 7937, 7925, 7921, 6941, CUPC, “IP Communicator” and Jabber

Data from Phone about Device Config details

MACAddress, HostName, PhoneDN, AppLoadID, BootLoadID, VersionID, HardwareRevision, SerialNumber, MessageWaiting, Time, Timezone and Date

IP Phone tested and Supported : 7940, 7960, 7937, 7941, 7942, 7945, 7965, 6941, 7925, 7921 and “IP Communicator”
IP Phone tested and Not Supported: ATA186, ATA187, CUPC and Jabber

Data from Phone about Data Port CDP details

CDPNeighborDeviceId, CDPNeighborIP, CDPNeighborPort and PortSpeed

IP Phone tested and Supported : 7940, 7960, 7941, 7942, 7945, 7965, 6941 and 7937
IP Phone tested and Not Supported: ATA186, ATA187, 7925, 7921, CUPC, “IP Communicator” and Jabber

Data from Phone about Phone Network details

DHCPServer, BOOTPServer, MACAddress, HostName, IPAddress, SubNetMask, TFTPServer1, DefaultRouter1, DefaultRouter2, DefaultRouter3, DefaultRouter4, DefaultRouter5, VLANId, AdminVLANId, CallManager1, CallManager2, CallManager3, CallManager4, CallManager5, InformationURL, DirectoriesURL, MessagesURL, ServicesURL, DHCPEnabled, DHCPAddressReleased, AltTFTP, TFTPServer2, ForwardingDelay, IdleURL, IdleURLTime, ProxyServerURL, AuthenticationURL, SWPortCfg, PCPortCfg, UserLocale, NetworkLocale, HeadsetEnable, UserLocaleVersion, NetworkLocaleVersion, PCPortDisable, SpeakerEnable, GARP, VideoCapability, VoiceVlanAccess, AutoSelectLine, DscpForCallControl, DscpForConfiguration, DscpForServices, SecurityMode, WebAccess, SpanPcPort, PCVlan, CDPPCPort, CDPSWPort, LLDPSWPort, LLDPPCPort, lldpPowerPriority, lldpAssetId, portAutoLinkSync, swPortRemoteConfig, pcPortRemoteConfig, IPAddressingMode, IPPreferenceMode, AutoIPConfig, IPv6LogServer, IPv6CAPFServer, IPv6DHCPEnabled, IPv6HostIPAddress, IPv6PrefixLength, IPv6DefaultGate,way1, IPv6DNSServer1, IPv6DNSServer2, IPv6DHCPAddressReleased, IPv6AlternateTFTP, IPv6TFTPAddress1, IPv6TFTPAddress2, SSHAccess, EnergywiseDomain and EnergywisePowerLevel

IP Phone tested and Supported : 7940, 7960, 7941, 7942, 7945, 7965, 6941 and 7937
IP Phone tested and Not Supported: ATA186, ATA187, 7925, 7921, CUPC, “IP Communicator” and Jabber

How to use the application

Step 1
1. Enter the IP address of the Node in cluster running the AXL service
2. Enter the account details of the user account on CUCM that has the “AXL group privileges”
3. Click on the “Connect” button. If successful a progress bar will appear while the application downloads the Device Pool Details
4. When the download of the Device Pools is done click on the “Device Pool” tab

Step 1 Screenshot

Step 1 Screenshot

Step 2
1. Select a device pool
2. Ensure there are some phones in the device pool
3. Select the type of Report
4. Applicable only for Detail Reports. Set how long the application will wait for IP Phone to respond to HTTP requests.
5. If you don’t want the report to be saved in the directory the application is running click on “Location” and select the folder to save the reports in.
6. When ready click on the “Generate” button to start the creation of the report.
7. A progress bar will appear providing information on the progress generating the report.

Step2

Step2

Application Architecture
•The application is built on the Java Development Kit (JDK) 7
•The application and CUCM communicate using Web Service Definition Language 2.0 (WSDL) with SOAP Requests Service Definitions (Doc/Literal)
•The application uses https to communicate with CUCM and as CUCM uses a self sign certificate to get round this while the application is running it suppresses Java’s SSL Certificate validation. The communication between the application and CUCM is secure but this allows the possibility of man-in-the-middle attacks to take place between the application and CUCM when communication is initiated.
•All operations on the CUCM DB are READ only. No DB changes are made by the application.
•CUCM 9 dynamically throttles AXL write request. If there are are more then 1500 change request waiting it stops processing AXL write request. This dose not effect the application as there are no write requests but even so every 500 read request the application will pause for 30 seconds. You can check the status of throttling on a node by the following 2 performance counts using RTMT tool:

•ThrottleCount—Determines number of times Administrative AXL throttling has been engaged.
•ThrottleState—Determines the state of AXL throttling. That is, whether AXL throttling is currently active (throttling is engaged).

Use Case Stats
• Device Pool with 400 phones. Application and IP Phones on same LAN.
• Basic report: 2 min 20 sec
• Detail Report: CUCM 6 min 50 sec and IP Phone 4 min
• CUCM CPU Resource: +20-30% increase during running of report. This dose not increase as the phone count increases within a device pool. CPU dose not go over 60%
• CUCM RAM/MEM Resource: No noticeable increase

CUCM Resources for Basic Report

CUCM Resources Basic Report

CUCM Resources Basic Report

 

 

 

 

CUCM Resources for Detail Report [Start]

CUCM Resources Detail Report

CM Resources Detail Report

 

 

 

CUCM Resources for Detail Report [End]

CUCM Resources Detail Report

CUCM Resources Detail Report

 

 

 

• Device Pool with 900 phones. Application and IP Phones over the WAN.
• Basic report: 7 min 40 sec
• Detail Report: CUCM 10 min 10 sec and IP Phone 13 min 30 sec
• CUCM CPU Resource: +20-30% increase during running of report. This dose not increase as the phone count increases within a device pool. CPU dose not go over 60%
• CUCM RAM/MEM Resource: No noticeable increase

CUCM Resources for Detail Report [Start]

CUCM Resources for Detail Report [Start]

CUCM Resources for Detail Report [Start]

CUCM Resources for Detail Report [End]

CUCM Resources for Detail Report [End]

CUCM Resources for Detail Report [End]

Tags: , , ,

About Alexis Katsavras

Working as Freelance Cisco Unified Communications Consultant in the UK. www.NetPacket.co.uk