It’s always nice when you have a mission critical system like – oh I don’t know, say a phone system – to have a development environment to play with and not worry about if you break it catastrophically. It seems Cisco’s favoured method for you to achieve this would be to buy an entirely separate Cisco CallManager (CCM) setup, but that’s a rather costly proposition.
Instead there’s a far simpler solution, and that’s to install CCM into a VMware Virtual machine, and play about with it in there. In theory if you have a spare router capable of doing voice, you could also use that with it too (I’ve yet to try that though).
I’ve performed this installation with VMWare Workstation 6.5 on a dual core Intel Core 2 Duo E6750 with 4Gb RAM under Windows Vista, and had two servers running concurrently quite happily, so it’s actually quite a workable solution on modern hardware. Here’s the process:
- In VMWare Workstation create a new custom virtual machine.
- Set the hardware compatibility to Workstation 6.5.
- Select to install the operating system later.
- Select the operating system as Linux, and Red Hat Enterprise Linux 3.
- Chose a location for your VM to live in.
- Select a single processor.
- Set the RAM to AT LEAST 1024Mb.
- Select a network connection type to use. If it’s going onto an isolated lab network and connect to other devices, you’re probably fine to use bridged, otherwise use Host Only.
- Use the LSI Logic controller.
- Create a new SCSI virtual disk, and set it to 40Gb. You don’t need to allocate all space straight away (i.e. make a growable disk). Select a name for the disk to save as.
- Finish the configuration but don’t power on the virtual machine.
- Put your CCM installer DVD into your DVD drive, and power on the virtual machine.
- Install CCM as normal.
When it starts the first time you’ll see a screen like the following:
Fair enough. It is for development and labs, not production anyway.
The thing to be aware of here is the 1Gb of RAM, and setting the hard disk to anything less than 40Gb. When CCM installs it makes multiple copies of the data, and expects to find space to basically install itself twice (into the active and inactive partitions). If it doesn’t have enough room, it’ll fail with a rather vague error.
It’s also possible to change the MAC address of the virtual server. VMWare workstation and VMware Player will both allow arbitrary MAC addresses to be set (providing they’re legal – you can’t have ZZ:YY:XX:WW:VV:UU for example). ESXi won’t allow this, however.
With the virtual machine powered off, use a text editor to open the .VMX file in the virtual server’s directory, and look for the following lines:
ethernet0.generatedAddress = "00:0c:29:00:00:00"
ethernet0.generatedAddressOffset = "0"
ethernet0.addressType = "generated"
You won’t necessarily find them together, but they’ll be in there. Deleted the ethernet0.generatedAddressOffset line, and change the other two to look like the following:
ethernet0.Address = "00:00:00:00:00:00"
ethernet0.addressType = "static"
You’ll also need to move the ethernet0.Address line up above the uuid.location line. With that done, you can power on your VM, and the MAC should be changed. Probably best to do this before you install it.
Now you have a development environment. As I said at the beginning, I managed to create two VMs, one with a publisher, the other with a subscriber node, and it all worked quite happily from what I could see. I intend testing it in VirtualBox as well, but I have a feeling it actively looks for particular hardware (basically the Cisco Media servers) or VMware, and just fails to install on anything else. Otherwise, this method represents a good method for having a play with CCM without breaking your live system.