Messaging & Chatting

Since the first instant messaging client, there have been numerous ways to send and receive messages with other users. Two distinct interfaces have been developed for one-on-one communication, and nearly all commercial and open source clients now adhere to these two "standards." For group communication, a style similar to GUI IRC chat has developed.

Encrypted Messages

Through the use of GnuPG, a free software replacement for PGP, Gabber can send and receive encrypted messages with other Jabber clients capable of message encryption. Before being able to use encryption, GnuPG must already be configured and a public key must already be sent to a public key repository. Refer to GnuPG's web site for complete information about this process.

To start using encryption, it must be enabled on the Encryption tab in the Preferences dialog. After selecting a secret key to use, apply the changes and close the dialog. The passphrase will then be requested for the key. After receiving the correct passphrase, Gabber will notify users on the roster that encrypted messages can be sent and received.

The option to send encrypted messages is given on each message dialog. If an incoming message or conversation is encrypted, a locked padlock will be shown. Otherwise, an unlocked padlock will be shown in the dialog.

Message Queueing

By default all messages are queued in Gabber's spool. This means that the message will not automatically show on screen but will instead wait to be opened. If Gabber is closed before messages are viewed, it will store them until the next time Gabber is run. When a new message is received from a user on the roster, the user's name will flash with an alternate color and the status icon will change to a flashing message. To access the message, just double click the user. If the group the user is in is not expanded, the group name will flash. In addition to roster visual notifications, the GNOME status docklet icon will indicate a new message. Double click the icon and the new message will be viewable.

Customization of queueing behaviour is available from the Messages Preferences.

Normal Messages

The most common format is modeled after Mirabilis ICQ's send and receive dialogs. This format is similar to email messages in that the entire converstation is not contained (or shown) within a window, but only the current message.

Sending a New Message

To send a normal message to a user in Gabber, right click on a user in the roster and select Message. A Send Message dialog appears (shown in Figure 4) for the user to type a message.

Figure 4. Send Message

Responding to Messages

When a normal message is received, a new window will be created to contain the received message and a text entry box for the user to input a response. If more messages are received from the same person, the Read Next button will become active to allow the user to view the next received message. To turn display of received messages off, simply toggle the Received Message button on the message toolbar. After typing a message into the Reply to: entry box, simply click Send to send the message. If the Don't close this dialog button on the toolbar is toggled, the message will be sent and the message entry dialog box will be cleared for a new message. If the option is not toggled, the dialog will then close and any unviewed messages will be lost.

Options

Gabber provides several options when sending a normal message. These options are available via the simple toolbar at the top of each normal message. The following options are available (some options are only available when responding to a message):

  • Quote Received Message in Reply - Copies the received message into the send message text box for editing.

  • Send as One-on-One Chat - Specifies that upon receiving a response from the receiver, Gabber should load the rest of the conversation in a One-on-One chat.

  • Encrypt this message - If encryption is configured and enabled properly, this option will be available to allow the message to be encrypted. If the receipient does not have a public key, Gabber will respond with an error and ask if it is acceptable to send the message without encryption.

  • Don't close this dialog - After sending the current message, Gabber will clear the text and allow for a new message to be entered from the same dialog.

  • Show/Hide Advanced Options - Toggles viewing of more advanced options.

  • Show/Hide Received Message - Toggles viewing of received message.

  • Add this User to Roster - Loads the Add User dialog to add the current user to the roster.

  • View User Information - Loads the View User Information and queries the server for this user's information.

  • This User's Message History - Loads the history dialog with the complete message history of this user.

One-on-One Chats

Another popular format for sending and receiving messages is styled after America Online's Instant Messenger. One window is loaded with the entire conversation contained in the window. The window contains one main area for the conversation, different options for sending a message may be shown and a small input line for entering the messages is at the bottom of the window. Each message is prepended with the author's user name in brackets (<>).

To start a one-one-one chat with a user in the roster, right click on their name and select One-on-One Chat. Once the One-on-One window is loaded, simply type a message in the lower entry box and press Enter. Messages that the user sends will be prepended with the user name and messages from the other user will be prepended with their nickname.

Figure 5. One-on-One Chat

Options

Like normal messages, one-on-one chats have several options available from a toolbar along the top of the chat window. The following options are available:

  • Send as Normal Message - If enabled, messages sent to the user are sent as normal messages. This is useful, for instance, to gain the receiver's attention since the message will probably appear in front of any other windows that are open on their desktop.

  • Encrypt this message - Similarly to normal message encryption, if encryption is configured and enabled properly, this option will be available to allow the conversation to be encrypted. If the receipient does not have a public key, Gabber will respond with an error and ask if it is acceptable to send the message without encryption.

  • Add this User to Roster - Loads the Add User dialog to add the current user to the roster.

  • View User Information - Loads the View User Information dialog and queries the server for this user's information.

  • This User's Message History - Loads the history dialog to view the entire history of messages with this user.

  • Close Dialog - Closes the current conversation.

