I ran into an interesting issue onsite with a customer recently. They have Group Chat 2010 deployed for their users and one of the users reported that they were not able to see messages or participate in a particular chat room. Other users in that chat room were able to view the messages and participate in the chat room just fine. The issue was specific to that user and followed that user. If they signed into the Group Chat 2010 client on another machine, the same issue would persist there. The screenshot below shows what that user saw, or didn't see, for that chat room:
As you can see the participant list, message input area, and the actual messages are missing. When we check another chat room that the user was a member of, everything looked correct:
Also interesting was that the Show Participants and Show Message Input Area options were selected for the chat room that the user was having an issue with:
Since this issue followed the user, we needed to figure out where these settings were stored so that we could take a look at them. We figured out that the settings are actually stored in two locations. The first is on the client machine and the other location is in the Group Chat database. Both locations should contain the same exact settings. You can check the client by looking here:
C:\Users\<username>\AppData\Roaming\Microsoft\Group Chat\Group Chat Client\Preferences\<user sip address>
In this folder you will find a bunch of files. For this issue we need to look in the GroupChannels file. This file contains all of the settings for the chat rooms the user has joined:
There is also a GroupChannels.serverstatus file. If you open this file you will see something similar to:
<?xml version="1.0" encoding="utf-8"?>
<ServerStatusRecord xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
This file contains the sequence id, basically the version of the settings, and whether or not they've been synced with the Group Chat Server. To check whether or not the Group Chat Server contains the same settings you will need to run a SQL query* against the Group Chat database:
WHERE [prefLabel] like 'sip:wcooper%'
ORDER BY [prefLabel]
This will return results similar to:
Note: The prefSeqID value may not be the same for every file. Not all of the settings update every time.
As you can see, the prefSeqID for GroupChannels matches the SeqId in the GroupChannels.serverstatus file. This means that the server contains the same settings as the client, so the user's issue isn't a case of the settings being out of sync with the Group Chat Server. The next thing to take a look at are the settings that control the participant list and the message input area. You won't be able to look at these settings in the database, as the data isn't easily readable. However, since the client and server are in sync, looking at the GroupChannels file will tell us what we need to know:
Note: You may need to click on the image above in order to read the text.
If you scroll through the file, you will see that there are a list of settings for each chat room that the user has joined. We need to figure out which list of settings pertains to the chat room the user is having an issue with. You can find a list of chat rooms and their GUID by running the follow SQL query* against the Group Chat database:
ORDER BY nodeName
This will return results similar to:
As you can see from the screenshot above, the Operations chat room, which is the chat room the user is having issues with, has a GUID of 65419d20-2419-45b5-b054-bcd87e1d6c3e. In the GroupChannels file if you search for the GUID, you will be returned a match similar to:
<member name="_key_" type="S.String" value="ma-chan://test.deitterick.com/65419d20-2419-45b5-b054-bcd87e1d6c3e" />
This is the beginning of that chat room's list of settings. Now that we have found the list of settings pertaining to the chat room we were looking for, the specific settings and values to look for are:
<member name="showParticipantListPanel" type="S.Boolean" value="True" />
<member name="participantListPanelWidth" type="S.Int32" value="65535" />
<member name="inputBoxHeight" type="S.Int32" value="65535" />
<member name="showInputBox" type="S.Boolean" value="True" />
As you can see, while both showParticipantListPanel and showInputBox are set to True, participantListPanelWidth and inputBoxHeight are set to really large values. What is essentially happening is that the participant list and message input area are hiding the conversations. To fix this we just needed to set the values to something more reasonable:
<member name="participantListPanelWidth" type="S.Int32" value="90" />
<member name="inputBoxHeight" type="S.Int32" value="90" />
The Group Chat client needs to be closed when you save the file, otherwise the settings will be overwritten. Once you save the file and launch the Group Chat 2010 client again, the user should now be able to see everything in the chat room:
*These queries are provided for you to use at your own risk. Please make sure you test before running in a production environment.