Friday, November 18, 2011

Creating Rendezvous (Meetme) Conference on UCM + Cisco Telepresence MCU

My environment:  UCM 8.6.1-20000-1, Cisco Telepresence MCU 4510 4.3(1.27)

Previously in the last blog post:

We have successfully configured Cisco Telepresence MCU as ad-hoc conference resource on UCM.  The caveat is this ad-hoc video conference resource can’t be used on Tandberg endpoint such as EX60 today, because there is no conference soft key or hard key for the conference initiator to start the conference.  The alternative is meetme conference.  However you might want password protected meetme conference, you can achieve it by configuring Rendezvous meeting on Cisco Telepresence MCU.

1.  Add the Cisco Telepresence MCU as H323 gateway on UCM


2. Create Route List, Route Group, then Route Pattern.  Standard stuff.

3. Create Route Pattern with the destination to this H323 gateway.  In my case, my route pattern is 1357.

4. Then go to Cisco Telepresence MCU.  Add UCM IP address as H323 gateway.


5. Create Rendezvous Conference, the numeric ID is the number that you previously created on UCM route pattern, 1234 is the PIN to protect this meeting.


Test it by calling 1357.  Then you should see the screen asking for PIN.  Enter the PIN then you are now in the rendezvous meeting.



This is not official support.  Currently you can’t configure the MCU as media resource (UCM ad-hoc, meetme) and MCU rendezvous at the same time with the same MCU, however it works.  Make sure you are not using the UCM software MTP.  With that MTP in your MRGL or your default <none> MRGL, EX60/90 will become audio only. 

Friday, November 4, 2011

Device initialization error has occured 1201

My environment:  UCM 8.6.1, CUP 8.5.1, CUPC 8.5.3

I have encountered an error on CUPC saying "Device initialization error has occured.  [1201]".  Everything is working except the softphone and hardphone mode.  It seems to be something is wrong on the UCM side.

The root cause of my problem is when the UCM is installed, it is synchronized with a NTP server with wrong time configured, therefore the tomcat certificate on UCM is expired.  The step to fix this:

1. UCM OS admin page > Security > Certificate management
2. Find the tomcat.pem, click on the certificate and check the validity date
3. If it is expired, click on "Regenerate"
4. Restart the tomcat service in CLI - "utils service restart Cisco Tomcat"

After CUPC logout and login, the softphone and hardphone mode works again!

Thursday, November 3, 2011

My LISP notes to share

What is LISP?
  • enables separation of IP addresses into two new numbering spaces: Endpoint Identifiers (EIDs) and Routing Locators (RLOCs)
  • Locator / Identifier Separation Protocol
Routing Locators (RLOCs)
  • topologically assigned to network attachment points, used for routing and forwarding of packets through the network
Endpoint Identifiers (EIDs)
  • assigned independently from the network topology, are used for numbering devices, aggregated along administrative boundaries
LISP then defines functions for mapping between the two numbering spaces and for encapsulating traffic originated by devices using non-routeable EIDs for transport across a network infrastructure that routes and forwards using RLOCs. Both RLOCs and EIDs are syntactically-identical to IP addresses; it is the semantics of how they are used that differs.

Provider Independent (PI) address
- An address block assigned from a pool where blocks are not associated with any particular location in the network
- Not topologically aggregatable in the routing system

Provider Assigned (PA) address
- An address block assigned to a site by each service provider to which a site connects
- Each block is sub-block of a service provider CIDR block and is aggregated into the larger block before being advertised into the global Internet

Routing Locator (RLOC)
- RLOC is an IPv4 or IPv6 address of an egress tunnel router (ETR)
- RLOC is the output of a EID to RLOC mapping lookup
- 1 EID maps to 1 or more RLOCs
- Multiple RLOCs can be assigned to the same ETR device or to multiple ETR devices at a site

Endpoint ID (EID)
- A 32-bit (IPv4) or 128-bit (IPv6) value used in the source and destination address fields of the first (most inner) LISP header of a packet
- The host obtains the destination EID similar to DNS
- Source EID is obtained via existing mechanisms used to set a host's local IP address
- An EID is allocated to a host from an EID-prefix block associated with the site where the host is located
- EIDs MUST NOT be used as LISP RLOCs

