Table of Contents

UCCE

Engineering Specials

UCCE Components

Certs

Here is a cool new Cert Tool for CCE

Here are the commands for the Reporting Server.

%CVP_HOME%\jre\bin\keytool.exe -storetype JCEKS -keystore %CVP_HOME%\conf\security\.keystore -delete -alias wsm_certificate
%CVP_HOME%\jre\bin\keytool.exe -storetype JCEKS -keystore %CVP_HOME%\conf\security\.keystore -delete -alias callserver_certificate

%CVP_HOME%\jre\bin\keytool.exe -storetype JCEKS -keystore %CVP_HOME%\conf\security\.keystore -genkeypair -alias wsm_certificate -keysize 2048 -keyalg RSA -validity 3650
%CVP_HOME%\jre\bin\keytool.exe -storetype JCEKS -keystore %CVP_HOME%\conf\security\.keystore -genkeypair -alias callserver_certificate -keysize 2048 -keyalg RSA -validity 3650

%CVP_HOME%\jre\bin\keytool.exe -storetype JCEKS -keystore %CVP_HOME%\conf\security\.keystore -export -alias wsm_certificate -file %CVP_HOME%\conf\security\wsm.crt
%CVP_HOME%\jre\bin\keytool.exe -storetype JCEKS -keystore %CVP_HOME%\conf\security\.keystore -export -alias callserver_certificate -file %CVP_HOME%\conf\security\callserver.crt

Configuration

UCCE API info

UCCE 12.6 Developer Reference

For a Health / Content Switch health probe - use the following API call - as it does not require authentication
https://server/unifiedconfig/config/deployment

UCCE 12.6 Developer Guide

PCCE API Developer Guide

Example for Inventory

https://<server>/unifiedconfig/config/activedirectorydomain
https://<server>/unifiedconfig/config/deployment
https://<server>/unifiedconfig/config/deploymenttypeinfo
https://<server>/unifiedconfig/config/machineinventory
https://<server>/unifiedconfig/config/version
https://<server>/unifiedconfig/config/routingtype
https://<server>/unifiedconfig/config/registry
https://<server>/unifiedconfig/config/status

Training

UCCE LEAP (Partner Webinars)
UCCE TOI - https://communities.cisco.com/docs/DOC-70971

Linking ICM TCD Records to CUCM CDRs

TCD PeripheralCallKey = (globalCallID_callManagerId * (2 to the 24th)) +  globalCallID_callId
TCD PeripheralCallKey = (globalCallID_callManagerId * (16777216)) +  globalCallID_callId

example:
TCD PeripheralCallKey = (4 * (16777216)) +  70002)

CAD

CAD LDAP

  Version: LDAPv2
  Host: IP address of the Server
  Port: 38983
  Base DN: o=Spanlink Communications
  Security: Anonymous

Parsing a variable with a separator in ICM

This example has a “:” as the separator.

Call.PeripheralVariable8 == Variable1:Variable2"

Variable1 == left(Call.PeripheralVariable8,((find(":", Call.PeripheralVariable8))-1))
Variable2 == right(Call.PeripheralVariable8,((len(Call.PeripheralVariable8)-(find(":", Call.PeripheralVariable8)))))

Custom Functions

user1stVariable ⇒

before(":",%1%)

user2ndvariable ⇒

before(":",right(%1%,((len(%1%)-(find(":",%1%))))))

VariableMinusFirst ⇒

 right(%1%,((len(%1%)-(find(":",%1%)))))

userVariableMinusSecond ⇒

 right(right(%1%,((len(%1%)-(find(":",%1%))))),((len(right(%1%,((len(%1%)-(find(":",%1%))))))-(find(":",right(%1%,((len(%1%)-(find(":",%1%))))))))))

user3rdvariable ⇒

user2ndVariable(userVariableMinusFirst(%1%))

user4thVariable ⇒

 (userVariableMinusFirst(userVariableMinusFirst(%1%)))

Upgrade Sequence

All Event CTI Feed from ICM

Small Agent / Generic PG: Max of 5 (excluding CTIOS)
Large Agent / Generic PG: Max of 20 (excluding CTIOS)


