[Telepathy] New Cohoba: A Beginner's guide

Raphael Slinckx raphael at slinckx.net
Fri Jul 14 18:31:33 PDT 2006


Hi !

Since I'm leaving for two weeks, and as requested by a vast number of
people on IRC (at least 1), here is my mini-howto new cohoba. Feel free
to adapt this on the wiki.

1. Install jhbuild or any other development environnement.
  I'm using:
   * the gnome-2.16 moduleset for gtk/pygtk/gnome libs
   * the dbus 0.61 source tarball
   * the Python 2.4.1 source tarball.
   * Gtk=2.10.1
   * pygtk=2.9.3
   * (all comes from cvs anyway except dbus and python)

2. Install the telepathy stack including (i'm using darcs versions.
Released versions should be ok too unless mentioned otherwise:
  * telepathy-gabble-stable
 For voip calls you need also:
  * stream-engine (you need darcs version because you need the .chandler
file installed in ~/.telepathy or /usr/share/telepathy/managers/ any
other prefix is *not* going to work)
  * farsight
  * gst-plugins-farsight for the rtp stuff and all.  (take the darcs
repo it should fix a 100% cpu hanging problem for some)
  * libjingle and sofia-sip and maybe other that are deps of these two.
(You better use libjingle from tapioca project because it actually
builds)

3. Download cohoba from the cohoba darcs repository (not the
cohoba-stable), run ./autogen.sh; make

4a. If you want to install cohoba system-wide then proceed to make
install and skip to point 5. I assume you also installed system-wide the
other telepathy components or it's not going to work anyway.

4b. If you don't want to install cohoba, create a ~/.telepathy folder
containing:
  * telepathy-gabble-stable/data/gabble.manager
  * stream-engine/data/*.chandler
  * cohoba/data/*.chandler

5. Cohoba is split in several components:
  * the Mission Control (called houston) in cohoba/houston
  * The Applet widgetry in cohoba/applet
  * The contact list library in cohoba/contacts
  * The Technobabble text and voip channel handler in
cohoba/technobabble
  * Common files which should probably one day go in a
python-telepathy-client in cohoba/common

 What happens is that houston is supposed to be always running and
handles connection/channels requests, presence requests and in general
hides the fact that there are several accounts to the clients.

 Houston is dbus-activated when any client wants to play with telepathy.

 The technobabble handler is dbus-activated when there is an incoming
text/voip channel and presents the chat window.

 The applet uses the contacts components to display and manage the
contact list with groups, presence and so on.

6. Launch (on one line each):
Gabble:
GABBLE_PERSIST=1 /path/to/telepathy-gabble-stable/src/telepathy-gabble

The stream engine:
GST_PLUGIN_PATH="$prefix/lib/gstreamer-0.10"
STREAM_ENGINE_PERSIST=1 /path/to/stream-engine/src/telepathy-stream-engine

The mission control
./cohoba-applet.py houston

The applet in a window for easy debugging
./cohoba-applet.py -w

7. Define your accounts in the mission control using applet's right
click menu (in the future this would happen also through some global
preference capplet). You can set the basic properties and also the
advanced stuff which is far from finished yet but is functional

Don't forget to enable the desired accounts

Note: The passwords are stored in plaintext in gconf for the moment.
gnome-keyring usage is planned. Passwords are removed from stdin when
dumping account saving process

8. In the applet you can set the presence with the combobox. Setting to
offline will disconnect you from all your enabled accounts (through MC).
Setting anything other than that connects all enabled accounts and sets
the given presence. You can also type a status message in the text
enttr. This whole presence handling in the applet itself is a bit
annoying and i think i'll separate it from the contacts stuff as a
separate presence applet just like the maemo does.

9. When connected you can see the account dialog being updated (colored)
you can also see a 'Uncategorized" group containing all your contacts.
You can create new groups with a name and a serie of space-separated
tabs. You can then assign groups to contacts. If a contact contains all
of the group's labels then the contact will appear in that group. (note:
the group name field when editing a contact groups serve a different
purpose: write anything in that field and the contact will be 'sticky'
or 'favorite' meaning it will always appear in the main window as
toplevel item. Leave the field blank for removing stickyness)

10. To chat/call double click on a contact, right click for other
options. Right click in a blank space to add a new buddy anywhere the
contactlist.

[Sending this in case my connection breaks, followup arrives if i still
have my connection]
Raf



More information about the Telepathy mailing list