jitsi

This is an old revision of the document!


Jitsi on FreeBSD

Jitsi is an open source VoIP and IM application. It supports several popular protocols (most notable SIP and XMPP), and offers encrypted chat (OTR) and encrypted voice and video calls (SRTP/ZRTP). It is mostly written in Java (Swing for the GUI also) with some parts written in C because it uses a plethora of third-party libraries in order to be multiplatform (when Java fails, the third-party libraries come to the front).

The purpose of this page is to serve as a starting and coordination point for anyone that wants to help in the better integration of Jitsi on FreeBSD. Throughout the years, the Jitsi mailing lists have received emails from several people about trying to port Jitsi on FreeBSD with working audio/video calls, but as far as I know, it did not end well.

At the moment (2013-Aug-13), on the Ports tree there is an outdated version of Jitsi (1.1). The updated version (2.2 - latest stable version) exists as a PR in GNATS (http://www.freebsd.org/cgi/query-pr.cgi?pr=181115).

However, the new version (2.2) that will be available soon in the Ports tree, does not solve any of the existing problems. The current problems are:

  • No Audio System available (Jitsi→Tools→Options→Audio→Audio System)
  • No Camera available (Jitsi→Tools→Options→Video→Camera)

I think that this is the issue with the highest priority. If we fix the audio, probably we will be able to make encrypted voice calls - one of the most useful feature in my opinion. Jitsi offers more than one audio systems. For example, in a Debian GNU/Linux amd64 system, Jitsi offers 2 audio systems: PulseAudio and PortAudio. In a Windows 7 system it also offers WASAPI (Windows only). In FreeBSD we currently have none, but I think that we can use PortAudio. The reason that the number of audio systems differs from one platform to another, is that in lib/native directory of the source of Jitsi, there are directories for every platform (i.e. freebsd, freebsd-64, linux, linux-64, mac, solaris, solaris-sparc, windows, windows-64). Every platform has a different number of libraries inside. For example, freebsd and freebsd-64 lacks of any library related with an audio system whereas the linux directories have both the libjnportaudio.so and the libjnpulseaudio.so. Now, if you are in a Debian amd64 system running Jitsi from source, and you remove the libjnportaudio.so library from the linux-64 directory, you won't be able to have the PortAudio option in the available audio systems of Jitsi.

So there are 2 options (that I can see):

  1. Build a native libjnportaudio.so for FreeBSD
  2. Use the libjnportaudio.so of Linux in FreeBSD using the linuxulator

At the moment I am experimenting with the first option. In order to build the libjnportaudio.so library, you have to download the source of libjitsi (https://jitsi.org/Projects/LibJitsi). Then, the procedure can be summarized in the following steps:

  1. Download the hotplug branch of PortAudio (check src/native/portaudio/README), patch it with the src/native/portaudio/portaudio-hotplug-os.patch, configure and make.
  2. Download the latest source of speex, configure and make.
  3. In the root directory of libjitsi (ls: lib, src, build.xml) invoke ant with the following parameters: ant -Dportaudio=/path/to/portaudio/source -Dspeex=/path/to/speex/source portaudio

If you follow the above procedure in an officially Jitsi supported platform (ex. Debian GNU/Linux), the chances are that you will end up with a libjnportaudio.so file.

  • jitsi.1376416537.txt.gz
  • Last modified: 2013/08/13 17:55
  • by TzanetosBalitsaris