The cutejim Project : Manual

[ Up ]

[ CuteJim Home | Download | Manual ]

[Note] : These screenshots are from the lightweight version of CuteJim! Heavyweight version has exactly the same functionality and very similar gui, so there is no reason to writting 2 manual pages!

About the Manual :

  This is a short manual showing some of cutejim functionality you need to know in order to effectively use the program. It is separated into small sections each explaining briefly a specific topic. For each topic many screenshots are provided to make it easier for you to understand the topic by explaining what each screenshot is about.
  To further explain the topics as a whole, a scenario is rolled out while moving from one topic to the next. The scenario is a simple showcase of what may happen when online with jabber. The scenario assumes that I log as perak in jabber to chat with my friend xarhs who logs in jabber using cutejim too!

Section 1 : Creating Jabber Accounts:

  In this section the first scene of the scenario takes place, in which perak creates a new account into a Jabber server (localhost). Suppose the same scene takes place for xarhs too, who also creates a xarhs account, in the same server (localhost). Of course localhost is my private jabber server and is used here, for shake of this scenario. In the true world, perak could have registered in jabber.org, while xarhs in jabber.com server respectively. It is exactly the same thing.

Creating an Account :



Figure 1.1Figure 1.2Figure 1.3Figure 1.4

  The 4 figures above are explained in the following 4 lines :
  1. User perak runs cutejim. It is the 1st time, so cutejim will complain it can't find any accounts. perak presses OK to continue! (Figure 1.1)
  2. perak does : Actions->Connect as shown in Figure 1.2
  3. Login Dialog is shown, with an empty list of accounts (Figure 1.3). perak presses New to create a new account.
  4. Login Dialog will stretch down and perak fills in the new account information. Perak fills in the name for the new account, the login and password, and chooses the server to create the account to (localhost), from a list of public jabber servers (as shown in Figure 1.4). Localhost is included only in the debug version of cutejim. You will have to choose another server from the list, like jabber.org, for example. By the time perak presses New cutejim will connect to the jabber server and request that new account. This may take a while. The account will be added to Accounts list only after it is succesfully created in the server (Otherwise, a Message explaining the failure will be shown)

User's JID

Every jabber user has a unique Jabber Identification called JID, which has the form : LoginName@Server/Resource.
resource is a property which usually indicates one of the following : Cutejim uses a standard resource name (cutejim-pjae). So now, perak's JID will be : perak@localhost/cutejim-pjae. Resource as a jabber feature, is very useful, because among others, it allows a user to concurrently keep more that one open sessions to a jabber server.

Section 2 : Logging in Jabber:

  In this section perak logs into jabber server

Figure 2.1Figure 2.2Figure 2.3

  1. Account perak has been just added to accounts lists, now (Figure 2.1). Now perak presses Login to log using the perak account he just created.
  2. It is the 1st time he logs with this account so his roster will be empty, so cutejim will popup a Warning Dialog (Figure 2.2)
  3. Here is perak's empty roster (Figure 2.3)
Note : Also suppose xarhs does the same thing (logs in using xarhs account created in Section 1 above)

What is roster??

Roster is a list (usually visualized as a tree) of other jabber users, a user has a potential presence relation with. These jabber users (called buddies) are usually organized into groups. Each buddy is identified in the roster by a name called nick name, which usually is the login name of the buddy (although this is not mandatory) and information about his presence (online, offline, etc) which is denoted by a color lamp icon in the left of user's name. The lamp icon has a color depending on buddy's status :
offline (not available)
online (available)
available for chat
away
extended away
do not disturb


By looking at the roster we are able to indicate who of our buddies are online (logged in jabber) and what their online status is (are they online/away etc).
An example of a roster is shown in Figure 2.4 (all user's online status is offline)

Figure 2.4Figure 2.5
Note : Once you have established a presence relation with another jabber user you get information about his his online status. You may have another jabber user in your roster, but he may not allow you to get his presence information. If this happens you also get a gray lamp.

Once you have logged in jabber you can set your online status, so other jabber users who are subscribed to your presence can see your online status in their roster. To set your online status do : Actions->Set Status->Status Indication, as shown in Figure 2.5 above.

Section 3 : Manually Adding users to roster :

  Populating the roster with new buddies is an essential functionality of a IM program. In this section we will see how this can be done according to the next scenario scene, in which perak will now try to add xarhs in his roster :

Figure 3.1Figure 3.2Figure 3.3Figure 3.4

The 4 figures above are explained in the following 4 lines :
  1. As shown in Figure 3.1 perak selects Roster Add User from Action menu. This will create a Wizard to guide him to add xarhs to his roster.
  2. Because perak knows xarh's information (JID) he chooses 1st option (Figure 3.2) and presses Next button.
  3. perak fills in all elements in the form. First perak fills in User's Info Panel (Xarh's JID is xarhs/localhost). Then he fills in Roster Info panel. He selects to add xarhs to friends group(will be created) with nick name also xarhs. After filling all data perak clicks Finish button.
  4. The roster (shown in Figure 3.4) now includes a (potential) buddy called xarhs in group friends. Because xarhs hasn't yet got perak's request to subribe to his presence, the lamp icon is gray.

