Codebase list ktp-call-ui / upstream/0.4.0
upstream/0.4.0

Tree @upstream/0.4.0 (Download .tar.gz)

0. About KCall
--------------

KCall is a GUI VoIP client software which uses the telepathy framework underneath.
You can find the latest version of KCall at the kde svn:
HTTP URL: http://websvn.kde.org/trunk/playground/network/kcall/
SVN URL: svn://anonsvn.kde.org/home/kde/trunk/playground/network/kcall/

1. Dependencies
---------------

For compiling KCall, you will need the following development software:

- Qt developement headers and tools (version 4.5.0 or later)
- kdelibs developement headers and tools (version 4.3.74 or later)
- telepathy-qt4 0.1.8 or later with telepathy-qt4-farsight compiled (requires telepathy-farsight)
- telepathy-farsight
- GStreamer 0.10 (version 0.10.23 or later)
- GLib/GObject
- telepathy-glib headers (required by telepathy-farsight)
- libxml2 headers (required by gstreamer)

At runtime, you will also need the following:

- telepathy-mission-control (version 5.1.0 or later)
- telepathy-gabble
- gstreamer-plugins-base and gstreamer-plugins-good (also recommended are gstreamer-plugins-bad)
- optionally, telepathy-accounts-kcm, for configuring accounts
  (svn://anonsvn.kde.org/home/kde/trunk/playground/network/telepathy-accounts-kcm)

2. Compilation
--------------

KCall uses cmake as its build system, like the rest of KDE.
If you haven't used cmake in the past, here is a simple usage example:

$ cd path/to/kcall/source
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/path/to/installation/prefix ..
$ make
$ sudo make install

3. Explanation of the various executables
-----------------------------------------

In the telepathy framework, every part of an IM/VoIP client is split into several processes.
Here I will explain which of those processes need to be running to use KCall and what each one does:

- telepathy-gabble: This is the jabber connection manager that will handle the network
                    communication with the jabber server and channel negotiation with other users.
                    Normally, it is auto-launched when you set your jabber account online,
                    so there is no need to worry about it.
- mission-control-5: This process implements the account manager and channel dispatcher. This must
                    be running in order to do anything with KCall. Normally this should be shipped
                    with a dbus .service file, so that it is autolaunched, however I have noticed
                    that this is not the case (yet). So, you should always launch this in the
                    background before starting KCall.
- kcall:            This process implements the main window of KCall (the contact list). This is
                    just an interface to be able to put your accounts online/offline and start calls.
                    Note that this is not required to be running in order to receive calls. If
                    your account is online, you can receive calls without having any frontend running.
                    Only mission-control-5 is required to be running for this.
- kcall_handler:    This process is the call handler. It shows a window for every call that is going
                    on and handles all the media streaming internally, using gstreamer and
                    telepathy-farsight. This process comes with a dbus .service file, so it should
                    be launched automatically when a call happens. However, if you install it in a
                    non-standard path, dbus may not be able to find the .service file, so you will
                    have to launch this process before starting or receiving a call. Also note that
                    this process quits when a call has finished, so you will have to restart it
                    in this case. If this process is not running or cannot be launched through
                    dbus service activation, you will not be able to make calls.
- kcall_approver:   This is the standard approver of kcall. When you receive an incoming call,
                    kcall_approver will be launched and will show a KNotification with options to
                    answer/reject the call. As with kcall_handler, this process comes with a .service
                    file and should be autolaunched. However, if you install it in a non-standard path,
                    you may have to launch this manually in order to have an approver. Note that if
                    an approver is not available, the call will be auto-accepted and passed to the
                    handler.

4. Configuring accounts
-----------------------

KCall is currently known to work only with Jabber (with telepathy-gabble).
SIP (with telepathy-sofiasip) also works, but it has many issues; for example, you can't make
calls to others, you can only answer calls. So, to use kcall you probably need a jabber account.
Note that gtalk/gmail accounts are also jabber accounts.

To configure your jabber account, first you need to install the telepathy-accounts-kcm.
Then follow these steps:
- Launch telepathy-mission-control-5 in the background
- Launch kcall
- Go to Settings->Configure KCall->Instant Messaging and VoIP Accounts
- Click on "Add Account"
- Select "Jabber/XMPP/Google Talk" and click next
- Enter your account information and click finish

5. Running
----------

When you open KCall you will see all your accounts in the contact list.
There are two ways to get accounts online. Either click on the master connect button, which
will attempt to put all the accounts online, or right click on an account and set its status
from the right click menu. Note that not all statuses are available on all protocols, so if you
request a status that is not available, the closest available status will be used.

Once an account is online, all the known contacts for it will be shown in the second level of
the tree, under the account. To call a contact, right click on it and select voice or video call.

You can also call contacts directly from the second tab of KCall's main window. This is useful
if you want to call a person that is not in your contact list. To call a contact using this method,
you will have to type the identifier of that contact (ex. "foobar@jabber.org"), select the account
through which the call should be made and click on one of the buttons below, depending on whether
you want an audio-only or audio/video call.

6. Known bugs
-------------

1. Sometimes video is not sent to the other side, although KCall is actually sending it. This
might be a bug in telepathy-farsight.
2. Sometimes the video widgets stuck, showing a still image and when the call finishes,
kcall_handler deadlocks.


---
George Kiagiadakis <kiagiadakis.george@gmail.com>
Last updated: 9 November 2009