- A power of two block of EIDs
- allocated to a site by an address allocation authority
- EID prefixes are associated with a set of RLOC address which make up a database mapping

Ingress Tunnel Router (ITR)
- A router which accepts an IP packet with a single IP header (does not contain a LISP header)
- The router treats this inner IP destination address as an EID and performs an EID to RLOC mapping lookup
- The router then prepends an outer IP header with one of its globally routable RLOCs in the source address field
- ITR receives IP packets from site end systems on one side and sends LISP-encapsulated IP packets toward the Internet on the other side

Egress Tunnel Router (ETR)
- An ETR is a router that accepts an IP packet where the destination address in the outer IP header is one of its own RLOCs
- The router strips the outer header and forwards the packet based on the next IP header found
- ETR receives LISP encapsulated IP packets from the Internet on one side and sends decapsulated IP packets to site end system on the other side

- ITR or ETR - tunnel endpoint

EID-to-RLOC cache
- short lived, on demand table in an ITR

EID to RLOC database
- global distributed database that contains all known EID-prefix to RLOC mappings

Basic Overview
- For routers between source host and ITR - destination address = EID
- For routers between destination host and ETR - destination address = EID
- For routers between ITR and ETR - destination address is RLOC
- IP addresses of the end systems = Endpoint Identifiers (EIDs)
- The IP address in the outer header are RLOCs
- ITR prepends a new LISP header to each packet and an egress tunnel router strips the new header
- ITR performs EID-to-RLOC lookups to determine the routing path to the ETR, which has the RLOC as one of its IP address

Basic Rules
- End systems only send to addresses which are EIDs. They don't know address are EIDs versus RLOCs but assume packets get to LISP routers and deliver packets to destination end system
- EIDs are always IP address assigned to hosts
- LISP routers mostly deal with RLOCs
- RLOCs are always IP addresses assigned to routers, preferably topological-oriented addresses from provider CIDR blocks
- EIDs are not expected to be usable for global end-to-end communication in the absence of an EID-to-RLOC mapping operation
- maximum 2 LISP headers can be prepended to a packet - first header as Location / Identity separation and second prepended header inside service provider for TE purposes
- Map-Requests can be sent on the underlying routing system topology or over an alternative topology
- Map-Replies are sent on the underlying routing system topology

Packet Flow
1. wants to open a TCP connection to
2. It does a DNS lookup on
3. A/AAAA record is returned. This address is the destination EID
4. Locally assigned address of is source EID
5. Packet is built and forwarded through the LISP site as a normal packet until reaches ITR
6. ITR must be able to map the EID destination to an RLOC of one of the ETRs at the destination site. The ITR will send a LISP Map-Request, and it should be rate-limited
7. When an alternate mapping system (ALT) is not in use, the Map-Request packet is routed through the underlying routing system. Otherwise the Map-Request packet is routed on an alternate logical topology
8. Map-requests arrives at one of the ETRs at the destination site
9. ETR looks at the destination EID of the Map-Request and matches it against the prefixes in the ETR's configured EID-to-RLOC mapping database. This is the list of EID-prefixes the ETR is supporting for site it resides in
10. If there is no match, Map-Request is dropped. Otherwise a LISP Map-Reply is returned to the ITR
11. The ITR receives the Map-Reply message, parses the messages and stores the mapping information from the packet. This information is stored in the ITR's EID-to-RLOC mapping cache. Note that the map cache is an on-demand cache
12. Subsequent packets from host1 to host 2 will have LISP header prepended by the ITR using the appropriate RLOC as the LISP header destination address learned from the ETR
13. ETR receives these packets directly, strips the LISP header and forwards the packets to the attached destination hosts

Tuesday, November 1, 2011

LISP 101 Pencast

I have spent a couple of days to study LISP, and I have summarized what I have learnt in the following pencast. Feel free to take a look and see if it helps you to have a basic understanding on how LISP works:

Cantonese version:

English version:

Monday, October 17, 2011

iPhoto 9.2 crashes with PhotoStream enabled

My environment: Mac OS X Lion 10.7.2, iPhoto 9.2

