Jingle branch

From PsiWiki

Contents

Overview

This is a temporary page, dedicated to helping those people who want to try out the experimental Jingle library support before it's stable/released. There used to be Psi-Jingle branch, but as Kev said, an updated version of Jingle library is now in Psi mainline. Also, Remko notes that mainline Jingle works with Mac OSX. Take this into account when reading the information below...

For details, please see Kev's Blog for the official announcement of the (now non-existant) Psi-Jingle branch.

In summary: Jingle is the new Voice Call protocol for Jabber, the specification of Google Talk's voice protocol. Google released a library that implements the Jingle protocol, and Kev and Remko have interfaced this with Psi, creating a Psi-Jingle branch which was for preview use.

Discussion about Jingle support in Psi can be found in one of Psi Forums.

Current Status

  • Psi - Psi calling using the Speex codec : Working
  • Psi - Google Talk calling : Working
  • Psi - call example : Previously working, not recently tested
  • Psi - Kopete calling : Reported to work
  • Psi - other Jingle client :


Does anyone know of another Jingle client? I suspect GAIM will be out very soon indeed.
Tapiocaui is another.
Landell is related to Tapiocaui.
Jabbin appears to be, but is in fact the Psi jingle code rebadged.
Coccinella is another Client that supports audio communication via jingle.
Freetalk is a console based jabber client. Latest developer release supports Jingle.

The call example is sample code shipped with libjingle. Actually Psi can connect to it, but never will, because it doesn't report jingle as a feature in Entity Capabilities. call should connect to Psi fine though.

The Psi-Google Talk calls previously dropped after 15 seconds because GT expects <iq> stanzas replies, which Psi didn't. It now does.

Development can be followed using Darcs Web Interface: Psi Branch (RSS Feed).

Getting Started

First: get the source from our http://dev.psi-im.org/darcs/psi Darcs repository. Details on using Darcs can be found in the wiki at Darcs Instructions


Mac OS X

Works with portaudio and the same configuration as Linux, more or less.

Windows

This has not been attempted yet.

Linux

Required development packages in addition to the normal build environment (Qt4) are:

On some Linux distributions, the supplied packages are sufficient to compile the psi-jingle branch, on others not. Debian unstable seems ok, Fedora Core4 will require a source install of the latest ortp and speex bundles, Gentoo will need a manual install have overlay QCA 2.0-beta ebuild (Qt Cryptographic Architecture).

 ./configure --help

will show all available configure parameters, a typical line on FC4, with self-compiled Speex and oRTP, without iLBC support looks like this:

 ./configure --with-glib-inc=/usr/include/glib-2.0 \
 --with-glibconfig-inc=/usr/lib/glib-2.0/include/ \
 --with-ortp-lib=/usr/local/lib/ --with-ortp-inc=/usr/local/include/ortp/ \
 --with-speex-inc=/usr/local/include/speex/ --with-speex-lib=/usr/local/lib \
 --enable-jingle

note that it is absolutely vital that your configure line includes

 --enable-jingle

and that configure finds all the libraries it needs for jingle.

TODO: needs to be updated to qt4 environment: Build Instructions Qt4

As always for a Psi compile you will need:

  • build-essiential
  • qt3-dev-tools
  • qt3-mt-dev
Debian Testing/Unstable

The following packages are required to compile psi-jingle support in debian:

  • build-essential
  • qt3-dev-tools
  • libqt3-mt
  • libqt3-mt-dev
  • libspeex-dev
  • libspeex1
  • libexpat1
  • libexpat1-dev

The available versions of the following packages in testing and unstable are too new and don't work - you must install these older versions (after uninstalling the newer versions if they're installed):

with all these packages installed, and the psi-jingle branch code downloaded as described above, you should be able to use the following command to compile it:

 ./configure --enable-jingle --prefix=/usr


For Debian -- [1]

Links

The following links were added to the wiki by contributers; please note that these aren't official builds and I do not recommend non-development savvy people run psi-jingle until it's more stable (at which point it'll be ported to the mainline branch of Psi). (--Kev)

Known Bugs

  • Calls from clients with broken implementation can cause Psi to freeze.
  • If you cancel a call with another party before they answer, and then start another call, Psi freezes.

Should be fixed by the "Fixed crash in ~LinphoneMediaChannel" and "Fix freeze in LinphoneMediaChannel dtor" patches in Update: Fixed freeze in Jingle branch