Songs of Doom

I say, I say, I say, did you hear the one about….

December 16, 2005, 1:07 am

Subsequent to my last post about the branches of Psi we’ve been working on, I’m now delighted to announce that we’ve also been working on a third branch in the recent weeks.

The Jingle protocol (session and voice) is the culmination of months of discussion between the Google Talk team and interested parties in the JSF, which finally became standards-track yesterday. Jingle is basically the voice protocol supported by the Google Talk client.

The Google Talk team today announced the first release of a C++ library which manages the Jingle protocol. This means that other clients should be able to take this code and integrate Jingle support without coding the p2p and other details themselves.

In the last month or so, Sean Egan (one of the nice guys on the GT team (yes, they rock)) has been helping Remko and myself integrate the libjingle code in Psi ready for libjingle’s release today, meaning……voice calling for Psi. This is where a lot of Remko and my time has gone which might otherwise have been spent on visible Psi development.

Since the libjingle library has been publically released now, we are able to give a first glimpse of our Psi branch using the library.

Also included (and a necessary pre-requisite to Jingle support), this is the first time you’ve seen Psi supporting Entity Capabilites (there’s a patch that’s been circulating that we’ve noticed some unofficial builders have been including but it’s broken (hey, sometimes there’s a reason patches don’t make it into mainline ;) )). As such, if you just want to test caps, grab the repository and don’t enable jingle support when you compile. Unlike all the warnings further down the post about the stability of our interface with libjingle, the Caps support should be fine now and will be merged into mainline as soon as our rather hectic roadplan allows.

There are disclaimers:

  • This is heavily unstable software
  • This is not feature-complete
  • This voice support, which doesn’t yet work reliably, is linux-only at the moment.

The state of the code at last glance was:

  • Psi < -> Psi calling will not work. It will look like it does, but no stream will be established.
  • Psi < -> Google Talk calling will work, but will terminate a short time afterwards (20 or 30 seconds)
  • Psi < -> call calling should work ok. (call is the example command-line client in psi/third_party/libjingle/talk/examples/call. Just cd there, run qmake and then make)

So please feel free to have a play with what’s up there, and if you want to submit bug fixes, I’d be more than delighted, but don’t expect things to work properly yet.

The darcs repo is available at:
http://dev.psi-im.org/darcs/psi-jingle/

use ./configure --help to work out what you need, my line 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-ilbc-inc=/usr/local/include/ilbc/ --with-ilbc-lib=/usr/local/lib --with-speex-inc=/usr/local/include/speex/ --with-speex-lib=/user/local/lib --enable-jingle

Please note that this development is parallel to the release series until it’s stable, when we’ll merge it back in.

/K

13 Responses to “I say, I say, I say, did you hear the one about….”

Kev wrote on December 16, 2005

Configuring without ilbc now seems sufficient for PsiPsi conversation.
Further discussion is likely here: http://psi-im.org/forum/thread/3424

Nolan Eakins wrote on December 16, 2005

You forgot LinPhone. “–with-linphone-lib=/wherever”

Cath wrote on December 16, 2005

Nice one Kev :)
Good job, well done I think!

Pedro Melo wrote on December 16, 2005

YES! :)

Do you know if Remko will provide builds for Mac OS X? :))

Eager to experiment, but can’t compile it on my 800Mhz Powerbook :)

Kev wrote on December 16, 2005

[Nolan] You forgot LinPhone. “–with-linphone-lib=/wherever”
I didn’t….my configure line doesn’t need it, as it’s in a standard location :)

[Pedro]Do you know if Remko will provide builds for Mac OS X?
At the moment it’s Linux-only. Once it works on windows or Mac I’m sure we’ll provide builds :)

Mastah wrote on December 16, 2005

Compiled it for Linux amd64 on ubuntu breezy (got to take the libortp0 from debian unstable)

Only needed to change in third-party/libjingle/talk/session/phone/voicechannel.cc

void VoiceChannel::SendPacket(const void *data, unsigned int len) {
// SendPacket gets called from MediaEngine; send to socket
// MediaEngine will call us on a random thread. The Send operation on the socket is
// special in that it can handle this.
socket_->Send(static_cast(data), len);
}

to:

void VoiceChannel::SendPacket(const void *data, size_t len) {
// SendPacket gets called from MediaEngine; send to socket
// MediaEngine will call us on a random thread. The Send operation on the socket is
// special in that it can handle this.
socket_->Send(static_cast(data), (unsigned int) len);
}

Bruno Roggeri wrote on December 17, 2005

Hello,
well that’s some good news !

Does jingle support is only needed in the clients, or does server support is also required ?

(question behind the question : will VoIP work on the federated jabber network as soon as Psi will support it ? :-) )

Thanks a lot for this little surprise ! ;-)

Kev wrote on December 17, 2005

Psi already supports it, and we’ve made calls across ‘normal’ jabber servers already, no server support is required, although stun and relaying use external services which improve the chance of success :)
And you’re welcome, thank Google and Remko mostly.

UF Stuff wrote on December 17, 2005

Psi trifft Google Talk

Treffen sich beide und können sogar noch schnattern. Der funktionalität ist zwar noch nicht ganz so stabiel, aber es funktioniert zumindest schon mal prinzipiel, schreibt Kevin Smith in seinem Blog.
Gelingen konnte das ganze nur dadurch das Google eine

me wrote on December 19, 2005

how do i change the audio device to /dev/dsp1? it currently uses /dev/dsp. i tried to change DSP_NAME in osscard.c to /dev/dsp1 but this doesn’t work? maybe because i use alsa? but how do i change this for alsa?

Kev wrote on December 19, 2005

Try the following forum thread:
http://psi-im.org/forum/post/24608

goelectric wrote on March 2, 2006

“although stun and relaying use external services which improve the chance of success :)”

Does this mean if i am using a normal (not Google’s) Jabber server then I wont get the ICE benefits (STUN and Relaying) capabilities.

If so are there any Jabber servers with ICE support coming up?

Thanks

Leandro R. M. de Marco wrote on April 27, 2006

Hi.

I just saw in the Psi-jingle wiki page, that you are asking if someone knew about another jingle client.

Well, take a look at this
http://tapioca-voip.sourceforge.net/wiki/index.php/Tapioca

Bad Behavior has blocked 800 access attempts in the last 7 days.