I have my Mac OS and iPhoto updated, with the new capability PhotoStream which allows you synchronize your photos on iPhone and iPad via iCloud. The problem is when I enabled PhotoStream on iPhoto, it crashes every time when iPhoto is launched. The resolution is removed the 3ivx in your Mac. What I have done is to search 3ivx in spotlight, then use the uninstaller to install it. Crap!

This is the post that I have found my solution:

Thursday, October 13, 2011

Ring Ring Ring - Remote Control your Cisco IP Phone to make outbound calls from iPhone, using iPhone address book entries

Ring Ring Ring is an iPhone application that remote your Cisco IP Phone to make outbound call, base on the address book entries on your iPhone!  Your iPhone address book now becomes your Cisco IP phone address book!

Key features: 
- Remote control your phone to make outbound call, 1-click to call
- Information that has been entered are saved, no need to input every time 
- Support up to 5 phone entries from your iPhone address book 
- Support all Cisco IP phones 
- Support Cisco UCM

Check it out:

Demo Video:

Facebook page:

Screen capture:

Thursday, October 6, 2011

Updating VXC 2112 / 2212 firmware without VXC Manager

My environment:  VXC 2112 and VXC 2212, with firmware 7.0_213

I have got a chance to hands on with the new Cisco Virtual Experience Client (VXC) 2112 and 2212.  The model number ends with 2 means it is a unit connecting to the Citrix XenDesktop and XenApp environment.

I have a need to upgrade it from firmware version 7.0_213 to 7.0_214, because according to the release notes, 7.0_214 is the first version to support XenDesktop 5 and XenApp 6.

You can upgrade it with the VXC Manager, however in my environment I haven't set that up, so there is a way to upgrade those standalone unit via FTP.

1.  You can add the following options in your DHCP pool, I am using a switch as the DHCP server:

ip dhcp pool vxc-pool
  option 161 ip
  option 162 ascii firmware$
  option 184 ascii panda
  option 185 ascii eatsbamboo

option 161 is the DHCP server IP address
option 162 is the FTP path, in my case it is
Put the firmware file in the wnos folder, the firmware should name like this ZC0_wnos
option 184 is the FTP username
option 185 is the FTP password

2. Reboot your VXC client to get the update options from DHCP server.  Monitor your FTP server logs, and also the VXC on screen display.  It should be complete within 5 secs.

You will now have the new firmware on the VXC unit!  I have tried to connect it to XenDesktop 5 and XenApp 6 and it just works like a charm!

Wednesday, September 21, 2011

Cisco UCM 8.6 using Cisco Telepresence MCU as Ad-hoc Video Conferencing Resource

My environment:  UCM 8.6.1-20000-1, Cisco Telepresence MCU 4510 4.3(1.27)

WIth the latest UCM 8.6, Cisco Telepresence MCU (previously known as Codian) can be registered to UCM via SIP as an ad hoc video conference resource, similar to what CUVC can do before.

1.  Media Resource > Conference Bridge, choose Cisco Telepresence MCU from the dropdown box.  Fill in the Conference bridge name, IP address as well as the HTTP username and password.



2.  Secondly, add this video conference bridge into your Media Resource Group and then assign it to Media Resource Group List.  Assign it to the phone that will initiate the ad-hoc video conferencing.

3. Go to the Cisco Telepresence MCU web page, Settings > SIP, the SIP registrar domain is the IP address of your UCM, the username is the Conference Bridge name specified in UCM.  Choose “Enabled” in SIP registrar usage.  In my beta release there is a bug saying that it is unregistered on MCU web page, however in UCM it shows that the MCU is registered.  You can ignore this unregistered message as it is actually working according to my testing.


4.  Then initiate a call from the Cisco video-enabled IP phone.  You will see the multiparty video conference is established successfully.  In my testing I have a 8945, 9951 and a EX60 with TC5.0 beta that is registered to UCM natively.




Sunday, September 11, 2011

Remote Call Forward - Call Forward your desk phone extension to your mobile

Remote Call Forward is an iPhone application that allows you to call forward your desk phone calls to your preferred numbers, mostly your mobile phone, when you are away from your desk.

