Tuesday, 24 February 2015

CUCM and Instant Messaging & Presence Integration

IMP Configuration

  1. Navigate to System > Cluster Topology.  Edit the IMP server to change the node name from domain to IP. Important to restart the server after the change.
  2. Enable the following services:

  • Cisco SIP Proxy
  • Cisco Presence Engine
  • Cisco Sync Agent
  • Cisco Unified Presence XCP (Extensible Communications Platform) Connection Manager. This service is used to facilitate services communication.
  • Cisco Unified Presence XCP Directory Service
  • Cisco Unified Presence XCP Authentication Service

  1. Add CUCM TFTP Servers in Application > Legacy Clients > Settings. As the clients first connect to IMP server, the TFTP servers are provided by IMP to CUPC and Jabber Clients to register with CUCM servers.
  2. Navigate to System > Settings. Configure cluster ID Name  and Domain Name. The cluster ID name is just a descriptive name.
  3. Navigate to System > CUCM Publisher. Configure CUCM Publisher IP, DB secret, AXL username, AXL password.
  4. Navigate to System > Settings. Make sure to enable XMPP Client to IMP
  5. Navigate to System > Service Parameters. Change the CUCM domain to match the IMP domain configured in step 4.
  6. Navigate to Application > Legacy Settings > CCMIP Profile and add CUCM Groups to be used by clients. This defines the primary and secondary CUCM servers as desired. You can create multiple CCMIP profiles and assign different users to different profiles (e.g. Dubai users to DXBCCM01 as primary while Mumbai user to BOMCCM01 as primary).
  7. Navigate to Presence > Gateways and add CUCM as gateway to be used for call control.
  8. Navigate to Presence > Settings and select the SIP trunk created in CUCM. This is the trunk to be used by IMP for CUCM communication (SUBSCRIBE, NOTIFY, REFER, etc)
  9. Navigate to Presence > Routing > Settings. Select the Preferred Proxy Listener as Default SIP Proxy TCP Listener.
  10. Navigate to Messaging > Settings and enable instant messaging


  • No need to configure IMP in CUCM similar to old version of presence
  • The moment IMP sync with CUCM, incoming and outgoing ACLs will be added in IMP allowing all CUCM servers.
  • Although CCMIP Profile should be configured for Jabber prior to 8.x as per Cisco doc, practically it is needed for new versions as well.

CUCM Configuration

  1. Create UC services to be used on IMP clients by navigating to User Management > User Settings > UC Service. You can create UC Service to point to IMP server, to point to CTI server, to point to Voice Mail Server and to point to Directory Server.
  2. Create UC Profile to combine all the services to be used by IMP clients in one profile. Navigate to User Management > User Settings > UC Profile.
  3. Assign UC Profile to end users who are using IMP clients. Also, you need to enable IMP capability for these users.
  4. Configure SIP trunk pointing to IMP. This trunk should have a security profile with Accept Presence Subscription, Accept out-of-dialog Refer, Accept Unsolicited Notification, Accept Replaces Header enabled.
  5. Create CSF devices for soft clients (CUPC and Jabber). Assign the owner user ID, primary phone, and tune options.
  6. On the end user page, assign the CSF device to the controlled devices, assign primary extension, and assign CTI privileges (CTI Control Devices/CTI Enabled).

Cisco Instant Messaging & Presence Clustering

In one presence cluster you can have up to 6 servers (1 publisher and 5 subscribers). A presence cluster can be divided into subclusters (Max of 2 servers per subcluster which provide a max of 3 subclusters).

The subclusters can be configured in 3 modes:

  1. Active/Active
In this mode the users are distributed across both nodes in the subcluster. Assuming that we have 3 subclusters with servers names as A1/B1, A2/B2, A3/B3, the distribution algorithm will distribute the users as A1 -> A2 -> A3 -> B1 -> B2 -> B3.
  1. Active/Standby
In this mode the users are distributed to the first server in each subcluster with second server as backup. Assuming that we have 3 subclusters with servers names as A1/B1, A2/B2, A3/B3, the distribution algorithm will distribute the users as A1 -> A2 -> A3.
  1. None
In this mode the users should be assigned to servers and subclusters manually instead of sync agent.

IMP publisher will sync with CUCM publisher to get all IMP enabled users and their information. Also, note that IMP cluster can connect to single CUCM cluster ONLY.

Why do we need subclusters?
They are mainly used to divide the database size into sub databases. This will make the databases more manageable. For example when taking database backup, the backup job might not complete in the specified window for a single large DB. However, with sub-sized DBs, the backup can be completed within time frame specified.