Installing Jabber softphone

Recently after adding my jabber client to the HQ and BR1 sites I decided to setup one for my CUCM v11 at work only to run into an error where the registration complained saying “Unable to communicate with server”.

After some digging I realised since CUCM 10.x, there is an expectation that Jabber will discover the call manager server using SRV records set in DNS. I forced a workaround however by making entries in my local host file but that caused me to go looking for a cleaner solution without having to resort to DNS.

I came across this article from this website and it seems to be a more acceptable solution without having to edit local files on ever workstation running Jabber.

Setting up remote access

After getting my lab going I find ever so often while at work or on a business trip, I need to do a quick test of a scenario and I have no access to my equipment. When I had regular ADSL internet this was not a problem as I could easily configure DYNDNS on my modem and then vpn into my network from outside. This is no longer the case however with the new fiber service as now my provider has implemented CG-NAT and is leasing a routable public IP  for almost the same cost as the service.

I thought about using teamviewer but my lab network, by design is separated from my how network so not a viable option.

The next option I looked at is creating the equivalent of an hamachi tunnel where the remote sites dont need to rely on a local public IP but traffic between sites can be routed using the native private subnets.

My solution ended up looking like this.


I created an ubuntu VPS on the amazon cloud and installed strongswan 5.3 then I setup a tunnel between my edge router and the strongswan server, publishing all the subnets for both my lab and the house network.

I then created a roadwarrior account on the strongswan for my laptop and tablet then by the magic of VPN I now have access to my home network using all private IPs and most importantly, without having to pony up a rental fee for a public IP.

Choose your PSTN simulator carefully

When trying to finalise my PSTN configuration for the required E1 and T1 lines to HQ, BR1 and BR2 I stumbled into a set of limitations with the 2801 router that caused me to stop and redo my topology.

Originally I had the following setup:



The 2801 was configured as follows

Slot0-VWIC2-2MFT-T1/E1 (T1 crossover to HQ and BR1 )
Slot 1-
VWIC2-2MFT-T1/E1 (E1 crossover to BR2)
Slot 2-
Slot 3-

Frame relay switching was enabled with no issues for all three sites but when I tried to enable the pri timeslots on the controller in slot 0, I kept getting an error saying insufficient resources. At first I wasn’t sure what was wrong so moved on to the controller in slot 1 and configured the E1 pri timeslots with no problems. A quick google lookup pointed out that the 2801 routers can only use a T1 CAS voice card in slot 0 and nothing else. As the lab scenarios for HQ and BR1 required PRI and I was out of slots to relocate to, I now have to use the 2801 as a site router and replace it with a 2811 router instead.

Using one server for HQ and BR1

In my lab, server resources are very scarce so I have to make one server work for both HQ and BR1 vms.

As the labs have scenarios where DHCP runs from the Publisher or Subscriber, I know the phones must end up on the same vlan. This means the esx server must be connected to a trunk port on the main switch and each VM must be placed in their respective vlans.

This guide was very helpful to get that done as now I have my HQ vms in VLAN 5 and my BR1 vms in vlan 7 as per the 360 topology.



Preparing to Installing VMWARE ESXi

I confirmed that vmware 5.5 is compatible for CUCM 9.1 and also that it will run on my Dell Power edge 1430 server. Challenge now is how to actually install the ESX as the CDROM in this server is not working.

With some quick searching however I found these two articles which turned out to be very helpful. I actually got it working with the first method but was interested in a code approach so I did it again just for the fun of it and also to prove the second procedure.

In comparison however I must say the code approach was much cleaner and faster so will use that method for future needs to make USB drives bootable from a macbook.


Building RJ45 Crossover cables

The topology for the lab has connections for WAN links to each site in addition to PSTN links providing T1 and E1 services. I am using a 2801 router for providing my PSTN services as I found the 2 port MFT1 cards are very cheap on ebay at this time.
The beauty about this setup is I didnt have to buy any funny WIC crossover cables as I was able to make my own using cat 5 cables and and a crimper

Home Lab

Building a home lab.
Preparing for the Lab exam requires a lot of hands on practice to build technique and muscle memory. There are many ways to get this practice such as:
1. All virtual such as Cisco360. This has its place but can get a bit expensive over time. Biggest issue I found is that I cant save a lab and continue where I left off at a later date.
2. All physical according to the blueprint but this can be very expensive as G2 kit is not cheap.
3. L2VPN racks where you have all phone kit locally and vpn to a rack service for the CUCM servers, HQ, Site-1, Site-2 routers and switches. This is great if you have good bandwidth but can get expensive over time plus there is always the issue of trying to get available slots.

I will be adopting a hybrid approach where I use full 9971 and 7965 phones with a 3750 switch and router for L2VPN rack time but I will combine that with offline cucm practice using my 28xx routers for HQ, BR1 and BR2.

As I already have by routers and phones we will start by building the server(s) as per the blueprint.

  1. Download the ISO images

Once you have a Cisco account with some partner access, getting the ISO files for the lab is quite easy.

Links for downloading the ISO files on the blueprint.
CUCM 9.1
CUC 9.1

2. Make the ISO bootable

NB. As i am using a MAC I had to get cdr tools via this link
so that I can create the bootable ISO files from my command line

Step 1 – install the tools

  1. Press Command+Space and type Terminal and press enter/return key.
  2. Run in Terminal app:
    ruby -e “$(curl -fsSL” < /dev/null 2> /dev/null
    and press enter/return key. Wait for the command to finish.
  3. Run:
    brew install cdrtools
  1. If this fails you might have Xcode missing. Install from appstore and try again


Step 2- extract the DVD

  1. Mount and extract DVD

Create directory where non-bootable CUCM ISO image will be mounted.

$ mkdir -p ~/temp/extract

  1. Create directory where the content of mounted non-bootable ISO image will be copied

$ mkdir -p ~/temp2/

  1. Mount non-bootable DVD ISO image

$ sudo mount -t iso9660 ~/Downloads/UCSInstall_UCOS_9.1.2.10000-28.sgn.iso ~/temp/extract

4. Copy the content of mounted ISO image to directory ~/temp2

$ cp -rv ~/temp/extract/ ~/temp2

Step 3 – Make a bootable ISO   

1.  Create bootable ISO image

        $ cd ~/temp2/extract

        $ mkisofs -o ../UCSInstall_UCOS_9.1.2.10000-28.sgn-bootable.iso -R -no-emul-boot -boot-load-size 32 -boot-info-table -b isolinux/isolinux.bin .

All Done for now!!