All users in the Directory will have a Presence status of Unknown () in the Presence Status column () of the Directory. If this column is not visible you may add it under Preferences > Directory. Select Default Presence Icon from the Available column and move it to Displayed column using the right-facing arrow button.
Additionally, the User Profile field in the Contact Details will be blank. This needs to contain the username as it appears in the End User Configuration page of Cisco UC Manager (CUCM). Without this value populated, Presence Subscriptions cannot be sent to the CUP server.
Figure 2 - Contact Details Context Menu
Figure 3 - Contact Details with User Profile Field Highlighted
The CUxAC server builds the Directory by querying CUCM via the AXL API after you have enabled Directory Synchronization (System Configuration > Directory Synchronization menu) and restarted the LDAP Plug-in service (Engineering > Service Management menu). To be more precise, it queries the contents of the enduser table and copies a subset of the fields. Optionally, if you have defined any Directory Rules, or Directory Filtering in Department edition, the import will be filtered to import only the End User objects that meet your filter criteria.
For the CUP Integration to work CUxAC must build the Presence URI for each user since the enduser table in CUCM does not contain this directly. The Presence URI consists of a left- and right-hand side. CUP uses the Username (userid field) from CUCM for the LHS of the Presence URI. In CUxAC the left-hand-side (LHS) is determined by the value selected under Preferences > Presence. By default this is set to User Profile and it should not be changed; User Profile is mapped to the userid field from CUCM.
Figure 4 - Attendant Console Client Presence Preferences with User Profile Highlighted
The Right-Hand-Side (RHS) is determined by the Proxy Domain. This is defined in the CUPS Connectivity (Engineering menu) through the Proxy Domain field. It must match the value specified in CUP Administration under System > Cluster Topology > Settings.
Figure 6 - CUP Administration Cluster-Wide Toplogy Settings with Domain Name Highlighted
When CUxAC has both sides of the URI it will send individual SIP SUBSCRIBE messages to the CUP server to watch the status of each user. You can easily watch this process using a packet capture utility such as Wireshark on the CUxAC server. For the sake of brevity I have not included the entire SIP dialog here. What's important is that the To: header be a properly formatted Presence URI for a user on CUP. If it isn't, the subscription will fail and the status will show unknown in the Attendant Console client.
The SUBSCRIBE message is never sent by CUxAC because it does not have a LHS value to build a complete Presence URI with. This was observed in Figure 3 when the Contact Details window showed a blank User Profile field. This is happening because the database table that maps field names from CUCM to field names within CUxAC is missing the record for User Profile. Without this the LDAP Plug-in service never stores the Username from CUCM.
Until Cisco releases a version that addresses this defect you can follow these steps to manually add the User Profile field mapping. These steps were provided by a Development Engineer under SR 623463861; however, I offer them with no warranty express or implied. Implement this at your own risk.
Open SQL Management Studio. If using SQL Express this was installed automatically on the CUxAC server.
Backup the ATTCFG database. Skip this step at your own peril!
Expand the ATTCFG and Tables elements and locate the dbo.Ext_Source_Mapping table.
Alternate-click on the table name and choose Edit Top 200 Rows
Add a new record and populate the fields as follows; end result shown in Figure 7. All values are case sensitive!
<blank> (not NULL)
<blank> (not NULL)
Figure 7 - Microsoft SQL Management Studio Editing Table with Newly Created Row Highlighted
Restart all services through Engineering > Service Management. Even for small directories it may take a several minutes for the synchronization to occur after the service starts.
Login to the Attendant Console. If you follow Figures 2 and 3 to see the Contact Details, you should now see a value in the User Profile field.
If you still do not see presence status after completing this workaround you likely have another integration issue. The most common is forgetting to add an Incoming ACL on CUP to allow CUxAC server to bypass SIP DIGEST authentication.
Purging the Directory
As a last resort it may be necessary to clear the local database tables that contain the directory records. This should not be necessary; however, the procedure is documented here for reference.
CAUTION: Completing these instructions will result in data loss. Any modifications to the Contact Details (e.g. notes, additional phone numbers or email addresses, device choice for CTI observation, etc) will be lost!
Open CUxAC Administration http://<servername>/webadmin and login.
Choose System Configuration > Directory Rules from the menu. NOTE: The process for Department edition will vary slightly since it uses Directory Filtering instead of Directory Rules.
Choose the default rule (or add a new one if none exist).
Select Add New to create a new filter.
Choose telephoneNumber and set it Equal to 99999, or another pattern you know will match zero records.
Restart all services through Engineering > Service Management. Even for small directories it may take several minutes for the synchronization to occur after the service starts.
Login to the Attendant Console client and verify that you see a completely blank directory. If any entries exist in the directory something matched your filter; return to step five.
Once you have verified that the directory is empty, return to the Directory Rule and delete the filter you created in step five.
Restart all services through Engineering > Service Management. Remember that it may take a few minutes for the directory synchronization to complete.
Login to the Attendant Console. The Directory should again contain records. If you follow Figures 2 and 3 to see the Contact Details, you should now see a value in the User Profile field.