It works with Cisco UC Manager, if you are on premises you can access UCM with wifi; if you are on the road, you can access the corporate network via Cisco AnyConnect VPN, provided that your company has a ASA / ISR headend in place.

Key features:
- Call Forward your desk phone extension when you are away from phone
- Works with wifi when you are on premises
- Works with Cisco Anyconnect when you are off premises
- Save your profile

Note:  The end user need to have Standard AXL API access right in order to use this app!

Check it out:

Video Demo:

Facebook Group:

Wednesday, September 7, 2011

Changing EX60 Background

My environment:  EX60, TC4.2

To change the EX60 background, access the EX60 admin web page -

Default username admin and no password.  Upload the wallpaper, make sure the file format is png and the maximum size is 1920x1200.  If you upload the file resolution larger than 1920x1200, you will see a black screen on EX60 instead of your preferred wallpaper.

After uploading your wallpaper at the admin page, go to Advanced Configuration > Video > Wallpaper, change it to custom.  If you don't see the change, switch it to "None" then switch it back to custom.

Tuesday, September 6, 2011

CUPC Deskphone Video

My environment: UCM 8.5.1, CUP 8.5.1, CUPC, 8.5.3, 9951 with firmware 9.1.1SR1

It is a headache for people that deployed CUVA and loves the experience but they want to upgrade the PC to Windows 7. Currently Windows 7 doesn't support CUVA and one of the alternative is to use CUPC to run deskphone mode with video as it supports CAST in the latest CUPC version.

There are a couple of tips and tricks that you need to bear in mind in order to get this working:

1. Enable "Video Capability" in device
2. Connect your PC to the integrated switch of the phone
3. If that is the new 9951 and 9971 phone, make sure the Unified Camera is not attached to the phone, otherwise CAST connection will be rejected.
4. Check the server health and make sure "Deskphone video" shows green light instead of orange exclamation mark.

Try to make a call and you will have "CUVA" experience with CUPC!

Friday, September 2, 2011

JQ Phone - Customize your Cisco IP Phone by iPhone

JQ Phone is an application that allows you to change your Cisco IP Phone background and customize it into an unique phone.  You can use the iPhone library or take a picture live and send it to IP phone as background image.  You can view it as the iPhone version of phone designer.  It works with Cisco Unified Communications Manager.

JQ = IP + 1, when you add something to your IP phone, it will become a totally unique phone for you

Key features:
- Support background photos from media library in iPhone or take live pictures from iPhone
- Support most color IP phones, including 9971, 9951, 8961, 7975, 7971, 7970, 7965 and 7945
- Save your settings so that you don't need to enter over and over again

Check it out:

Demo Video:
Facebook Page:

Friday, August 26, 2011

1-Click Extension Mobility Error Codes

If you encountered errors with the Extension Mobility apps, check out the below table to see what the error is:

iPhone apps - 1-click Extension Mobility for Cisco UCM

This is my second iPhone apps in app store and this is an application that allows you to login and logout your Cisco IP phone with Apple iPhone.  Good thing is you don't need to access the IP phone and press a lot of keys to login / logout, and repeat it everyday.  With the 1-click Extension Mobility apps, all you need is to do it once, then save the profile, you can login and logout with 1-click afterwards.

View in iTunes store:

View the video demonstration:

Thursday, August 4, 2011

iPhone apps - Cisco CME Config Generator

An iPhone apps that allow you to generate Cisco CME router config without need to know a single line of CLI command!!  Now on iTunes apps store!

Wednesday, July 27, 2011

"" error while submitting iPhone apps from Xcode

My environment:  Xcode 4.1, iOS SDK 4.3, Lion

I am working on my first iPhone apps and when I tried to submit the iPhone apps after validation success, the following error is shown:


Good thing is I am not alone, the workaround is uninstall Xcode and reinstall again, that works for me.

sudo /Developer/Library/uninstall-devtools –mode=all

Now I am waiting for the app review and approval, can't wait to see my first app in app store!

Monday, July 25, 2011

Taking Screenshot on Cisco IP Phone and Cius

Try to access this link from your browser:


Enter your end user username and password, you will see the phone screenshot in your browser.

It is working for both IP phone and Cius.

Wednesday, July 20, 2011