Section 4 : Accepting/Rejecting subscription requests :

  As we saw above perak added xarhs to roster but he doesn't yet gets his presence. Adding a user to roster means you try to subscribe to that user's presence. The other user will receive a subscription request from you as soon as he gets online and will either accept or reject your request. If he accepts you will always receive his presence, else you will just have passively added him to your roster as you would with an email address(unless you try resubscribe some times and he eventually accepts the subscription request).
  We will now see the next scene of our scenario, in which xarhs will accept perak's request to add him to his roster :

Figure 4.1Figure 4.2Figure 4.3

The 3 figures above are explained in the following 3 lines :
  1. As shown in Figure 4.1, immediately after xarhs logs in jabber, a dialog asking him to accept/reject perak's request is shown. Xarhs would be very glad to allow his old classmate receive his presence, so he clicks the accept button.
  2. Now perak sees that his request to add xarhs to his roster was accepted (Figure 4.2)
  3. Now as depicted in Figure 4.3, perak indeed gets xarhs' presence (yellow lamp icon)!.
Now as far as perak is concerned, xarhs has been turned from a potential(as being before accepting the subscription request) to a real buddy.

The reciprocal process can now also take place (xarhs to add perak to his roster too) :

Figure 4.4Figure 4.5Figure 4.6Figure 4.7


  1. Now, that xarhs is added to perak's roster cutejim asks xarhs if he want to do the same too(subscribe to perak's presence) (Figure 4.4)
  2. Perak gets a subscription request from xarhs (Figure 4.5), and acceps
  3. Now xarhs sees that his request to add perak to his roster was accepted (Figure 4.6)
  4. Now as depicted in Figure 4.7, xarhs indeed gets perak's presence too! (yellow lamp icon).


Thats it! They are both happy now!

Section 5 : Talking to a buddy :

  To talk to a buddy you just have to double click him on the roster. For example for perak to talk to xarhs he just needs to double-click on the xarhs item (see Figure 5.1). Then a chat window will pop-up, containing 2 text areas (as shown in Figure 5.2). You just write your messages in the bottom text area and click the Send button to send the message. The upper text area is used to display messages you have sent as well messages your buddy has sent to you. For each chat session a new chat window is used with a caption of the chatter JID and an icon indicating the status of the chatter.
A chat session can be accessed through View Menu as shown in Figure 5.3 PerakToChatXarhs.png PerakMessageToXarhs.png XarhsMessageToPerak.png

th>Figure 5.4
Figure 5.1Figure 5.2Figure 5.3

Here is the explanation for Figures 5.1-5.4 : Note : Cutejim cleverly supports subscribing to a user if you get a message from him, and he is NOT already in your roster! (and the other way arround). The process is very similar to that described in Section 4 :

OK, here ends the scenario of perak-xarhs chat! In next section i will talk about an advanced version of adding a user to roster, by searching JUD

Section 6 : Adding a user to roster by searching JUD

In Section 4, i described how to manually add a user to your roster once you know his JID. What if you don't know his JID? Many jabber servers can search to one more repositories of Jabber User Directories(JUds), to find a jabber user matching criteria like his name, email, etc. This is the process i will describe here (I know use my acount at jabber.org which has big JUD, not localhost):

th>Figure 6.4
Figure 6.1Figure 6.2Figure 6.3
  1. I am already logged to jabber.org and select Actions->Add User (Figure 6.1)
  2. The Wizard is shown and i would like to search, so i press the 2nd option. Jabber User Directory is enabled (More than JUDs may be available). I press Next (Figure 6.2).
  3. Cutejim fetches the search form from the server and displays it. I want to find people with last name containing opoulos. I press Next (Figure 6.3).
  4. Cutejim fetches the JUD entries found and displays them in a List having 4 columns : nick name, first and last name and email (Figure 6.4)


Figure 6.5Figure 6.6Figure 6.7Figure 6.8
  1. I can scroll to the end of the List and select the user. I decide to add Koukopoulos to the roster. I press Next (Figure 6.5)
  2. I fill in Roster Info panel entries. I want user swan to be put in opouloi and kritikoi folders (Figure 6.6)
  3. swan in kritikoi folder (Figure 6.7)
  4. swan in opouloi folder (Figure 6.8)

Manolis Perakakis <>
Last modified: Tue Nov 19 20:23:32 GMT-5 2002