The following review was conducted in April 2011.
Unbeknownst to many people, there are a growing number of free stand-alone VoIP clients, some of which aren’t half bad. Today I’m going to be doing an in-depth look at one of these free downloadable clients, Jitsi, which is described as an “audio/video Internet phone and instant messenger that supports some of the most popular VoIP and instant messaging protocols such as SIP, Jabber, AIM/ICQ, MSN, etc…”
The list is extensive, but it had me at SIP and Jabber.
Jitsi, which is written mostly in Java, is a free and open source VoIP, and instant messaging application for Windows, Mac, and Linux. It’s currently in alpha. Stable releases come out every so often while ‘nightly builds’ are released several times a day. When appropriate, users are automatically prompted to download and install the latest build (or you can just tell it to do this all without asking).
What separates this application from others like it is the inclusion of enterprise VoIP features such as attended and blind call transfer, call recording, call encryption, conferencing, and video calls.
This version of the application looks and feels great. The main UI is simple and clean, the pop-up call handling screen is easy to use, and the instant messaging feature is handled nicely. Jitsi certainly aims to accomplish a lot. While you can almost expect a few glitches here and there, it is certainly worth trying out.
[ Relevant Sidenote: This review was conducted on a Macbook Pro. ]
As usual, I am going to do a quick walk through of how to setup OnSIP with Jitsi. A lot of these steps apply no matter which VoIP provider you’re using so I noncustomers will also find this useful. You’re going to need your user credentials. They can be found in your OnSIP admin portal under ‘users’. Here is an example of the fields you will need:
Setting Up VoIP Calling
Open up Jitsi and select “+Add New Account” under File. You should see a screen pop up that looks like this:
Select “SIP” as your choice from the options provided in the Network dropdown menu, and then hit ‘Advanced’ in the lower left corner.
You’ll be taken to another menu with 3 parts: Account, Connection, and Presence. Account is pretty self-explanatory. Under “SIP id”, you’ll want to input your entire SIP address. Password is your SIP password, and display name can be anything you want.
Next, in “Connection”, input your “Proxy/Domain” in the field marked “Registrar”, and your “Auth Username” into the field marked “Authorization name”. You’ll want to uncheck “Configure proxy automatically” if it isn’t already, and type “sip.onsip.com” into the field labeled “Proxy” if you are an OnSIP customer (Port 5060). Make sure that preferred transport is “UDP” and that the Keep alive method is “Register”.
In “Presence”, simply check “Enable presence (SIMPLE)” and leave everything else unchecked.
Hit the ‘Next’ button. You’ll be taken to a summary page where you can go over your settings one last time before you sign in.
Go into the Jitsi ‘preferences’. You should see a screen that looks something like the image above, with a list of all your active and inactive accounts. Select ‘Audio’ and make sure that the codecs (or ‘encodings’) enabled are G722, PCMU, PCMA, and “telephone-event”.
Setting Up XMPP
Setting up IM is even easier. Here I’ll show you how to get your my.OnSIP contacts in Jitsi. Once again, select “+Add New Account” under File. This time, you’ll want to select “Jabber” in the Network dropdown menu, and hit “Advanced” in the lower left corner. You’ll be taken to another menu with 3 parts: Account, Connection, and Advanced. In “Account”, input your my.OnSIP login credentials. Skip the “Connection” section since you don’t need to change anything there and uncheck the three options you see in “Advanced” (“Use ICE”, “Auto discover STUN/TURN servers”, and “Use Jitsi’s STUN server in case no other servers are available”). Click ‘Next’ at the bottom of the menu, and then ‘Sign In’ on the summary page that follows.
At Junction Networks, we put each of the phones we use through a multi-step interoperability test in which we apply ~30 test cases. An example of a test case would be the following:
Test phone calls phone B
B picks up
B puts Test phone on hold
B calls phone C
C picks up
B transfers test phone to C
Call must be transferred correctly to C. B must be released correctly after the transfer. When C picks up, audio must work in both ways between test phone and C. When test phone is on hold, there is no audio between it and phone B.
Build 3132 passed our test cases with no issues.
When I first installed Jitsi a couple of months ago, there was so much static that having an intelligible conversation was impossible. Whatever the issue was, it has since been patched and resolved.
Jitsi supports G.711 as well as the G.722 wideband codec. Narrowband calls sound about as good as a regular landline call.
‘High definition’ calls with the Jitsi sound absolutely fantastic. You can get ‘HD’ VoIP calls as long as the person you’re on the call is also using an HD capable device. I heavily recommend using a USB headset when making calls with a soft phone on your computer to get the optimum experience. You can pick up a good headset for less than $30.
Ease of Use
For something that costs the end user nothing, Jitsi is a surprisingly good attempt at a unified communications client. I like to think of it as a bare-bones version of Microsoft Lync that doesn’t cost me $700+ to setup, and $100 per download.
The main user interface of Jitsi looks a lot like any other IM client, except that you can have a dedicated section for voice contacts in your consolidated buddy list. Clicking on what looks like a small watch face will take you to your call history. You can conveniently redial from this screen. Right next to the ‘watch face’ button is a search field, which will draw from both your contacts list and your call history. This field will also act as your dialer. Start typing in any number or SIP address, and a small green handset will appear that you can click to initiate the call.
Every contact in your buddy list and call history menus can be dragged and dropped into an ongoing call. What do I mean by that? With Jitsi, every call gets its own pop up window. It’s here that you’ll find all of your call handling options: dialpad, create a conference call, hold, mute, record, video, desktop share, transfer, etc. Dragging and dropping people from your buddy list or call history menu into an ongoing call automatically creates a conference call. This seems to work without a hitch, and you’re not just limited to a 3-way conference.
The image above shows the popup window you see during each call. You can have several calls going at once (simply call another number or SIP address using the dialer field in the main Jitsi UI and any active calls you have at the time will automatically be put on hold), and each one opens up a new window. I’ll very briefly go over some of the functions of interest.
You’ll notice that almost everything you can do with Jitsi is laid out in a row at the bottom. At the very left is a button that looks like an old school rotary dialer. This will append a numpad to the bottom of the window so that you can interact with attendant menus, etc. Next is your conference button. This brings up a window that you can use to invite multiple people to the call at the same time.
The next three buttons are self-explanatory: hold, mute, record (you can designate which file you want to save your recordings in the ‘Advanced’ section of the application preferences).
Next is the button to turn on the video. Supported video compression formats include H.263 and H.264. I’ll admit that I haven’t spent too much time testing out video calls on Jitsi, but the few video calls I have done (on Wifi, with just the built-in iSight camera on my Macbook and H.264 selected) were better than I was expecting. No experience-ruining frame rate or picture resolution issues here. I did try doing a video call with a coworker on her Counterpath soft phone and we weren’t able to get it working, despite the fact that they were using the same codec. We will do more testing and I’ll update this review with our findings. Also keep in mind that a lot of factors will affect the quality of your video calls, and many of the problems you or I experience may have very little to do with the application. We plan to include video calling cases as part of JN interoperability test in the near future for applicable user agents.
According to the Jitsi development roadmap, there are tentative plans to implement multi-party video conferencing in Q1 2011.
Finally, Jitsi users can easily conduct blind and attended transfers. If only one call is active, clicking on the transfer button brings up a window where you can quickly input the transfer destination and send the caller on his/her way. If you have multiple calls active, clicking on the transfer button will open up a dropdown menu that includes all your active calls so that you can quickly conduct an attended transfer. Of course you can also choose to transfer to another number as well.
Now let’s talk about some of the stuff that doesn’t work quite as well.
If you’re a my.OnSIP user, then you might be used to having the ability to click-to-dial and IM the same contact. You don’t really get the same experience with Jitsi. My.OnSIP uses XMMP for IM and OnSIP uses SIP for voice, which means that you’ll have to have two separate accounts, and two separate contact lists for the same group of people. It can get especially confusing if the two types of contacts for one person look exactly the same. Long story short: Remember to use your SIP account for calling and your Jabber (XMMP) account for IM.
Adding phone numbers to the voice contacts could be better streamlined. Here is what the ‘add contact’ form looks like:
You’ll notice that you only get to specify the contact name. It actually works fine if you’re adding a SIP address. If I type email@example.com into the ‘contact name’ field, Jitsi will know to use that as the SIP address, and will even cut off the domain in my contact list so that only ‘jondoe’ is displayed. Adding actual telephone numbers is a little annoying since the “contact name” field is really the “what to dial” field. Sure you can go back after the contact is added and rename the number to a person’s name but this seems like an unnecessary step.
Since Jitsi is a project that is literally updated several times every day, I don’t think a ‘Final Thoughts’ section is necessarily appropriate. The application has come a long way in a very short time, and there are big plans for the coming year. We expect a lot of updates and fine-tuning.
I would recommend giving this soft phone a download if you do not already have one on your computer, or if you’re completely new to VoIP and SIP and just want a way to test out IP calling. It’s free so what have you got to lose?