Enable Video for CIPC on CME

My environment:  CME 8.6, IOS 15.1(4)M, CIPC 8.6.1, CUVA 2.2.2

It takes me some time to make the "broken line" in CUVA becomes connected again.  Try this if you have similar issue.

   service phone videoCapability 1

Sunday, July 17, 2011

Using PVDM3 for Video Switching - CME

My environment:  IOS 15.1(4)M, CME 8.6 on 3945

The configuration of video switching DSP farm is similar to the voice conference DSP farm.  There are 2 different types of video conference, homogenous and heterogenous.  For homogenous, assuming the video codec and resolution for endpoints are the same.  For heterogenous, you can have different endpoints with different video codec and resolution.  In this post, I am trying to use 9971, 9951 with unified camera in a CME-only environment.

Since DSP farm can only registered to SCCP CME or UCM, telephony-service configuration needs to be done to allow the video conferencing dspfarm registered to it.  You need AT LEAST ONE SCCP PHONE to initiate the conference ad-hoc or meet-me conference.

1.  voice-card 0 configuration, the new dsp-reservation command reserves a certain portion of DSP for voice.  dsp-reservation 0 means all DSP will be used for video.

voice-card 0
 voice-service dsp-reservation 0
 dsp services dspfarm

2. voice-service voip configuration, allow sip and h323 interwork and enable sip registrar

voice service voip
 allow-connections h323 to h323
 allow-connections h323 to sip
 allow-connections sip to h323
 allow-connections sip to sip
 fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback none
  registrar server

3. SIP CME configuration, remember to enable unified camera and video, either globally or per phone.

voice register global
 mode cme
 source-address port 5060
 bandwidth video tias-modifier 1024000 negotiate end-to-end
 max-dn 100
 max-pool 100
 tftp-path flash:
 create profile sync 0000519212952386
voice register dn  1
 number 2001
voice register dn  2
 number 2002
voice register dn  3
 number 2003
voice register pool  1
 id mac ACA0.166F.D863
 type 9971
 number 1 dn 1
voice register pool  2
 id mac ACA0.16FC.ED7F
 type 9971
 number 1 dn 2
voice register pool  3
 id mac 9CAF.CAFF.9ABE
 type 9951
 number 1 dn 3

4. Homogenous video conference DSP farm configuration

sccp local GigabitEthernet0/0

sccp ccm identifier 1 priority 1 version 7.0 
sccp ccm group 1
 associate ccm 1 priority 1
 associate profile 2 register VBRIDGE

dspfarm profile 2 conference video homogeneous
 codec g722-64
 codec g711ulaw
 codec h264 vga frame-rate 30 bitrate 1mbps
 maximum sessions 3
 associate application SCCP

5. Telephony-service configuration

 sdspfarm units 10
 sdspfarm tag 2 VBRIDGE
 conference hardware
  maximum bit-rate 1024000
 max-ephones 100
 max-dn 100
 ip source-address port 2000
 cnf-file location flash:
 max-conferences 154 gain -6
 transfer-system full-consult
 create cnf-files version-stamp 7960 Jul 15 2011 15:25:15

6. Create ephone-template and apply it to the ephone who wants to initiate meetme conference

ephone-template  1
 conference admin
 softkeys hold  Join Newcall Resume Select
 softkeys idle  ConfList Gpickup Join Login Newcall Pickup Redial RmLstC
 softkeys seized  Redial Endcall Cfwdall Pickup Gpickup Callback Meetme
 softkeys connected  Hold Trnsfer Park Endcall Confrn ConfList Join Select RmLstC

7.  Create ad-hoc video and meetme video ephone-dn 

ephone-dn  10  octo-line
 number 3333
 conference ad-hoc video
 preference 1
 no huntstop
ephone-dn  11  octo-line
 number 3334
 conference meetme video
 preference 1
 no huntstop

8.  Try to initiate a meetme video conference from the SCCP phone, the let the 9971 phones call in the meetme number.  It will work.  I don't have enough PVDM3 for heterogenous video conference therefore I didn't try the ad-hoc video conference, if you have tried it and it works, feel free to share with me your result.  :)

An iPhone app for CME Config Generation:

