Video streaming using Jingle library

Programming 9 Comments »

We’ve implemented the Smack API provided by Ignite Realtime which integrates a Java version of Google’s C++ Jingle library. The audio sessions over XMPP works almost out of the box using Jingle. As we needed video integration in one of our university project, we considered developing additional classes to support video format. After some nice hours of coding, we now have successfully accomplished this duty and we can post the source here with informations on how to get video working.

So here are the general steps to take to get a video session established between two parties. Please note that the way the libraries do not currently allow a simultaneous video and audio session. We might work on that in the next days.

1 - You need a XMPP server. Unfortunately, there are some differences in the Jingle integration of Google and Ignite Realtime. While we are able to connect to the GTalk server using Smack API, it is not possible to directly use Smack’s Jingle to create audio-video sessions with other GTalk users. The best thing is to use Ignitime Realtime’s Openfire application.

2 - Create users and add manage their rosters. Once the server is up, add several users via the web administration interface (http://localhost:9090). Then, the best thing is to use a XMPP client such as Ignite Realtime’s Spark application and add the users you want to be able to communicate with.

3 - Open Eclipse and get projects to compile. While this can seem quite easy for some people, it can be very painful for others. You will need 2 projects in your Eclipse workspace: the Jingle project available from a subdirectory in the Smack library and the project provided here. Both projects need a reference to smack.jar and smackx.jar. Jingle will also need to have all the jars in it’s /lib and /build/merge.

4 - Install JMF (link), open the JMF registry editor application once the installation complete. You will then have to hit detect devices to have any usb webcam found. Unfortunately for mac users, it seems like the iSight camera doesn’t get detected by the application. We have used a regular USB logitech camera for our successful tests.

5 - You will need two computers, one to act as a client and one as a server. The AVManager class has can be run has an application. The server waits for an XMPP Jingle session request while the client immediately tries to establish a connection with the first available contact on it’s roster.

Download files:
Video Jinglle Library
replace your /jingle/source/org/jivesoftware/smackx/jingle/mediaimpl/jmf
from the Smack’s 3.0.4+ source code.

CommClient project

Gizmo on S60 devices - SIP for Nokia handsets

Nokia E61 No Comments »

While there are currently some previews of Netgear’s V2 Skype handset, Nokia labs released a first version of a Gizmo client for all S60 series devices. The software allows SIP communication through Gizmo-Project’s servers. The advantage of SIP over Skype is quite simple: proprietary protocols vs public ! SIP is a communication standard that is now widespread and allows intercommunication between any SIP server. Moreover, some PBXes also support this protocol (see Asterisk).

Many probably wonder what’s the use of a SIP/Skype client on a cellphone. Well, first it gives you the opportunity to have better best international call rates than what your provider offers. The E61/E61i devices have an integrated wifi card that allows you to place calls as if you were on a computer. You can place calls for free to your other online contacts and benefit from the fast connections offered by the wifi technology. The current issue with wifi is it’s limit in distance, you need to constantly be close to the emitter which gives less flexibility than the cellular networks. Eventually, we can expect that the MAN (metropolitan area network) will give an excellent urban coverage and that wifi cellphones will overpass regular cellphone networks. We will then have inexpensive devices/plans because of SIP and the strong competition in this area.

Get Gizmo for your S60 device here

Standby on a Dell Inspiron 9400/E1505 - fglrx 8.36.5 + beryl + Ubuntu feisty 7.04

Linux 3 Comments »

A few posts have been written already on how to get standby to work properly on a Dell inspiron 9400/E1505. I did manage to get this working quite rapidly by fixing three values in the /etc/default/acpi-support file.

vi /etc/default/acpi-support

find and change values of:

SAVE_VBE_STATE=true
POST_VIDEO=false
USE_DPMS=true

you can also try to add “fglrx” in the MODULES_WHITELIST list.

Here is the final result of that file.

Read the rest of this entry »

Guide to compiling LibJingle 0.4.0

Projects, Programming 1 Comment »

Yesterday I had to find a way to compile libjingle for an eventual use in our university project. So here are a few of the requirements needed to build libjingle and then execute the few examples included in the library. The distro used to compile libjingle is Ubuntu Feisty 7.04.
First you need to install these libraries from the Synaptic Package Manager :

  • build-essential
  • libspeex-dev
  • libspeex1
  • libexpat1
  • libexpat1-dev
  • libssl-dev
  • openssl

There are probably a few other libraries missing from the list above, you only need

  • Speex 1.1.11.1
  • oRTP 0.7.1 (warning only this version is proven to work)
  • gcc 4.0.x (I had infinite issues with gcc 3.4.0 and 4.1.0), refer to this post for a post that gives directions on how to install a version of gcc not included in Synpatic. One example is e.g: ./configure –target=i686-pc-linux-gnu-gcc –enable-languages=c,c++
  • iLBC is included in this file, extract the included ilbc-rfc3951.tar.gz, configure it, make it, install it
  • LibJingle 0.4.0

LibJingle can be configure using the parameter –with-ilbc=/usr/local/
You should then be able to make libjingle.
Finally, you can execute the application call in the subfolder talk/examples/call which allows to make a vocal connection with other google talk users.

Good Luck ! If you are running in any problem, make sure you have the listed versions of the files written above.

E61i, update to E61

Interests No Comments »

Well, here it is, after a few months of speculation, the Nokia E61i has finally out been announced at Barcelona’s 3GSM event on Febuary 12th 2007. You can access Nokia’s Press release here, or view the device’s page here. Principal feature is a camera on the device’s back and a new joystick that differs from the previous E61 model.
Read more via Engadget.