Discovery 12: Enable Message Archiving and Chat Rooms
Discovery 12: Enable Message Archiving and Chat Rooms
Introduction
Many industries require that instant messages adhere to the same regulatory compliance guidelines that apply to
all other business records. To comply with these regulations, your system must log and archive all business
records, and the archived records must be retrievable. The message archiver feature is responsible this function.
Persistent chat is a permanent chat room that offers ongoing access to a discussion thread. It is available even if
no one is currently in the chat room and remains available until explicitly removed from the system. Persistent chat
allows workers in different locations, countries, and time zones to participate with fellow team members, customers,
and partners and communicate quickly to gain context in ongoing conversations and easily collaborate in real time.
You only need to configure persistent chat settings if you use persistent chat rooms rather than temporary (ad hoc)
chat rooms. Note that persistent chat configuration has no impact on IM archiving for regulatory compliance.
This topology consists of the following server components: Cisco Unified Communications Manager (HQ-UCM),
Cisco Unified IM and Presence (IMP), Active Directory and DNS server (WIN-SERVER01), and PostgreSQL server
(WIN-SERVER02). The client components are two jump hosts (PC-1, and PC-2) with Cisco Jabber software
installed.
Topology
Job Aid
Device Information
Activity
Set Up a PostgreSQL User and Database
Step 1
Connect to PC-1, wait until you see the network connection notification (blue panel on right side) Click
No button to cancel network discovery. If you do not see the blue network notificaton wait for a while for
the lab automation system to finish configuring PC-1.
Step 2
On PC-1, open remote desktop, connect to WIN-SERVER02, and log in using the credentials from the Job Aid.
Step 3
From WIN-SERVER02 desktop, open the PostgreSQL administration tool. Enter postgres when prompted to set
a master password.Click pgAdmin 4 icon on WIN-SERVER2 desktop.
Step 4
Choose Servers(1) and choose PostgreSQL 10. Enter the postgres password when you are prompted to do so.
If your connection is successful, you should see the following screen:
Step 5
You need to create a user for Cisco Unified CM IM and Presence to connect to this database. Choose
Servers(1) > PostgreSQL 10 > Login/Group Roles to create a new login role. Right-click and choose Create >
Login/Group Role. Enter tcuser as new role name in the Name field.
Step 6
Click the Definition tab. Enter C0ll@B as the password in the Password field.
Step 7
Click the Privileges tab. Choose all the available privileges. Click Save. The user has been created.
Step 8
Now it is time to create a database. Choose Servers(1) > PostgreSQL 10 > Databases to create a new
database. Right-click and choose Create > Database.
Step 9
Enter tcmadb in the Name field. Choose tcuser in the Owner drop-down list.
Step 10
Click the Definition tab. Ensure that the Encoding field shows UTF8 for this database. Click Save. You may
close the pgAdmin tool now.
Configure the postgresql.conf and pg_hba.conf Files
Step 11
The postgresql.conf file contains the main parameters of PostgreSQL server. For successful integration with
Cisco Unified CM IM and Presence, you need to ensure that the following parameters are set as follows:
listen_addresses = ‘*’
escape_string_warning = off
standard_conforming_strings = off
Please note that, if you see a pound sign (), you will need to remove it for the parameters to be active!
listen_address: this parameter specifies what IP addresses to listen on. Asterisk (*) means all IPs.
escape_string_warning: this is Boolean parameter that is responsible to warn about backslash escapes in
ordinary string literals. When on, a warning is issued if a backslash (\) appears in an ordinary string literal ('...'
syntax) and standard_conforming_strings parameter is off. The default is on and applications that wish to use
backslash as escape should be modified to use escape string syntax (E'...'), because the default behavior of
ordinary strings is now to treat backslash as an ordinary character, per SQL standard. Cisco Unified IM and
Presence is using backslash as an escape character, therefore you need to disable this warning.
standard_conforming_strings: this is Boolean parameter that is causing '...' strings to treat backslashes literally,
as specified in the SQL standard. Beginning in PostgreSQL 9.1, the default is on (prior releases defaulted to off).
As mentioned, Cisco Unified IM and Presence is using backslash as an escape character, therefore you need to
turn off this parameter.
Navigate to C:/Program Files/PostgreSQL/10/data and edit the postgresql.conf file. Notepad++ would be the best
software to use.
Set the parameters as required. If you see a pound sign (), you will need to remove it for the commands to be
active.
Step 12
The pg_hba.conf file controls client authentication. You need to allow Cisco Unified CM IM and Presence to
connect to your newly created tcmadb database and authenticate using the tcuser credentials. Navigate to
C:/Program Files/PostgreSQL/10/data and edit the pg_hba.conf file by adding the following string:
Step 13
Restart the posgresql-x64-10 service Windows Services so that changes can take effect.
Choose Start > Windows Administrative Tools and open Services. Select the posgresql-x64-10 service and
click Restart Service.
Task 2: Add Databases in Cisco Unified Communications Manager IM and Presence
and Enable the Message Archiver Feature]
Now you need to add an external database to the IM and Presence Service configuration. You will add the
database, configure database features, and verify connectivity.
Activity
Message Archiver Feature Configuration
Step 1
On PC-1, use the Firefox browser to log in to Cisco Unified CM IM and Presence Administration and accept
any security warnings.
Step 2
Choose Messaging > External Server Setup > External Databases. Add a new database using the following
parameters:
Step 3
Once the external database is created, make sure to associate your Cisco Unified CM IM and Presence node to
the compliance node database. Choose Messaging > Compliance > Compliance Settings and click the
Message Archiver radio button. For the node hostname, ensure that you choose the created External Database
in the drop-down list.
After you’ve selected Message Archiver option and clicked Save you will see a warning message
indicating that you need to start Cisco XCP Message Archiver (MA) service and, if the MA is running,
restart XCP Router service. Don’t start/restart any of the services right now as you will do it shortly
anyway.
Step 4
Choose Diagnostics > System Troubleshooter and verify that the External Database Troubleshooter shows all
green check marks.
Step 5
Restart the Cisco XCP Router service for the message archiver feature settings to take effect.
Go to Cisco Unified IM and Presence Serviceability and choose Tools > Control Center – Network
Services. Choose the IMP-PUB.CLL-COLLAB.INTERNAL—CUCM IM and Presence server and restart the
Cisco XCP Router service. Note that restarting the Cisco XCP Router service will require network downtime.
Step 6
Start the Cisco XCP Message Archiver service.
Go to Cisco Unified IM and Presence Serviceability and choose Tools > Control Center – Feature Services.
Choose IMP-PUB.CLL-COLLAB.INTERNAL—CUCM IM and Presence as the server and start the Cisco XCP
Message Archiver service.
Step 7
After you’ve completed your configuration, Cisco Unified IM and Presence server should have connected to
database server and created set of tables in the tcmadb database. Different tables are serving different
purposes. For example, tc_rooms table is used for Persistent Chat feature, while jm table is used for Message
Archiving feature.
Return to WIN-SERVER02 to check for tables that were added to the tcmadb database. Open pgAdmin tool,
choose Servers(1) > PostgreSQL 10 > Databases > tcmadb > Schemas > public > Tables and check if you
see jm table. jm table is used to store all compliance-related information.
Verify the Message Archiver Feature
To verify message archiving, you need to start Cisco Jabber on PC-1 and PC-2, and simulate message exchange.
If your configuration is correct, you will be able to see messages in the jm table in the PostgreSQL database.
Step 8
On PC-1, start the Cisco Jabber application. Sign in using John Doe’s credentials from the Job Aid.
Step 9
On PC-2, start the Cisco Jabber application. Sign in using Jane White’s credentials from the Job Aid.
Step 10
Exchange a message between John and Jane.
Step 11
On WIN-SERVER02, return to the pgAdmin tool and check the content of the jm table. To do so, choose
Servers(1) > PostgreSQL 10 > Databases > tcmadb > Schemas > public > Tables, right-click on jm table and
choose View/Edit Data > First 100 Rows. You should see the messages between John and Jane that you just
exchanged. Scroll to the right to see the body_string column to see your actual messages.
Task 3: Configure the Persistent Chat Feature
You have configured the external database for the message archiver feature. The persistent chat feature can use
the same database, but you need to enable a few more settings.
You will enable the persistent chat feature and will explore its capabilities.
Activity
Configure the Persistent Chat Feature
Step 1
Return to Cisco Unified IM and Presence Administration and choose Messaging > Group Chat and
Persistent Chat. Set the following parameters:
In addition, ensure that you choose the created External Database in the drop-down list.
Group Chat Alias Settings: consists of a single check box that controls how system assigns chat room aliases to
nodes.
Enable Persistent Chat: here you obviously enable persistent chat feature and configure few other parameters,
such as what to archive (room joins and exits, room messages), who can create persistent chat rooms, and few
more settings.
Room Settings: here you specify how many rooms, is allowed maximum.
Member Settings: here you configure parameters related to room members, such as who can invite people into
the room.
Presence Settings: parameters related to visibility of members and administrators when in the room.
Occupancy Settings: control room occupancy, such as how many users can be in a room at one time.
Chat Message Settings: controls messaging in a room, such as who can edit room’s subject or send a private
message.
History Settings: define history parameters, such as how many messages can be retrieved from the archive.
Step 2
Because you checked the Allow only group chat system administrators to create persistent chat rooms
option, you need to define a Group Chat System Administrator who will later have the appropriate rights to create
a room. Choose Messaging > Group Chat System Administrators and add John Doe as one of the
administrators. You also need to check the Enable group chat system administrator privileges check box at
the top of the Group Chat System Administrators page.
Step 3
For changes to become active, restart the Cisco XCP Text Conference Manager and Cisco XCP Router services.
Go to Cisco Unified IM and Presence Serviceability and choose Tools > Control Center – Feature Services.
Choose IMP-PUB.CLL-COLLAB.INTERNAL—CUCM IM and Presence server and restart the Cisco XCP Text
Conference Manager service.
Go to Cisco Unified IM and Presence Serviceability and choose Tools > Control Center – Network
Services. Choose the IMP-PUB.CLL-COLLAB.INTERNAL—CUCM IM and Presence server and restart the
Cisco XCP Router service. Note that restarting the Cisco XCP Router service will require network downtime.
Verify the Persistent Chat Feature
Step 4
To test the persistent chat feature, you will need to enable it for the Cisco Jabber for Windows application. By
default, this feature is disabled in the Cisco Jabber user interface. To enable it, you need to create the jabber-
config.xml file with the configuration as outlined here. Create a file in Notepad or Notepad++ and save it on your
desktop with the name jabber-config.xml.
If you experience problems with entering double quotes ("), ensure that US English is selected as language in
Windows settings.
Step 5
After saving the file, open the XML file with a browser. It is much more readable because the tags and content
are shown in different colors now.
Step 6
Using your browser, connect to Cisco Unified Communications Manager. In Cisco Unified Operating System
Administration, choose Software Upgrades > TFTP File Management. Upload the jabber-config.xml file that
you created.
Step 7
After the upload, restart the Cisco TFTP service from Cisco Unified Serviceability.
In Cisco Unified Serviceability, choose Tools > Control Center – Feature Services, choose CUCM-
PUB.CLL-COLLAB.INTERNAL as the server, check the Cisco Tftp check box, and click Restart.
Step 8
On the Cisco Jabber on PC-1 and PC-2, click the Gear icon and choose Help > Refresh configuration. This
action will help your Cisco Jabber to quickly detect new changes and apply them. After Cisco Jabber restarts,
notice the new Chat Rooms tab. If the Chat Rooms do not appear reset Cisco Jabber.
Step 9
Click the Chat Rooms tab and click Browse Chat Rooms button. Notice that the New room button is only
available for the user John Doe. Do you know why?
John’s Jabber:
Jane’s Jabber:
You can see the New room button only for John, because you enabled him as the only group chat system
administrator.
Step 10
Create one public room called HR. Invite Jane to participate and exchange a few messages.
Step 11
Now remove Jane from the room and set the room password as C0ll@B from the gear icon at the top of the
screen.
Click the Gear icon at the top of the screen to edit the room settings.
Step 12
On PC-2, go to the My rooms tab and try to enter the HR room. You should be asked for a password to enter.
Enter C0ll@B and you will be added.
Step 13
Feel free to create more rooms using different settings. You can also play with other features such as mentions
or filters.
Step 14
Return to the pgAdmin tool and check the content of the tc_rooms table of the tcmadb database. You will see
that the HR persistent room is saved in a database.