Wednesday, June 29, 2011

Factory Reset a Cisco Cius

There are several reasons that you need to factory reset series, you will know the reason when you need to factory reset it.  :)
These are the steps
1. Power down the device.
2. Keep the settings key and back key on the device pressed(the outer 2 keys at the bottom of the device) and power it up.
3. You will see that it powers on and a red LED next to the front camera will start blinking.
4. Once it starts blinking press the volume buttons + and - at the side of your device for 6 times alternately. i.e., + - + - + -
5. Once this sequence is pressed, you will see a solid red light for a while and this confirms that the factory reset is going on.
6. After the reset is done the device will boot up.

Thursday, June 2, 2011

Different Call Park experience with 9971

My environment:  UCM

When you have a 79xx phone and 99xx phones and with both of them configured with Call Park, you will find the end user experience is quite difference.

For the old 79xx phones:

1. Phone A (7965) calls Phone B (7965)
2. Phone B answers and parks the call at 1234
3. Phone B display shows "Call Park at 1234", no light on the line button, you can make new call with Phone B using the normal method

For the new 99xx phones:
1. Phone A (7965) calls Phone B (9971)
2. Phone B answers and parks the call at 1234
3. Phone B will shows

Parked on 1234

and a Resume softkey.  The indicator of the 1st session key on the right is on.
4.  You can press the Resume softkey to get back the call, as if the call is on hold.  Or you can press the 2nd session key to make new calls.  You can also retrieve the call from other phone by call in the call park number.

This is correct as per design, although the behavior is contradictory to the old 79xx phones.

Detail information in Cisco bug toolkit:

Thursday, May 26, 2011

Getting List.xml from UCM

There are numerous way to get the List.xml from UCM, however if you don't have a tftp client like the one built-in on Mac or Linux, but you have a router with you, you can do the following on your IOS router:

Say for example I want to change the wallpaper listing for my 89/99 phones:
copy t

Then you can "more flash:List.xml" on your router to view the content, copy and paste it to your notepad, modify it and upload it back to UCM via the servicability page.


Configuring Live Record in Cisco Unity Connection

My environment:  UCM, CUC

Live record is a cool feature that you can record your conversation or even serve as a voice memo by dialing in a number, and the recording will be stored in your own voice mailbox.

To configure Live Record, first of all you need to create a DN on UCM:

1. UCM > Call Routing > Directory Number > Add New
2. Enter a DN, say for example 1188.  Configure partition and CSS base on your environment
3. CFA to the voicemail pilot number

On CUC, you need to do the following:
1. CUC > Call Routing > Forwarded Routing Rules > Add New
2. Enter Live Record in Description field and select Save.
3. On the Edit Forwarded Routing Rule page, in the status field, select Active
4. Under Send Call To, select Conversation
5. In the Conversation list, select Start Live Record
6. Under Routing Rule Condition, select Add New
7. On the new Forwarded Routing Rule Condition page, select Dialed number
8. Select Equals and enter the Live Record pilot number, in my case the number is 1188.  Then select Save.

Done!  Call in 1188 to try, or you can call others and conference to this number.  The recording will be stored in your VM mailbox.

IP Communicator 8.6.1 - Network settings are grayed out

My environment:  IP Communicator 8.6.1 on Windows Vista

I am playing around with the new IP Communicator 8.6.1 in my lab and I've found the network settings are grayed out when I try to change the tftp server address.

You need to right-click on the desktop IP communicator icon and choose "run as administrator" in order to change the network settings in this new release.

Bring your dead Cisco IP phone back to live

I have an old post talking about how to factory reset your Cisco IP phone:

However in a lot of cases, after you entering the 3491672850*# sequences twice, you phone looks dead.  The right topmost line key will have a orange flash then the screen is dark.  In this scenario you need to:

1. Make sure you have DHCP server configured and your phone can get an IP address
2. Make sure you have option 150 ip configured so that the IP phone knows where to get the firmware
3. Finally, you need to change your switchport to "speed 100" manually!!!!!  I have four phones recovered from "seems dead" state and it seems to be the trick.

After you make sure you have done the 3 steps above, restart the factory reset steps and you can recover your dead phone!