Reference: Page 326 of UCCE 11 SRND Extract below:
All-Event clients (CTI Server)
Max of 5: For 2 vCPU VMs built from the Small Agent PG OVA. These clients are in addition to the 2 CTI OS connections. You can reduce the number of All-Event clients to support more monitor mode connections.
Max of 20: For 4 vCPU VMs built from the Large Agent PG OVA. These clients are in addition to the 2 CTI OS connections. You can reduce the number of All-Event clients to support more monitor mode connections.

UCCE Reason Codes

Reason Code Reason Description
-1 Agent reinitialized due to peripheral restart
-2 PG reset the agent - PG Failure
999 A Finesse supervisor forced an agent state change.
-3 Administrator modified the agents extension while the agent was logged in
32767 The agent's state was changed to Not Ready because the agent did not answer a call and the call was redirected to a different agent or skill group.
50002 CTIOS Failure - Agent Logged Out Incorrectly?
50003 The agent was logged out because CUCM reported the agents device as out of service
50004 The agent was logged out due to agent inactivity as configured in agent desk settings
50010 Not Ready - The agent did not receive multiple consecutive calls routed to him/her. The system makes the agent Not Ready automatically so that additional calls are not routed to the agent. By default, the number of consecutive calls missed before the agent is made Not Ready is 2.
50020 Logged Out Due to been Reskilled
50040 The mobile agent was logged out because the call failed.
50041 Not Ready - The agent's state was changed to Not Ready because the call fails when the agent's phone line rings busy.
50042 The mobile agent was logged out because the phone line disconnected when using nailed connection mode.
51004 Not Ready - This reason codes applies if an agent logs onto an extension which already has a call or if the agent is on a call when the PG restarts.

File Exchange

https://upload.cisco.com/cgi-bin/swc/fileexg/main.cgi

ICM Scripting

Concatenate - too many arguments

Concatenate can handle up to 8 arguments - as per below - any more and it will give a “too many arguments” error If you need to concatenate more - put your 8 arguments to one VariableX and another 8 to another variableY and then concatenate variables X and Y.

concatenate("a=a1","b=2","c=3","d=4","e=5","f=6","g=7","h=8")

UCCE VMware Checklist

VMware Deployment Checklist

Disable on all VMs the following:

How to check:

Scripts

disable-rss.cmd
@echo off
: Gerard O'Rourke
cls
set confirm=N
set /P confirm=Do you want to proceed and disable RSS?
 
IF "%confirm%" == "Y" goto continue
IF "%confirm%" == "y" goto continue
goto end
 
:continue
@echo on
netsh int tcp set global rss=disabled
netsh int tcp show global
pause
exit
 
:end
echo Script Aborted!
pause

Business Hours (CCE 12)

https://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/icm_enterprise/icm_enterprise_12_0_1/Program/Guide/ucce_b_1201-ucce-developer-reference/ucce_b_1201-ucce-developer-reference_chapter_011110.html#topic_AD0EBC43C8496048501068A1ED30CBC7

configuredStatus

runTimeState

Open when 1 or 3, Closed when 0 or 2

Calender Open

<configuredStatus><status>0</status></configuredStatus>
<runTimeStatus>1</runTimeStatus>

Calender Closed

<configuredStatus><status>0</status></configuredStatus>
<runTimeStatus>0</runTimeStatus>

Forced Open

<configuredStatus><status>2</status></configuredStatus>
<runTimeStatus>3</runTimeStatus>

Forced Closed

<configuredStatus><status>1</status></configuredStatus>
<runTimeStatus>2</runTimeStatus>

Forced Open Example API

<businessHour>
	<department>
		<refURL>/unifiedconfig/config/department/5000</refURL>
		<name>Department1</name>
	</department>
	<refURL>/unifiedconfig/config/businesshour/5001</refURL>
	<changeStamp>3</changeStamp>
	<configuredStatus>
		<status>2</status>
		<statusReason>
			<refURL>/unifiedconfig/config/businesshourstatusreason/5003</refURL>
			<reasonText>Unknown Reason</reasonText>
		</statusReason>
	</configuredStatus>
	<name>ForceOpenExample</name>
	<runTimeStatus>3</runTimeStatus>
	<runTimeStatusReason>Unknown Reason</runTimeStatusReason>
	<specialDaySchedules/>
	<timezone>
		<refURL>/unifiedconfig/config/timezone/v2/5038</refURL>
		<displayName>(UTC) Dublin, Edinburgh, Lisbon, London</displayName>
	</timezone>
	<type>0</type>
	<weekDaySchedules/>
