This document describes how Cisco Unified Communications Manager (CUCM) Releases 9.1 and later, including 10.x, calculate their license requirements.
The purpose of this document is to describe the way CUCM performs its license calculations, show the different Database tables that are used for this as well as present a series of different scenarios that cover the most commonly seen situations.
All of the outputs and screenshots shown in this document are based on CUCM Release 9.1.1a.
All licensing for CUCM is now centralized and held on the ELM. These licenses use the Russian Doll Hierarchy, which means that each license type entitles a user to a superset of the next lower tier. Higher-tiered licenses include all of the capabilities of the lower-tiered licenses.
Licenses from the higher tier can be borrowed to the lower tier if required and if ELM has a certain set of licenses available. When a license is borrowed to a lower tier, it cannot be assigned again until it is released, such as when additional lower-tier licenses are added or the count of required licenses decreases. Each product announces the required license count to ELM and then ELM verifies this requirement against the number of available licenses in order to see if it can fulfill the request.
Different types of Unified Communications (UC) Licenses and their specifics with regards to CUCM are described in the Licensing section of the Cisco Unified Communications Manager Features and Services Guide, Release 9.1(1):
There are three different scenarios for CUCM Licensing:
License resource usage is kept in the LicensingResourceUsage CUCM Database (DB) table.
admin:run sql select * from LicensingResourceUsage
pkid fkenduser em snr tin
==================================== ==================================== == === ===
77a09a6c-ece7-4a20-b950-c2d04b361777 c44b6aa1-862a-2dda-bab3-326d8f88a51e f t 1
588ab1d8-c13d-4f51-a043-a4c6a80d0b91 a275f434-1190-56a8-be51-6ed3c08813c3 t t 0
7a119168-ef8f-4d5a-95f0-abfa25d2415d NULL f f 0
668d98c2-c73e-4cf1-a614-e718a012fc2f fc5b1b05-1531-a51c-3879-6eed9099c6e3 f t 0
copper bronze silver gold telepresence presence unknowndevice
====== ====== ====== ==== ============ ======== =============
0 0 0 0 0 f 0
0 2 0 0 0 f 0
1 1 0 0 0 f 0
0 1 0 0 0 f 0
admin:
This table is updated each time ELM (server side) contacts the application (client side) or when you click Update Usage Details under License Usage Report in CUCM.
The different device license tiers are defined in the TypeLicensedResource CUCM DB table.
admin:run sql select * from typelicensedresource
enum moniker name description
==== ============================= ============ ============
1 LICENSEDRESOURCE_TIN Tin Tin
2 LICENSEDRESOURCE_COPPER Copper Copper
3 LICENSEDRESOURCE_BRONZE Bronze Bronze
4 LICENSEDRESOURCE_SILVER Silver Silver
5 LICENSEDRESOURCE_GOLD Gold Gold
6 LICENSEDRESOURCE_TELEPRESENCE Telepresence Telepresence
7 LICENSEDRESOURCE_NOCOST Nocost Nocost
admin:
The way these tiers are mapped to the different devices is defined in this table on CUCM - TypeLicenseResourceProductMap.
admin:run sql select * from typelicensedresourceproductmap
enum tklicensedresource tkproduct
==== ================== =========
166 3 16
167 7 25
1 1 30065
29 3 30066
10 3 20
16 3 21
17 3 22
18 3 23
?
admin:
You can correlate the tkproduct found in TypeLicenseResourceProductMap table with the TypeProduct table in order to see to what those correspond with this query:
admin:run sql select * from typeproduct where enum = 'tkproduct'
For a complete overview on the LicenseResource mapped to each device, use this CUCM DB query in order to map all three tables:
admin:run sql select typeproduct.name, typelicensedresource.name from typeproduct,
typelicensedresource, typelicensedresourceproductmap where
typelicensedresource.enum = typelicensedresourceproductmap.tklicensedresource
and typelicensedresourceproductmap.tkproduct = typeproduct.enum
Here is a partial output of that command executed on CUCM Release 9.1.1a:
name name
======================================== ============
Analog Phone Tin
Cisco 6901 Tin
Cisco 6911 Copper
Cisco 6921 Copper
H.323 Client Bronze
Third-party SIP Device (Basic) Bronze
Third-party SIP Device (Advanced) Bronze
Cisco 7941 Bronze
Cisco 7945 Bronze
Cisco 7965 Bronze
Cisco 7975 Bronze
Cisco 9971 Bronze
Cisco VXC 6215 Bronze
Cisco 6945 Bronze
Cisco TelePresence EX90 Bronze
Cisco TelePresence EX60 Bronze
Cisco TelePresence Telepresence
Cisco TelePresence MX300 Telepresence
CTI Port Nocost
For the license requirement calculation, after you connect to the License Manager Client, the ELM on the application side runs this stored procedure:
admin:run sql SELECT name,value FROM TABLE (FUNCTION LicenseTotals())
(pkid,name,value,UserValue,DeviceValue)
The output of the stored procedure is sent back to ELM, which verifies the license requirements of the application and checks if they can be fulfilled (is there a need to borrow licenses from the higher tier?). After this is done, a result is sent back to the client side, which updates its DB (LicenseServer table) accordingly (compliant vs. non-compliant).
admin:run sql select * from licenseserver
pkid name priority
==================================== =========== ========
234e7714-c87a-4054-a024-c10910123842 UCS1CUCM91P 1
fkprocessnode description gracestarttime graceleftdays
==================================== =========== ============== =============
866516aa-120e-4ea0-9bd4-37e756597d1b 0 0
elmlastcontactts tklicensingstate tklicensingmode
================ ================ ===============
1369143814 2 5
lastresourceusagecalculationts elmname
============================== =====================
2013-05-16 16:41:32 UCS1CUCM91P.coluc.com
admin:
In order to decode the licensing state value, you can view the TypeLicensingState table from CUCM DB. For this particular scenario, a value of two means compliant.
admin:run sql select * from TypeLicensingState
enum moniker name description allow
provisioning
==== =============================== ================ ================ ============
1 LICENSINGSTATE_DEMO Demo Demo t
2 LICENSINGSTATE_COMPLIANT compliant Compliant t
3 LICENSINGSTATE_OVERAGE Overage Overage t
4 LICENSINGSTATE_NO_CONTACT No Contact No Contact t
5 LICENSINGSTATE_SECURITY_FAILURE Security Failure Security Failure t
6 LICENSINGSTATE_NO_PROVISIONING No Provisioning No Provisioning f
7 LICENSINGSTATE_GRACE Grace Grace t
admin:
The different licensing modes can be viewed in the TypeLicensingMode table. For CUCM, the licensing mode is always five, which means ELM-based.
admin:run sql select * from TypeLicensingMode
1 LICENSING_MODE_CAPACITY_NODES
System Capacity Licensing of Nodes in the cluster
This licensing mode is used to license SYSTEM CAPACITY
according to the nodes configured into a cluster.
2 LICENSING_MODE_UTILIZATION_DLU_BASED
System Utilization Licensing Per DLU Consumption
This licensing mode is used to license RESOURCE UTILIZATION LEVELS
within a cluster according to the devices, (phones), configured and the
associated Device License Units, (DLUs), consumed.
3 LICENSING_MODE_CAPABILITY_SW_SERVICES_AND_VERSIONS
System Capability Licensing by Software & Version
This licensing mode is used to license SYSTEM CAPABILITY
according to software and version in use on the cluster.
4 LICENSING_MODE_UTILIZATION_UCL_BASED
System Utilization Licensing Per UCL Consumption
This licensing mode is used to license RESOURCE UTILIZATION LEVELS
within a cluster according to the user types configured and their
feature and device associations. (User Connect Licensing)
5 LICENSING_MODE_ELM_BASED
System Utilization Licensing Per User Consumption
This licensing mode is used to license products in an Enterprise
and License tracking is done by the Enterprise License Manager according to
the Endusers configured and their feature and device type associations.
(Enterprise Licensing)
6 LICENSING_MODE_HCS_BASED
System Utilization Licensing for HCS deployments
This licensing mode is used to license RESOURCE UTILIZATION
LEVELS for Hosted Collaboration Systems(HCS) deployments.
(Enterprise Licensing)
7 LICENSING_MODE_HCSLE_BASED
System Utilization Licensing for HCS Large Enterpr
This licensing mode is used to license RESOURCE UTILIZATION
LEVELS for Hosted Collaboration Systems Large Enterprise (HCSLE) deployments.
(Enterprise Licensing)
The later sections of this document cover the different licensing scenarios for CUCM and show how the license calculation is affected by the changes performed, such as the addition of a new device, a new user, user features, or the assignment of a device to a user.
This example shows a scenario in which there are no phones or users added to CUCM.
License Usage Report page from CallManager (CM) Admin:
Here is the output of a Structured Query Language (SQL) query against the LicensingResourceUsage DB table:
admin:run sql select * from LicensingResourceUsage
pkid fkenduser em snr tin copper bronze silver gold telepresence presence unknowndevice
==== ========= == === === ====== ====== ====== ==== ============ ======== =============
admin:
This example shows a scenario in which you add a single 6941 phone type in a CUCM configuration.
Click Update Usage Details in order to show the License Usage Report, which deletes all entries, recalculates them, and enters new, updated entries.
Here is the output of the SQL query against the LicensingResourceUsage DB table:
admin:run sql select * from LicensingResourceUsage
pkid fkenduser em snr tin
==================================== ========= == === ===
0fd7659d-8faf-4054-8a80-a3e21b4abf4c NULL f f 0
copper bronze silver gold telepresence presence unknowndevice
====== ====== ====== ==== ============ ======== =============
0 1 0 0 0 f 0
admin:
There is a new entry inserted for an unassigned device: (fkenduser = NULL), device is bronze.
One unassigned bronze device requires one enhanced license as shown here:
admin:run sql SELECT name,value FROM TABLE( FUNCTION LicenseTotals() )
(pkid,name,value,UserValue,DeviceValue)
name value
================= ====================================
CUWL Standard 0
EnhancedPlus 0
Enhanced 1
Basic 0
Essential 0
TelePresence Room 0
TotalUsers 0
TotalDevices 1
Timestamp 2013-05-16 15:46:52
ElmLastContact 1368657008
Elm UCS1CUCM91P.coluc.com
admin:
This example shows a scenario in which you add a single user without any additional features assigned.
Click Update Usage Details in order to show The License Usage Report page:
For this scenario, there is no change since no user features were configured for this user. The DB tables show the same situation:
admin:run sql select pkid from enduser where userid = 'jbardy'
pkid
====================================
dd420dcf-7bf8-206f-d8a3-5510aafaf254
admin:
admin:run sql select * from LicensingResourceUsage where
fkenduser = 'dd420dcf-7bf8-206f-d8a3-5510aafaf254'
pkid fkenduser em snr tin
==== ========= == === ===
copper bronze silver gold telepresence presence unknowndevice
====== ====== ====== ==== ============ ======== =============
admin:
In total, there is one entry, which corresponds to the unassigned device as shown here:
admin:run sql select * from LicensingResourceUsage
pkid fkenduser em snr tin
==================================== ========= == === ===
7d489860-2856-4868-8b7f-a52697621b59 NULL f f 0
copper bronze silver gold telepresence presence unknowndevice
====== ====== ====== ==== ============ ======== =============
0 1 0 0 0 f 0
admin:
Based on the previous information, you can see that the license requirements remain the same:
admin:run sql SELECT name,value FROM TABLE( FUNCTION LicenseTotals() )
(pkid,name,value,UserValue,DeviceValue)
name value
================= ====================================
CUWL Standard 0
EnhancedPlus 0
Enhanced 1
Basic 0
Essential 0
TelePresence Room 0
TotalUsers 0
TotalDevices 1
Timestamp 2013-05-16 15:58:08
ElmLastContact 1368657008
Elm UCS1CUCM91P.coluc.com
admin:
This example shows a scenario in which you add the EM feature for a previously configured user.
Click Update Usage Details in order to show the License Usage Report:
The license requirements have not changed. Although Cisco does not license for EM, there is an entry added for this user (feature):
admin:run sql select * from LicensingResourceUsage where
fkenduser = 'dd420dcf-7bf8-206f-d8a3-5510aafaf254'
pkid fkenduser em snr tin
==================================== ==================================== == === ===
02e2222b-6cb2-4175-9129-ff7421292d58 dd420dcf-7bf8-206f-d8a3-5510aafaf254 t f 0
copper bronze silver gold telepresence presence unknowndevice
====== ====== ====== ==== ============ ======== =============
0 0 0 0 0 f 0
admin:
In total, there are two entries: one for the unassigned device and one for the user with EM enabled:
admin:run sql select * from LicensingResourceUsage
pkid fkenduser em snr tin
==================================== ==================================== == === ===
fe631c14-2889-4e14-8b89-a3c188b7d415 NULL f f 0
02e2222b-6cb2-4175-9129-ff7421292d58 dd420dcf-7bf8-206f-d8a3-5510aafaf254 t f 0
copper bronze silver gold telepresence presence unknowndevice
====== ====== ====== ==== ============ ======== =============
0 1 0 0 0 f 0
0 0 0 0 0 f 0
admin:
Again, you do not see any changes in the license requirements:
admin:run sql SELECT name,value FROM TABLE( FUNCTION LicenseTotals() )
(pkid,name,value,UserValue,DeviceValue)
name value
================= ====================================
CUWL Standard 0
EnhancedPlus 0
Enhanced 1
Basic 0
Essential 0
TelePresence Room 0
TotalUsers 0
TotalDevices 1
Timestamp 2013-05-27 11:05:49
ElmLastContact 1369607564
Elm UCS1CUCM91P.coluc.com
admin:
This example shows a scenario in which you enable IM for the user.
Click Update Usage Details in order to show the License Usage Report for CUCM Release 9.1.1a and later.
The license requirements have not changed. Although Cisco does not license for EM and IM, there is one entry for this user for both user features enabled (em and presence columns with t = true value).
admin:run sql select * from LicensingResourceUsage where
fkenduser = 'dd420dcf-7bf8-206f-d8a3-5510aafaf254'
pkid fkenduser em snr tin
==================================== ==================================== == === ===
63f29eb3-4f88-4a6d-8644-27e56caa3525 dd420dcf-7bf8-206f-d8a3-5510aafaf254 t f 0
copper bronze silver gold telepresence presence unknowndevice
====== ====== ====== ==== ============ ======== =============
0 0 0 0 0 t 0
admin:
In total, there are two entries, one for the unassigned device and one for the user with EM / IM enabled:
admin:run sql select * from LicensingResourceUsage
pkid fkenduser em snr tin
==================================== ==================================== == === ===
0e8accd0-bf1c-4f03-b394-20e95d1eec1b NULL f f 0
63f29eb3-4f88-4a6d-8644-27e56caa3525 dd420dcf-7bf8-206f-d8a3-5510aafaf254 t f 0
copper bronze silver gold telepresence presence unknowndevice
====== ====== ====== ==== ============ ======== =============
0 1 0 0 0 f 0
0 0 0 0 0 t 0
admin:
You do not see any changes in license requirements caused by this modification:
admin:run sql SELECT name,value FROM TABLE( FUNCTION LicenseTotals() )
(pkid,name,value,UserValue,DeviceValue)
name value
================= ====================================
CUWL Standard 0
EnhancedPlus 0
Enhanced 1
Basic 0
Essential 0
TelePresence Room 0
TotalUsers 0
TotalDevices 1
Timestamp 2013-05-27 11:05:49
ElmLastContact 1369607564
Elm UCS1CUCM91P.coluc.com
admin:
This example shows a scenario in which you enable Mobility for the same user and see how it will influence license calculations in CUCM.
Click Update Usage Details in order to show the License Usage Report for CUCM Release 9.1.1a and later:
The license requirements have changed as seen in the previous image, one Basic license is added. The DB tables show that there is still only one entry for this End User; however, the SNR column is now flagged as t.
admin:run sql select * from LicensingResourceUsage where
fkenduser = 'dd420dcf-7bf8-206f-d8a3-5510aafaf254'
pkid fkenduser em snr tin
==================================== ==================================== == === ===
fbb955fa-f633-4b5d-8064-f8ba67250831 dd420dcf-7bf8-206f-d8a3-5510aafaf254 t t 0
copper bronze silver gold telepresence presence unknowndevice
====== ====== ====== ==== ============ ======== =============
0 0 0 0 0 t 0
admin:
In total, there are two entries in the LicensingResourceUsage table: one for the unassigned device and one for the user:
admin:run sql select * from LicensingResourceUsage
pkid fkenduser em snr tin
==================================== ==================================== == === ===
86e2f48e-c395-4474-b039-cd842773ae93 NULL f f 0
fbb955fa-f633-4b5d-8064-f8ba67250831 dd420dcf-7bf8-206f-d8a3-5510aafaf254 t t 0
copper bronze silver gold telepresence presence unknowndevice
====== ====== ====== ==== ============ ======== =============
0 1 0 0 0 f 0
0 0 0 0 0 t 0
admin:
As already seen from the webpage, the license requirements are increased with one Basic, which corresponds to this user with the Mobility feature enabled.
admin:run sql SELECT name,value FROM TABLE( FUNCTION LicenseTotals() )
(pkid,name,value,UserValue,DeviceValue)
name value
================= ====================================
CUWL Standard 0
EnhancedPlus 0
Enhanced 1
Basic 1
Essential 0
TelePresence Room 0
TotalUsers 1
TotalDevices 1
Timestamp 2013-05-27 11:39:46
ElmLastContact 1369607564
Elm UCS1CUCM91P.coluc.com
admin:
This example shows a scenario in which you assign a previously added device to a user and see how CUCM calculates licenses.
Click Update Usage Details in order to show the License Usage Report for CUCM Release 9.1.1a and later:
The license requirements have changed from one Enhanced and one Basic to one Enhanced. The DB tables are updated accordingly. There is still one entry for this End User, but now it also has a bronze column value set to 1, which corresponds to the assigned device (1x6941).
admin:run sql select * from LicensingResourceUsage where
fkenduser = 'dd420dcf-7bf8-206f-d8a3-5510aafaf254'
pkid fkenduser em snr tin
==================================== ==================================== == === ===
95038f98-8967-4af8-aa61-1b86a1a7ba71 dd420dcf-7bf8-206f-d8a3-5510aafaf254 t t 0
copper bronze silver gold telepresence presence unknowndevice
====== ====== ====== ==== ============ ======== =============
0 1 0 0 0 t 0
admin:
You can also see that the unassigned device entry has been removed from the LicensingResourceUsage table and is not taken into account anymore when it calculates license usage.
admin:run sql select * from LicensingResourceUsage
pkid fkenduser em snr tin
==================================== ==================================== == === ===
95038f98-8967-4af8-aa61-1b86a1a7ba71 dd420dcf-7bf8-206f-d8a3-5510aafaf254 t t 0
copper bronze silver gold telepresence presence unknowndevice
====== ====== ====== ==== ============ ======== =============
0 1 0 0 0 t 0
admin:
As shown earlier from the webpage, the license requirement is changed from one Enhanced (End User) and one Basic (6941) to one Enhanced, which now covers the Mobility feature and assigned device (6941 phone).
admin:run sql SELECT name,value FROM TABLE( FUNCTION LicenseTotals() )
(pkid,name,value,UserValue,DeviceValue)
name value
================= ====================================
CUWL Standard 0
EnhancedPlus 0
Enhanced 1
Basic 0
Essential 0
TelePresence Room 0
TotalUsers 1
TotalDevices 0
Timestamp 2013-05-27 11:46:22
ElmLastContact 1369607564
Elm UCS1CUCM91P.coluc.com
admin:
This example shows a scenario in which you add a second device, a 9971 phone, to CUCM and check what changes it makes.
Click Update Usage Details in order to show the License Usage Report:
The license requirements have been updated to two Enhanced licenses. The DB tables show that a second entry has been added with the bronze column set to 1, which corresponds to one 9971 phone. You can also see that the device is not assigned to any user (fkenduser = NULL).
admin:run sql select * from LicensingResourceUsage
pkid fkenduser em snr tin
==================================== ==================================== == === ===
39442ae8-ea5a-4a42-92be-4822e7ee8c53 dd420dcf-7bf8-206f-d8a3-5510aafaf254 t t 0
6ba309b9-eb86-496b-8718-75b6f13878f1 NULL f f 0
copper bronze silver gold telepresence presence unknowndevice
====== ====== ====== ==== ============ ======== =============
0 1 0 0 0 t 0
0 1 0 0 0 f 0
admin:
The license requirement is now updated to two Enhanced (one for a user with Mobility enabled / 6941 phone assigned and one for an unassigned 9971 phone).
admin:run sql SELECT name,value FROM TABLE( FUNCTION LicenseTotals() )
(pkid,name,value,UserValue,DeviceValue)
name value
================= ====================================
CUWL Standard 0
EnhancedPlus 0
Enhanced 2
Basic 0
Essential 0
TelePresence Room 0
TotalUsers 1
TotalDevices 1
Timestamp 2013-05-27 11:59:36
ElmLastContact 1369607564
Elm UCS1CUCM91P.coluc.com
admin:
This example demonstrates how the license count changes when the 9971 phone is assigned to the previously configured user; remember that this user already has a 6941 phone assigned to him.
Click Update Usage Details in order to show the License Usage Report:
The License requirements have been updated to one Enhanced Plus. The DB tables show that there is one entry for the end user, now with bronze column value set to 2, which corresponds to the two assigned phones (one 6941 and one 9971).
admin:run sql select * from LicensingResourceUsage where
fkenduser = 'dd420dcf-7bf8-206f-d8a3-5510aafaf254'
pkid fkenduser em snr tin
==================================== ==================================== == === ===
5d759af1-5a38-4f6c-a7f9-ab818c2692e8 dd420dcf-7bf8-206f-d8a3-5510aafaf254 t t 0
copper bronze silver gold telepresence presence unknowndevice
====== ====== ====== ==== ============ ======== =============
0 2 0 0 0 t 0
admin:
You can also see that in total there is one entry in LicensingResourceUsage; the previous entry for the unassigned device (9971 phone) has been now removed.
admin:run sql select * from LicensingResourceUsage
pkid fkenduser em snr tin
==================================== ==================================== == === ===
5d759af1-5a38-4f6c-a7f9-ab818c2692e8 dd420dcf-7bf8-206f-d8a3-5510aafaf254 t t 0
copper bronze silver gold telepresence presence unknowndevice
====== ====== ====== ==== ============ ======== =============
0 2 0 0 0 t 0
admin:
The license requirements have been updated to one Enhanced Plus (Mobility enabled and two devices assigned to the user).
admin:run sql SELECT name,value FROM TABLE( FUNCTION LicenseTotals() )
(pkid,name,value,UserValue,DeviceValue)
name value
================= ====================================
CUWL Standard 0
EnhancedPlus 1
Enhanced 0
Basic 0
Essential 0
TelePresence Room 0
TotalUsers 1
TotalDevices 0
Timestamp 2013-05-27 12:04:25
ElmLastContact 1369607564
Elm UCS1CUCM91P.coluc.com
admin:
Before CUCM Release 9.1.1a when EM was enabled on the device, the Owner User ID was greyed out as shown here.
EM disabled (Owner User ID active):
EM enabled (Owner User ID greyed out):
CUCM Release 9.1.1a introduced a few changes with license usage. Cisco bug ID CSCue14471 describes the details.
CSCue14471 - Change license calculations for Extension Mobility
Modifications in CUCM to EM calculation in CUCM Release 9.1.1a and later: