This blog covers how to create a UCCE environment hosted on the AWS free tier and is broken down into 3 different stages shown below. I am not building this with a production hat on rather a proof of concept hat on , so the configuration here is not best practice but will get you to Proof of concept quickly.
- staging of ICM v 11.0 on EC2 instances in a simplexed architecture within a single availability zone .
- staging of ICM v11.0 on EC2 instances with duplexed architecture within a single availability zone
- staging of ICM v11.0 on EC2 instances with duplexed architecture using two different availability zones
This blog covers the 1st stage which is an ICM v 11 core built as a simplexed progger.
The software platform to be virtualized is an AD integrated windows 2012 R2 / SQL 2014 network (64 bit)
Windows 2012 R2 AD 101
We are going to use the Amazon free tier to create a primary domain controller / EC2 instance To do this boot the Win 2012 R2 AMI native and connect to it via RDP. Then promote the server to a PDC via the server manager . 2012 Have wrapped it into the server manager page , i built this a few weeks ago so i dont have any slides , it is simple though and pretty much vanilla .The domain i created was corp.ucce. Then created an account that can be used to log the UCCE server into corp.ucce prior to staging of the ICM software .(set this password to do not expire)
AWS configuration for UCCE member Server
log into your EC2 and launch the 2012 R2 AMI , and accept all the defaults for now, you should end up with an EBS based instance
The root device type really is a statement about the storage of the root device , in the case of ebs this is a Amazon volume taken from an Amazon snapshot .
Below is the other type of storage the “instance” backed store , see its ephemeral that means that after you have turned the instance off , your data disappears
EBS backed storage uses physical volumes which means that your data will persists, even if you cycle your instance , which suits us on UCCE
The virtualization type hvm , refers to the type of virtualization used Amazon use either PV para virtualization or hvm which is hardware virtual machine the HVM comes with everything you need to run , where with PV you have to mess round with Grub to load your image
Increasing storage of ec2 instance work-around
We have to change the size of the disk from 30GB to at least 60 GB , since 30 GB drive wont be able to support the Cisco ICM v11.0 software and the MS SQL 2014 environment. You cant do this at the provision storage page of the instance , when you first boot the AMI since it invalidates your free tier and it wont spin, but you can use the following work around to get yourself a bigger disk on the free tier via the elastic Block storage application .
Elastic block storage modify volume
in the elastic block storage console select the volume for the instance you just created and select action , and then modify this will then spawn the box below
then change to 60 GB disk and select modify this should then spawn the following
what a nice message from the Amazon engineers , so you will have to log into the instance after and then use disk tools to grab the extra space , if you monitor elastic block storage you will see the volume optimizing. We need to let this process complete before rebooting the instance and then reformatting the drive
Increasing volume on 2012 R2 Host (UCCE member server)
Log into your instance using the public IPV4 address of the instance you just created , you will use the root Administrator account for this (dont forget to put your rule into the security group for RDP access )
The head for the computer management snap in and select Disk management you should see the same GUI as shown below;
So you can see that we got the extra 30 GB via elastic block storage , even with the free tier restriction 😉 then right click on the C drive and select to extend the volume this should then spawn the confirmation below
Windows 2012 R2 DNS configuration for UCCE
so while we have an RDP session open to our EC2 UCCE server we may as well promote this into the AD domain we created earlier . Currently this server sits in an work group.To get the UCCE server to pick up its domain controller , the easiest way is to point the DNS of the server to the private IP address of the PDC. After this Pinging corp.ucce should resolve the private IP address of the PDC.
the change i made was here
Promoting UCCE server to corp.ucce Domain
Using the windows 2012 server manager on the UCCE member server select the work group hyperlink and then promote to the domain corp.ucce
If the DNS resolves this should pick up the private IP address of the domain controller , you should then ask to be authenticated use the account details you created in the AD 101 section and you should be able to add the domain after a reboot .
RDP to UCCE / EC2 @ corp.ucce
Use the credentials from AD 101 section when you need to log into the UCCE member server and of course use the public IPV4 address for the RDP session , or else your domain manager software (part of UCCE) will not find the corp.ucce domain.
Then the server manager should say your a member of corp.ucce
Exectute ICM software via S3
i used an S3 storage to store all the software i would need for the build , in this way i could browse the software i would need from the member server , and take advantage of the 1.4 mega bits per second that you tend to get within an availability zone. Also the other cool thing about windows 2012 is that it allows you to mount direct from the .ISO
so run the ICM base software first by running setup.exe in the folder highlighted. The setup should complete without incident and produce the GUI below
reboot the instance as suggested .
Running the UCCE Domain controller Applet
After the reboot connect to the EC2 instance via RDP. On the desktop now there should be a folder called , unified CCE tools , from this folder run the domain manager , this will use the PDC to bring down the OU structure of the domain to the nUCCE server
Staging the SQL server on nUCCE / ec2
Browse to the bucket where your SQL 2014 ISO is stored on S3 from nUCCE/EC2 instance and mount the ISO , then run the setup .exe and you should see GUI below
dont worry about the planning link for now but select the installation link and select the New SQL Server link, we are also going to use the evaluation version of SQL , which will give us 180 days worth, this can then be extended for another 180 , pretty much accept all defaults until;we get to the feature selection.
select the options shown , though for the build to complete we need to add the .NET framework 3.5 service pack 1 is required , this can be activated on the member server as a role, without doing this you will hit the issue below
Adding .NET role to nUCCE / ec2 via 2012 role manager
using the server manager app , underneath the manage key , then select the .net Microsoft framework
then after selecting next the install should progress as shown below
close the application after the the .NET feature has been installed. Then you should be able to re run the setup and pass the test. At the instance screen set below follow accept the default SQL instance
At the server configuration tab make the SQL services run under the NT AUTHORITY SYSTEM account and make all start up types automatic
then under the collation tab make the following changes and click apply
Then under the database engine configuration page choose mixed mode , a password for the SQL SA account and add current user and administrator user
then we are ready to install
then reboot the nUCCE instance in ec2 dashboard. I have breezed through the setup for SQL contact center a bit , but if you want a much more in depth view of the setup follow the link below
https://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/icm_enterprise/icm_enterprise_9_0_1/installation/guide/UCCE_BK_S5AE1622_00_staging-guide/CCMP_BK_S5AE1622_00_staging-guide_chapter_01011.html
Create a snap shot via Elastic block storage
Now is a good time to take a snap shot of the nUCCE /ec2 server , since it has fresh AD, WIN 2012 , SQL 2014 and the basic ICM install software , but the final app has not been built yet and there is no contact center state , to create a snap shot follow the steps below
go to elastic block storage via the management console and select the volume ID for the nUCCE server right click and create snapshot , then under the snap shot you should see the back up created
SQL post install tweaks
This is the final stages of hosting the ICM part of a UCCE architecture on AWS , but we have to make the following tweaks in SQL config so we can get all the contact center components to build correctly .
using the SQL server configuration manager , for the client protocols move the named pipes above TCP/IP.Then under the SQL server network configuration enable Named Pipes.
Building the UCCE Components
On the desktop of the nUCCE server there should now be a unified ucce web set up short cut on the desktop which you can use to build the components it will take you to the web page below
https://localhost/setup/login.action
login using the credentials of the account we set up in AD 101. This tools allows us to build the following ucce components
- ICR intelligent call router
- Logger
- Admin workstation
These 3 component create the “brain” of the UCCE call center which allows you to make call routing decisions , in real time against a contact center state .
Adding the nUCCE instance
The first thing we need to add is an instance , which is basically the idea of a customer and assign an integer as shown below, the link to this is under the instance management tab in the left hand frame
Adding the nUCCE Logger
Add the logger under the logger tab except the defaults here
and except the defaults at the next tab
the host name of the server gets filled in by default and this resolves to the private address of the EC2 eg
Then at the next tab enable the outbound option , this later will be used to make outgoing SIP calls from nUCCE
Adding the nUCCE Router
We are going to basically follow the same process here to add the router , so on your desktop click the unified CCE web setup icon as before , use the credentials for your domain user and then from the left hand side click Router , accept the defaults shown below
Basically select side A and select Simplex and then click next;
As before the private of your EC2 instance resolves to the private IP address , this can be resolved via a ping.
This will match with what is on your EC2 instance desktop and Ec2 dashboard
and via your EC2 dashboard
at the next router install page enable 4 x PG ‘s as below
The PGs essentially provide us with a CTI interface to integrate third parties to.
Hopefully we can use lambda via connect to make a routing decision in cisco , hence the reason for enabling database routing option in the router. At the next screen accept the defaults for QoS , since essentially we are simplexed these will have no effect
Why did my private address for my EC2 instance change ?
That completes the build of the nUCCE Router. The more eagle eyed amongst you will see that the hostname changed between the router installation and the logger installation . This is only because i managed to kill my original install and had to re-stage , but the main point to take away is that in simplex , within a single availability zone for your EC2 instance , we are going to run all the services via a single private IP address , so your hostname will be the name provided by AWS when you launch the AMI
Building the nUCCE admin workstation.
Now that we have built the routing core within AWS , we need to build the administration interface so we can configure nUCCE / AWS . This basically follows the same steps as before , logging into the web interface on the desktop of your EC2 instance and then taking the following configuration options.
then select the options below
then finally as below
since there is no duplex in this architecture , we dont need a secondary site , but since it’s a required item we can just use a placeholder of secondary to satisfy the install .
The network interfaces for the AW is defined as below
again we are going to use the hostname of our EC2 instance which resolves to the private address EC2 instance.
Summary
That basically concludes the build , what we have done is implement the core intelligence of the Cisco UCCE v 11.01 product over AWS.
if you click the unified CCE service control applet on the EC2 desktop you should see the services built as below
dont worry about the PG / CG and dialer nodes (you will have the router , logger and distributor nodes) , i will blog the build of these components in a later blog , where we will use them to pass calls between connect and UCCE.
If you have any questions , or need help or assistance in building your own UCCE v 11.0 sandbox over AWS please dont hesitate to reach out to me on [email protected].