February 20, 2006

OpenWengo's VoIP Firefox extension

Author: Nathan Willis

GPL-licensed VoIP client WengoPhone is now available as an extension for Mozilla Firefox. The software uses SIP and defaults to the patent-free Speex audio codec. Parent company Neuf Telecom offers the optional Wengo call-out service to connect users to the public telephone network. Windows and Mac builds are available now, with Linux on the way.

This first release -- labeled beta 0.66 -- is more limited in scope than the prior, non-XUL client (now renamed WengoPhone Classic and still available for download). It is available only for Firefox 1.5 or later on Windows (XP or 2000) and Mac OS X (10.4 or later only), though reportedly closed beta tests are underway with Linux.

But it is the first public release from the project's newer WengoPhone NG codebase, which prior to now has been available only in source form. The WengoPhone NG framework supports video in addition to voice chat, XMPP presence and messaging, and SMS text messaging to and from the public telephone network.

The WengoPhone extension defaults to using the Xiph project's open source, patent-free Speex codec on audio calls to other WengoPhone extension clients, making it one of only a handful of cross-platform, general-purpose applications to do so. The architecture allows for other codecs, and the extension uses the patented iLBC from GlobalIPSound when connecting to WengoPhone Classic or other clients that don't support Speex.

WengoPhone Classic was a native Windows application and a GTK+ application on Linux, requiring two separate GUI branches. For the new client, Wengo contracted with Daniel Glazman's consultancy Disruptive Innovations to develop a single cross-platform interface with XUL.

Glazman, a former Netscape engineer, is no stranger to building complex applications in XUL. He adapted the virtually abandoned Netscape Composer HTML editor and remade it into the modernized, standalone Nvu editor. With this credit to his name, it is only a small leap in logic to predict that Wengo will develop WengoPhone into a standalone application too, abandoning the non-XUL clients to the ash heap of history -- though Glazman would not comment on the possibility.

Hello world

WengoPhone loads itself in the Firefox sidebar, but the interface has barely changed from the standalone WengoPhone Classic app. Performance-wise, the WengoPhone extension loads faster than WengoPhone Classic, and thus far I have found it to be more stable. In order to guarantee that you use Speex audio, you must call another softphone that defaults to this codec. I tested it and found the audio clear, but it was over a broadband connection, where jitter and lag are unusual.

Qualitatively I cannot tell much difference between the two codecs, and I am not aware of a tool with which to simulate adverse network connections for the purpose of stress-testing such codecs -- though if you know of one, please mention it in the comments section below. I can say that, based on my trials, WengoPhone beats rival Skype on echo cancellation, independent of the codec used. My experiences with Skype (particularly on Linux) have always been marred by echo; it's one of those problems that may not be critical, but slowly gets more annoying the longer it persists.

Glazman says the short-term future of WengoPhone includes release of the Linux and Mac OS X extensions, followed by the integration of SMS and XMPP messaging, and libgaim for non-XMPP chat protocols. A recent post on his personal blog indicates that XMPP messaging is already working, though it is not active in the 0.66 beta.

Issues of importance

Open protocols like SIP and XMPP are important because they turn chat -- whether voice, video, or text -- into a commodity, spawning scores of products competing to deliver it. A strong open source offering is critical at a time like this, because it can keep the playing field level.

I am not predicting that WengoPhone will be an eventual winner, but the new client software employs two big pluses: XUL for the cross-platform interface, and Speex to avoid the legal minefield of patent-encumbered voice codecs. The Mozilla platform is perhaps the simplest and most powerful way to develop cross-platform open source applications, but the success of Firefox and Thunderbird has yet to be matched by an XUL-based IM client; perhaps adding VoIP to the formula will jump start the idea.

Right now, those running Firefox on Windows and Mac OS X can add this open source, standards-based communications tool to their system. Linux users can either wait for the official release -- originally scheduled for February 15, but now marked "coming soon" -- or try out the WengoPhone NG code by building from source; the OpenWengo.org wiki has detailed instructions.

Click Here!