Group Chats

Joining a Group Chat

Upon initiating Group Chat from the Services menu, the Join Group Chat dialog will load for the user to fill in the required group chat information. After filling in the desired information, click Join Room to join the discussion.

Jabber Group Chat

To join a Jabber group chat the room and the group chat server. Jabber.org runs a public group chat server at conference.jabber.org. The protocol should be set to "Jabber Group Chat".

NoteJabber Group Chat Backlog
 

The Jabber group chat server will send the last 20 messages that were sent in the room to any users joining. This is a highly useful feature that allows new joiners to see what is being discussed instead of just being thrown right into the conversation.

IRC

To join an Internet Relay Chat (IRC) channel, set the server to "irc.jabber.org", change the protocol to "IRC" and set the IRC server to whichever IRC server is desired. The channel name must be prefixed with an ampersand (&) or a hash (#).

As an example, to join the main GNOME IRC channel with Gabber, enter "#gnome" for the room, enter "irc.jabber.org" for the server, change the protocol to "IRC" and input "irc.gimp.net" in the IRC server field.

The Main Attraction

After logging into group chat, the main Group Chat window is shown. Along the top is the toolbar with various commands to manipulate the group chat. In the center of the window, there are two text areas. The left text box is the main chat area where all the messages are passed back and forth among the chat members. To the right of that area is the list of current participants in the chat and their current status. To change the status of the user in the group chat session, simply select the desired state from the drop down box beneath the list of group chat participants. On the bottom left is an input text box where the user can type messages. After pressing Enter, the message will be sent to all the participants and will appear in the main chat box.

Group Chat Toolbar

  • Show/Hide Users in Group - Allows the side panel of group chat participants to be toggled on and off.

  • This Group's Message History - Loads the history dialog to view the entire history of messages with this group.

  • Close Dialog - Closes the current conversation and exits from the group chat.

Subject

To change the subject (or topic) of the current group, type or edit the subject in the Subject: text box and press the Enter key.

Jabber Message Rules

Unique to Jabber is the ability to setup message rules. Message rules allow incoming messages to be handled differently based upon criteria such as current presence status; message type; incoming message type, subject, sender or receiver. The current interface in Gabber for message rule editing is designed for quick editing and is not the final interface for rule editing. To access the Jabber Message Rules List dialog, select Jabber Message Rules... from the Services menu.

The Jabber Message Rules List dialog is largely self-explanatory. A rule is listed by an arbitrary title in the main list and can be set to a higher or lower priority with the Up and Down buttons. A rule can be edited or removed with the Edit... and Remove buttons. Since the edit rule dialog is the same as the add rule dialog, it will not be explained. After all edits to the rules are completed (including adding, removing and changing the priority), click the Save Changes button and then close the dialog.

Jabber Message Rules are stored on the server and are processed entirely by the server. Because of this, a Jabber client does not need to support Jabber Message Rules to be affected by them. Also, some rules will be processed even while the user is not connected to the Jabber server.

Adding a Jabber Message Rule

To add a new rule, click the Add... button on the Jabber Message Rules List to bring up the Add a Jabber Message Rule dialog. First, enter a unique identifing name for the rule in the rule name text box. Then add at least one condition for the rule to be enacted upon by clicking the Add button in the Condition area. A blank condition will appear to allow editing or removal. Simply set the drop down box to the desired condition and if necessary, type a string in the text box next to the selection box. For instance, if the rule is "If the message is from..." then the user's JID (e.g., user@host) would be typed in the text box.

The following is a current list of options for "my status is..." and "the message type is..." These are actual pieces of the Jabber protocol and must be entered exactly as shown.

Status Types

away

Away

chat

Chatty

xa

Not Available

dnd

Do Not Disturb

Message Types

normal

A "normal" message, see the section called Normal Messages.

chat

An One-on-One chat message, see the section called One-on-One Chats.

groupchat

A groupchat message, see the section called Group Chats.

headline

A headline message. There is not currently an interface in Gabber to handle headline messages properly.

After selecting at least one condition for the rule to be acted upon (more than one condition can be specified), actions can be added. Adding an action works the same way as adding a condition. Message types are the same as above and when forwarding a message, a valid JID must be entered. Again, multiple actions may be entered.

To remove any condition or action, simply click the Remove button to the right of the condition or action.