Wednesday, May 25, 2011

Display photo on Cisco Mobile 8.1.1 and CUPC

My environment:  UCM, Cisco Mobile 8.1.1, CUP

Cisco Mobile default will use the LDAP jpegPhoto field to store the photo, for CUP you need to configure in

CUP > Applications > CUPC > Settings

Map the Photo user fields to LDAP jpegPhoto attributes

MS doesn't provide a UI to upload the photo to the jpegPhoto attribute, after some research I have modified a VB script and I am using it for my photo upload:

Function ReadBinaryFile(FileName)
Const adTypeBinary = 1
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = adTypeBinary
BinaryStream.LoadFromFile FileName
ReadBinaryFile = BinaryStream.Read
End Function 

Set objNewUser = GetObject("LDAP://localhost:389/cn=1234567,ou=bamboo,ou=panda,dc=pandaeatsbamboo,dc=com")
objNewUser.Put "jpegPhoto", ReadBinaryFile("1234567.jpg")
Set objNewUser = Nothing 

6921 and CUPC

My environment:  UCM, CUP

Starting from UCM 7.1(5), 6921 is consuming 2 DLUs instead of 3 in the earlier version, and therefore it no longer able to be a primary phone for CUPC.  The CUPC itself consumes 3 DLUs, and the primary phone must >= 3 DLUs in order to qualify as the primary phone.

If you try to assign a 6921 as the CUPC primary phone, you will get the message:

"Update failed.  [10205]  The device must use the same or fewer DLUs as its primary phone"

Unity Connection Licensing Explained

My environment:  CUC

I've found that the Unity Connection Licensing quite confusing.  For a CUC cluster, it will ship with 3 PAKs, 2 of them contains mailboxes, ports and feature license, the HA PAK contains port licenses only.

The first 2 PAKs should be registered with the publisher license mac, and upload from the CUC publisher admin page.

The HA PAK should be registered with the subscriber license mac, and upload from the CUC subscriber admin page.

At the end you should have port licenses evenly distributed across the pub and sub, and mailboxes and features bind to the publisher.

If you found the license file is invalid when you upload to CUC, make sure you are NOT using Mac OS X + Entourage and download the files via Entourage.  It will corrupt the file, the workaround I've done is to download the license files via OWA, and it works!

Hope it will make it clear and save some time to deal with the licensing team!

Visual Voicemail Walkthrough

My environment: UCM and CUC

There are several steps that are required in order to get the visual voicemail working

1.  Firstly you need to create a voicemail pilot number for reverse TRAP connection.

UCM > Advanced Features > Voice Mail > Voice Mail Pilot

Suggest don't use special character, I used *1200 and I've found it is not working after setting the reverse trap routing rules.  After removing the *, it works perfectly.

2. Assuming you are using SCCP integration, create a hunt pilot and includes your voice mail ports hunt list

UCM > Call Routing > Route / Hunt > Hunt Pilot

3. Configure voicemail web service on Unity Connection

CUC > System Settings > Advanced > Connection Administration

4. Configure a reverse TRAP rule, this is a very important step.  

CUC > Call Management > Call Routing > Direct Routing Rules > Add New

I have hit by a bug that some of the phones with visual voicemail widget works correctly, others are keep saying "You call cannot be completed as dial" message, and the phone is calling 5555 instead of the configured pilot number.  

The workaround is, rename your rule to "Route to Reverse TRaP" instead of other names.  

Create a routing rule condition, "Add New" in routing rule conditions.  Select "Dialed Number" and "Equals" it to the voicemail pilot number, in my case the number is 1200.

If you have hit the same bug as me, rename the direct routing rule, unsubscribe the services on phone, reset the phone, subscribe the service again, then it will work.  At least it is working in my case.  :)

In "Send Caller To" section, select "Conversation" option and select "Reverse TRAP" from the list box, save your rule

You can call your TRAP number, you should hear several seconds of silence.  You can also use RTMT CUC port monitor to make sure the call is answered by the voicemail port and the conversation is reverse TRAP.

5. Configure message indicator count

CUC > Telephony Integrations > Phone Systems

Check "Send Message Counts", save your configuration.

