I've been working on something that at this point in my career I never thought I'd be doing: another Cisco Certified Network Associate (CCNA) certification. The CCNA Voice, to be exact. Now that I'm in a job role where I'm expected to be somewhat of a jack-of-all-trades, I can no longer avoid learning voice :-) For a long time I've focused on just the underlying network bits and left the voice "stuff" to others. Since I now need to talk intelligently about Cisco voice solutions, products, and architectures, I decided to go through the CCNA Voice curriculum as a way to establish some foundational knowledge.
This post is about the tools and methods I used to build a small lab to support my studies.
These are the tools I used.
- Cisco Unified Communications Manager (CUCM)
- Cisco Unity Connection (CUC)
- Windows 7 workstation
- VMware ESXi
- IP softphone client from ipblue.com
- Virtual Audio Cable software from muzkchenko.net
The premise of the lab is really to allow me to study the CUCM and CUC interfaces. There's such limited IOS command line work in the CCNA Voice that I didn't want to go through the effort of getting a router going that was running Communications Manager Express. My lack of familiarly with the CUCM/CUC interfaces meant I had to concentrate mostly in that area.
As far as phones, I opted to go with softphones so that I could scale up/down the number of phones quite easily. Because I'm not super keen on installing/uninstalling random software on my main workstation, I quickly spun up a Windows 7 VM to act as my host for the softphone clients.
I don't (yet) have a SIP trunk and as said previously I don't have a router so there's no analog trunks either. My calling was limited to calls to/from the softphones.
Installing Communications Manager⌗
Getting CUCM up and running was pretty painless. On the cisco.com downloads page, you can search for "CUCM" and download the Virtual Server Template (OVA) for whatever release of CUCM you want to install. Release 8.0 or 8.5 will probably be best for the 640-461 exam. The OVA file contains all the virtual machine settings — storage allocation, memory size, number of vCPUs, etc — that are best suited for CUCM. It does NOT, however, contain the actual installable CUCM software. Cisco does not distribute installable images for Unified Communications software on cisco.com. So unfortunately, you need access to the install ISO using some other means. If the company you work for uses CUCM, this shouldn't be a big obstacle.
Once you have an install image, simply boot the VM that you created from the OVA template by attaching the virtual CDROM drive to the CUCM ISO. The CUCM installer will detect that the underlying hardware is virtualized on ESXi and install all the appropriate drivers.
You'll end up with a running copy of Communications Manager.
As far as licensing goes, there is a perpetual 150 unit license that comes with CUCM out of the box. This is more than enough to run a few phones in the lab.
Installing Unity Connection⌗
When going through the CUCM installation, you might notice that it asks you which pieces of software you want to install (CUCM, CUC, Business Edition 5000). This is because CUC and CUCM come together on the same install media. Again, hit the cisco.com downloads page and look for the Unity Connection Virtual Server Template (OVA) to help create the virtual machine. Then boot that VM from the same ISO image used to boot CUCM and select Cisco Unity Connection when prompted.
Again, since I didn't want to be installing and uninstalling third-party software on my main workstation, I spun up a Win7 workstation for the lab that would act as my management station as well as host workstation for the softphones.
Now getting the softphones working in a VM was more of a challenge than I had anticipated.
My original plan was to use Cisco IP Communicator (CIPC) which is the precursor to the Jabber client that exists today (and maybe even the precursor to the Unified Presence Client too?). Anyways, it's old, but it's simple. Just a straight softphone. The issue I ran into is that the client would bomb when launching it because there was no soundcard in the virtual machine. Bummer. Now believe me, I did fool around with this for a while but was not successful in getting it working. I did find references via Google of people having success by installing a software sound driver that fooled CIPC into thinking there was audio hardware present, but that did not work for me.
In the end, I decided to use an alternate softphone: VTGO-PC from ipblue.com. This is a multi-instance, SCCP compliant softphone that's perfect for a lab environment. It allows for (5) instances to be launched on the same PC and is also available in a trial version. This was perfect because I could run multiple phones on my one VM and make calls between them.
The VTGO software has the same issue with soundcard hardware as CIPC, however it was able to work fine with a software based audio device. I found the Virtual Audio Cable
software worked quite well. It is also available as a trial version.
One thing to note with these pieces of software installed is that although the softphone launches and can make calls, since it's running in a VM and there's no actual soundcard nor is there a microphone, you can't actually talk on these phones. My opinion on that was "who cares?" I'm more interested in the phone's behavior than I am in talking to myself via a softphone.
Towards the end of my study time in the lab, I thought it would be neat to run a softphone on my iPad. This turned out to be an exercise in trial and error. Although there are free SIP phones in the App Store, most of the ones I tried were of low quality. The only one I didn't uninstall was Whisper. I was able to register this to CUCM as a SIP device and make calls to my VTGO softphones. The novelty of being able to make phone calls from my iPad over the WiFi was actually pretty cool.
That's basically the lab in a nutshell. All in all, since I already had the ESX infrastructure, this lab cost me nothing to get up and going. I was able to utilize software on a trial and/or demo license basis which turned out to be more than enough for studying the CCNA Voice blueprint. For those that need to concentrate more on the CLI aspects of the blueprint, you might need to get Communications Manager Express up and running (and there are plenty of articles on the web about how to do that). For those that are quite comfortable on the CLI and really need to concentrate on the CUCM and Unity Connection interfaces, I hope you found my experience helpful.
Disclaimer: The opinions and information expressed in this blog article are my own and not necessarily those of Cisco Systems.