</businessHour>

Forced Closed

<businessHour>
	<department>
		<refURL>/unifiedconfig/config/department/5000</refURL>
		<name>Department1</name>
	</department>
	<refURL>/unifiedconfig/config/businesshour/5002</refURL>
	<changeStamp>1</changeStamp>
	<configuredStatus>
		<status>1</status>
		<statusReason>
			<refURL>/unifiedconfig/config/businesshourstatusreason/5003</refURL>
			<reasonText>Unknown Reason</reasonText>
		</statusReason>
	</configuredStatus>
	<name>ForceClosedExample</name>
	<runTimeStatus>2</runTimeStatus>
	<runTimeStatusReason>Unknown Reason</runTimeStatusReason>
	<specialDaySchedules/>
	<timezone>
		<refURL>/unifiedconfig/config/timezone/v2/5038</refURL>
		<displayName>(UTC) Dublin, Edinburgh, Lisbon, London</displayName>
	</timezone>
	<type>0</type>
	<weekDaySchedules/>
</businessHour>

Auto Open by Hours

<businessHour>
	<refURL>/unifiedconfig/config/businesshour/5003</refURL>
	<changeStamp>1</changeStamp>
	<configuredStatus>
		<status>0</status>
	</configuredStatus>
	<name>OpenHours_247</name>
	<runTimeStatus>1</runTimeStatus>
	<runTimeStatusReason>Week Day open reason</runTimeStatusReason>
	<specialDaySchedules/>
	<timezone>
		<refURL>/unifiedconfig/config/timezone/v2/5038</refURL>
		<displayName>(UTC) Dublin, Edinburgh, Lisbon, London</displayName>
	</timezone>
	<type>0</type>
	<weekDaySchedules/>
</businessHour>

Auto Closed by Hours

<businessHour>
	<refURL>/unifiedconfig/config/businesshour/5000</refURL>
	<changeStamp>21</changeStamp>
	<configuredStatus>
		<status>0</status>
	</configuredStatus>
	<name>Hours_Sales</name>
	<runTimeStatus>0</runTimeStatus>
	<runTimeStatusReason>Week Day closed reason</runTimeStatusReason>
	<specialDaySchedules/>
	<timezone>
		<refURL>/unifiedconfig/config/timezone/v2/5038</refURL>
		<displayName>(UTC) Dublin, Edinburgh, Lisbon, London</displayName>
	</timezone>
	<type>1</type>
	<weekDaySchedules>
		<weekDaySchedule>
			<refURL>/unifiedconfig/config/businesshour/5000/weekdayschedule/5006</refURL>
			<changeStamp>1</changeStamp>
			<endTime>17:00</endTime>
			<startTime>07:00</startTime>
			<dayOfWeek>1</dayOfWeek>
		</weekDaySchedule>
		<weekDaySchedule>
			<refURL>/unifiedconfig/config/businesshour/5000/weekdayschedule/5007</refURL>
			<changeStamp>7</changeStamp>
			<endTime>17:00</endTime>
			<startTime>07:00</startTime>
			<dayOfWeek>2</dayOfWeek>
		</weekDaySchedule>
		<weekDaySchedule>
			<refURL>/unifiedconfig/config/businesshour/5000/weekdayschedule/5008</refURL>
			<changeStamp>2</changeStamp>
			<endTime>17:00</endTime>
			<startTime>07:00</startTime>
			<dayOfWeek>3</dayOfWeek>
		</weekDaySchedule>
		<weekDaySchedule>
			<refURL>/unifiedconfig/config/businesshour/5000/weekdayschedule/5009</refURL>
			<changeStamp>0</changeStamp>
			<endTime>17:00</endTime>
			<startTime>09:00</startTime>
			<dayOfWeek>4</dayOfWeek>
		</weekDaySchedule>
		<weekDaySchedule>
			<refURL>/unifiedconfig/config/businesshour/5000/weekdayschedule/5010</refURL>
			<changeStamp>0</changeStamp>
			<endTime>17:00</endTime>
			<startTime>09:00</startTime>
			<dayOfWeek>5</dayOfWeek>
		</weekDaySchedule>
	</weekDaySchedules>
</businessHour>

Expected Wait Time (EWT)

The example formula provided by the Courtesy Call back Script:

ValidValue(((SkillGroup.%1%.RouterCallsQNow+1)
*
(ValidValue(SkillGroup.%1%.AvgHandledCallsTimeTo5,20))
/max(
    SkillGroup.%1%.Ready,
    (SkillGroup.%1%.TalkingIn
         +
     SkillGroup.%1%.TalkingOut
         +
     SkillGroup.%1%.TalkingOther))
),100)

Actual Example with Skillgroup “eirSupport1”

Skill Group Example

ValidValue(((SkillGroup.eirSupportSG1.RouterCallsQNow+1)*(ValidValue(SkillGroup.eirSupportSG1.AvgHandledCallsTimeTo5,100))/max(SkillGroup.eirSupportSG1.Ready,(SkillGroup.eirSupportSG1.TalkingIn+SkillGroup.eirSupportSG1.TalkingOut+SkillGroup.eirSupportSG1.TalkingOther))),100)

===

Explanation

This returns the EWT in seconds. Effectivity the formula is: Calls in (Queue * Average Handled Time) / Number of agents that logged in and actively taking calls (i.e. exclude agents that are not ready)

The formula uses the ValidValue so if no current value available for the last 5 minutes it returns a 'default' value. These should be set the specific Average Handle Time for this specific Queue (determine this by reviewing the SG / PQ Historical report).

Here is a Precision Queue Example:

ValidValue(((PQ.eirSupport1_PQ.CallsInQ+1)*(ValidValue(PQ.eirSupport1_PQ.AvgHandledCallsTimeTo5,285))/max(PQ.eirSupport1_PQ.Ready,(PQ.eirSupport1_PQ.TalkingIn+PQ.eirSupport1_PQ.TalkingOut+PQ.eirSupport1_PQ.TalkingOther))),285)

If the formula is used prior to routing to the PQ - you should include the +1.
If the formula is used after queuing to the SG / PQ - then this should be excluded.

Example for when same Agents are in 3 different PQs

ValidValue(((PQ.Sales_PQ.CallsInQ+PQ.CustomerService_PQ.CallsInQ+PQ.Accounts.CallsInQ)*trun((ValidValue(PQ.Sales_PQ.AvgHandledCallsTimeTo5,285)+ValidValue(PQ.CustomerService_PQ.AvgHandledCallsTimeTo5,285)+ValidValue(PQ.Accounts.AvgHandledCallsTimeTo5,285))/3)/max(PQ.Sales_PQ.Ready,(PQ.Sales_PQ.TalkingIn+PQ.Sales_PQ.TalkingOther))),285)

EWT Custom Functions

Using Precision Queues

Name: EWT_1PQ

ValidValue(((PQ.%1%.CallsInQ)*trunc((ValidValue(PQ.%1%.AvgHandledCallsTimeTo5,%2%))/max(PQ.%1%.Ready,(PQ.%1%.TalkingIn+PQ.%1%.TalkingOther)))),1)

Name: EWT_CustomerService_PQ

trunc(1.0*(
userEWT_1PQ(CustomerService_PQ,497) +
userEWT_1PQ(Apples_PQ,249) +
trunc(0.7*(userEWT_1PQ(Bananas_PQ,171)))
)
)

Using Skillgroups

Name: EWT_1SkillGroup

ValidValue(((SkillGroup.%1%.RouterCallsQNow)*trunc((ValidValue(SkillGroup.%1%.AvgHandledCallsTimeTo5,%2%))/max(SkillGroup.%1%.Ready,(SkillGroup.%1%.TalkingIn+     SkillGroup.%1%.TalkingOut+SkillGroup.%1%.TalkingOther)))),%2%)

Name: EWT_Sales

userEWT_1SkillGroup(Sales_IVR,300) + 
trunc((0.50)*userEWT_1SkillGroup(Apples_IVR,386)) + 
trunc((0.80)*userEWT_1SkillGroup(Bananas_IVR,300))

API URLs

Inventory URL