6. Suggest to balance your service if you are having a CUC cluster.  You can create a DNS Host record (A) pointing to the two CUC ip address, and use this FQDN for your visual voicemail URL link.

7. Create visual voicemail service on UCM

UCM > Device > Device Settings > Phone Services

Add New phone services, the service URL is

Congratulations, you are done!  Click on the message button, choose Visual Voicemail give it a try!

Friday, May 6, 2011

Restart VMWare processes on VMWare Fusion 3

My environment:  VMWare Fusion 3 on Mac OS X 10.6

I've encountered a weird problem that the bridged VM can't access the outside world as well as the host as well.  When the VM boots up I received several ping reply and all ping are lost after it fully boots up.  After troubleshooting for hours, a process restart solved the problem.  To restart the process on Mac:

sudo /Library/Application\ Support/VMware\ Fusion/ --restart

Wednesday, April 27, 2011

Installing Unity Connection Locale

My environment:  Unity Connection 8.5

To install locale installer, make sure you have stopped the service “Connection Mixer” and “Connection Conversation manager” in Unity Connection Serviceability, otherwise you will get error message saying you must stop the Mixer service, although it doesn’t mention the Conversation Manager service you need to stop it too.

Thursday, March 31, 2011

Time Synchronization between Windows Domain controller and domain clients

net time \\ /set /yes

If you are in a Citrix XenDesktop 4 environment, you need the time sync otherwise the hosted VM can't register to the DDC

EMC Unisphere Engineering mode password

To access the engineering mode - Ctrl-Shift-F12
The password is messner

Monday, February 28, 2011

Mobile Supervisor on iPhone

My environment:  Mobile Supervisor for iPhone, UCCX 8.0

Just one quick note, if you want to use the Mobile Supervisor client on iPhone, you need to specify the IP address and port number in iPhone Settings > Supervisor.  The port number is 12028.

Tuesday, February 22, 2011

Using CAD integrated browser for SocialMiner

My environment: UCCX 8.0.2 on Windows 7, SocialMiner 8.5

Just wanna share some experience with you that how to get it works. The problem I had is, when I used the Windows 7 IE 8 to browse the SocialMiner page, it works fine. However when I used the CAD integrated browser to browse SocialMiner page, it shows the error "This version of Internet Explorer is not supported. Internet Explorer 8 or later is required"

When I visit the page:, it detected that the integrated browser running is IE 7 instead of IE 8. This is because for compatibility purposes, the WebBrowser control is running IE 7 standard mode instead of IE 8:

The changes I have made is, based on the above link, under FEATURE_BROWSER_EMULATION, add a new dword named "agent.exe", with the value decimal 8888 to force IE 8 standard mode. For Windows 7 64-bit, the path is different:

HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

After making the changes, restart the computer then you will see SocialMiner page shown in the CAD integrated browser!

Please be aware this is for lab settings only, changing the above values may have support issue!

Wednesday, February 2, 2011

CME + CUE integration

My environment:  CME and CUE 7.0

CUE can be configured to integrate with CME and UCM, in this post I will give you an example on how to create integration between CME and CUE.  Make sure you have the correct license, as integrating with CME and UCM requires different licenses.

Sample Configuration for CME+CUE integration

On CME side
interface in1/0
     ip unnumbered gi0/0.502
     service-module ip address
     service-module ip default-gateway

ip route in1/0

dial-peer voice 4050 voip
     destination-pattern 4050
     session protocol sipv2
     session target ipv4:
     dtmf-relay sip-notify
     codec g711ulaw
     no vad

     voicemail 4050

ephone-dn 11
     call-forward busy 4050
     call-forward noan 4050 time 10

ephone 14
     number 8000....
     mwi on

ephone 15
     number 8001....
     mwi off

On CUE side
ccn application voicemail
     max session 4

ccn trigger sip phonenumber 4050
     application voicemail
     maxsession 4

Done!  You can try to either call in the voicemail pilot or press the envelop button see if you can hear the prompt.  Next step is to create the user in CUE then you can leave a message.

Some other commands that you will find it useful during the integration.

Factory Reset CUE
restore factory default

Other commands
CME:     service-module in1/0 session
CUE:     show software license
CUE:     software install clean url