https://cvp-server:8111/cvp-dp/rest/DiagnosticPortal/ListConfigurationCategories 
https://cvp-server:8111/cvp-dp/rest/DiagnosticPortal/GetConfigurationCategory?Category=CallServer%2FSIP&Filename=C%3A%5CCisco%5CCVP%5Cconf%5Csrv.xml 
https://cvp-server:8111/cvp-dp/rest/DiagnosticPortal/GetConfigurationCategory?Category=CallServer/SIP&Filename=C:%5CCisco%5CCVP%5Cconf%5Csrv.xml 
https://cvp-server:8111/cvp-dp/rest/DiagnosticPortal/GetProductVersion
https://cce-server:7890/icm-dp/rest/DiagnosticPortal/GetProductVersion
https://cce-server:7890/icm-dp/rest/DiagnosticPortal/ListServices
https://finesse:8445/finesse/api/SystemInfo

Agent API

Note - only PCCE API allows you to create Agents.
With UCCE you get a 405 - method not allowed.

List Agents

HTTP GET
URL:

https://ucce-hds-12/unifiedconfig/config/agent?time=1677491118064&startIndex=0&q=&ignoreSearchErrors=true&summary=true&resultsPerPage=2

Response

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<results>
    <pageInfo>
        <firstPage>https://ucce-hds-12/unifiedconfig/config/agent?sort=person.userName%20asc&amp;resultsPerPage=2</firstPage>
        <lastPage>https://ucce-hds-12/unifiedconfig/config/agent?sort=person.userName%20asc&amp;startIndex=4&amp;resultsPerPage=2</lastPage>
        <nextPage>https://ucce-hds-12/unifiedconfig/config/agent?sort=person.userName%20asc&amp;startIndex=2&amp;resultsPerPage=2</nextPage>
        <resultsPerPage>2</resultsPerPage>
        <sortTerm>person.userName asc</sortTerm>
        <startIndex>0</startIndex>
        <totalResults>6</totalResults>
    </pageInfo>
    <permissionInfo>
        <canCreate>true</canCreate>
        <canUpdate>true</canUpdate>
        <canDelete>true</canDelete>
        <role>Administrator</role>
        <departmentAdmin>false</departmentAdmin>
    </permissionInfo>
    <agents>
        <agent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="agentSummary">
            <department>
                <refURL>/unifiedconfig/config/department/5000</refURL>
                <name>Department1</name>
            </department>
            <refURL>/unifiedconfig/config/agent/5028</refURL>
            <changeStamp>7</changeStamp>
            <agentId>5551001</agentId>
            <agentServicesEnabled/>
            <agentStateTrace>false</agentStateTrace>
            <agentTeam>
                <refURL>/unifiedconfig/config/agentteam/5000</refURL>
                <name>Team_A</name>
                <department>
                    <refURL>/unifiedconfig/config/department/5000</refURL>
                    <name>Department1</name>
                </department>
            </agentTeam>
            <person>
                <ecePerson>true</ecePerson>
                <firstName>Alice</firstName>
                <lastName>Anderson</lastName>
                <loginEnabled>true</loginEnabled>
                <screenName>Alice</screenName>
                <ssoEnabled>false</ssoEnabled>
                <userName>[email protected]</userName>
            </person>
            <supervisor>true</supervisor>
        </agent>
        <agent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="agentSummary">
            <department>
                <refURL>/unifiedconfig/config/department/5000</refURL>
                <name>Department1</name>
            </department>
            <refURL>/unifiedconfig/config/agent/5029</refURL>
            <changeStamp>6</changeStamp>
            <agentId>5551002</agentId>
            <agentServicesEnabled/>
            <agentStateTrace>false</agentStateTrace>
            <agentTeam>
                <refURL>/unifiedconfig/config/agentteam/5000</refURL>
                <name>Team_A</name>
                <department>
                    <refURL>/unifiedconfig/config/department/5000</refURL>
                    <name>Department1</name>
                </department>
            </agentTeam>
            <person>
                <ecePerson>true</ecePerson>
                <firstName>Bob</firstName>
                <lastName>Bobster</lastName>
                <loginEnabled>true</loginEnabled>
                <screenName>Bob</screenName>
                <ssoEnabled>false</ssoEnabled>
                <userName>bob</userName>
            </person>
            <supervisor>false</supervisor>
        </agent>
    </agents>
</results>

Create an Agent

HTTP POST
URL:

https://ucce-hds-12/unifiedconfig/config/agent

BODY:

<agent>
	<agentId>999001</agentId>
	<peripheral/>
	<peripheralSet/>
	<person>
		<firstName>temp</firstName>
		<lastName>agent1</lastName>
		<userName>temp_agent1</userName>
		<loginEnabled>false</loginEnabled>
		<ssoEnabled>false</ssoEnabled>
		<password>12345</password>
		<ecePerson>false</ecePerson>
	</person>
	<description>My Desc</description>
	<department/>
	<datacenter/>
	<agentDeskSettings/>
	<agentTeam/>
	<agentAttributes/>
	<skillGroups>
		<skillGroup>
			<refURL>/unifiedconfig/config/skillgroup/5035</refURL>
		</skillGroup>
	</skillGroups>
	<defaultSkillGroup/>
	<supervisor>false</supervisor>
	<supervisorTeams/>
</agent>

CCE 12.6.2

SQL 2019 Issues

Make sure to install ODBC 13

Install Error

2023-05-21 12:13:41    [Information]    Operating System ProductName = Windows Server 2019 Standard
2023-05-21 12:13:41    [Information]    Microsoft SQL Server is installed on this system 
2023-05-21 12:13:41    [Information]    Checking Microsoft SQL Server installation
2023-05-21 12:13:41    [Information]    MSSQLSERVER service is started.
2023-05-21 12:13:41    [Information]    SQL query = select case when CHARINDEX('64', CAST(SERVERPROPERTY('Edition') AS VARCHAR(100))) >0 then 64 else 32 end
2023-05-21 12:13:41    [Information]    Return code from dbupgRunSQLSelectInt = 0
2023-05-21 12:13:41    [Error]    Installer failed due to the following possible reasons:
 1) SQL Server Edition check failed.
 2) The logged in user may not be part of SQL security logins with sysadmin role associated.
 Please correct the errors manually and re-start the ICM Installation. 
ALTER DATABASE master
SET COMPATIBILITY_LEVEL = 140;
SELECT name, compatibility_level FROM sys.databases;

Reference: Compatability: https://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/icm_enterprise/ucce_compatibility/matrix/rcct_b_12_6_solution_compatibility_matrix.html Install: https://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/pcce/pcce_12_6_2/installation/guide/pcce_b_1262_cisco_pcce_installationandupgrade_guide/pcce_b_cisco_pcce_installationandupgrade_guide_12_5_2_appendix_01010.html#task_BFD5435B077F5DD844025A17F2B572DB SQL https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level?view=sql-server-ver15

Virtualization

UPCC Test

An Example of using UPCCTEST. This should only be used with instructions from TAC.

upcctest: tran /start
upcctest: SystemAttribute /SystemAttributeID <ID> /AttributeValue 1 /cs <CHANGESTAMP> /update
upcctest: tran /commit
Verify the update by executing query on AWDB.

If the ID the field is '1234' and the existing change stamp is '9' the command would look like below:

upcctest: tran /start
upcctest: SystemAttribute /SystemAttributeID 1234 /AttributeValue 1 /cs 9 /update
upcctest: tran /commit
Verify the update by executing query on AWDB.

Another example - adding a System Reason Code - which was in Finesse but not in AW database

tran /start
ReasonCode  /ReasonCode 50006 /ReasonText Offhook /desc "The agent takes the phone off the hook to place a call. If the agent remembers to change the status, the agent-triggered reason code is displayed. If the agent does not remember to change the status, the system issues this reason code" /ReasonType 4 /IsGlobal Y
tran /commit

Securing CCE / CVP

OpenSSH

Fix for SSH Prefix Truncation Vulnerability (Terrapin)

*https://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/icm_enterprise/icm_enterprise_12_6_2/configuration/guide/ucce_b_security-guide-for-cisco-unified-icm_contact_center_enterprise_release_1262/ucce-m-cce-orchestration-windows-openssh-hardening-126.html

CVP

Fix for Java JMX RMI Accessible with Common Credentials (Unauthenticated check)

Java JRE

Java 8 needed for utilities such as RTMT - Java 8 can be download here: