pjsip on has been running on iPhone and iPod Touch for quite a while. Samuel Vinson (also responsible for making possible VoIP on Nintendo DS) was the first to announce a successful port to iPhone and iPod Touch even before the official SDK became available.

Siphon has already been available for developers and also on Cydia, an alternative distribution platform for iPhone applications. voiphone is another project starting up, based on sound device code from Siphon.

Now another milestone is reached, because an iPhone softphone called SipPhone on iPhone (how many phones can you have in a sentence!), has been released on the official App Store by VNet Corp of Shanghai. This means users unable or unwilling to install Cydia are also able to enjoy VoIP over Wi-fi with their favourite providers, instead of dictated by which client you use.

(For those reading on a computer with iTunes or on the iPhone itself here is the direct link to SipPhone on App Store.)

So how does it work? After downloading from App Store, following the installation instructions, I was able to add Teluu’s sipgate.co.uk account (look, No SIM!):

Main SIP account settings

Additional SIP account settings (optional)

I was then able to choose from my Contacts and make a call as normal. I didn’t do any extensive voice quality testing, just some quick calls. I will try to record some conversations to illustrate better the voice quality.

Another feature that needs pointing out is the ability to have multiple accounts. It was quite easy to toggle which account is active at any one time. The pjsip.org SIP domain uses OpenSER OpenSIPS, so I know this client is compatible with it.

Multiple accounts support for the iPhone SIP client

The source of the application is available at their forum, it seems you can get it even if you are not a customer. This is beyond the requirements of the GPL, so nice touch on VNET Corp people.

I still haven’t been unable to compile it, so as can be seen I have a question pending there.

Overall of course the main issue of VoIP over wi-fi in iPhone remains: no background task. That means, unlike other mobile devices such as Nokia which uses Symbian, it cannot receive any calls while you are doing something else.

We’ve decided to draw a line on what we feel is a comfortable feature set, in particular for desktop client developers on Windows, Mac OS X, and Linux. Of course we can not fit it all, so keep those comments and requests coming, it matters to us.

For mobile platforms, consider the current feature set a technical preview. We know it’s not as easy to get started, and sometimes there are still issues. This is because mobile devices are really fragmented. You can have exactly the same device, but different firmware version can break applications.

"Mobile SIP SDK, anyone?"

Going forward we’ll strengthen and stabilize the mobile devices support, starting with Symbian S60 and Windows Mobile. We look forward to the Symbian Foundation open source version, more open always lead to more innovation.

I would also like to take this opportunity to formally introduce Teluu, as the company behind pjsip. It was started more than two years ago, alongside the pjsip open source project. Teluu is where we handle alternative licensing, direct developer-to-developer support, and the occasional customization work.

As always we welcome comments, feedback, both praise and criticism, and whatever else. You can leave a comment here, on the mailing list, or everywhere else on the web. As long as Google can find it, we should know about it 🙂

pjsip has always been cross-platform, basically it runs anywhere. Moreover,
we interpreted platform liberally, so in addition to multiple operating
systems and processor, we also have runtimes-as-a-platform (RaaP?) like
the Python VoIP API support (and the community has expanded along this line to Java SIP API and C# SIP SDK).

There is a new breed of platform coming to the desktop, broadly called Rich
Internet Application (RIA). Names like Microsoft Silverlight, Adobe AIR,
Sun JavaFX have been wading in this area. On my desktop I got Twhirl, a
Twitter client built on top of AIR.

So is this platform going to be relevant to SIP clients, I wonder? Would it
fit into a IP phone developer’s strategy? Is a RIA softphone possible or
even desirable? Would we call these things Rich Internet Telephony
Applications (RITA)?

Click your thoughts on the poll below and let me know what you think! (UPDATE: The poll application seems to be not working for some people – here is the direct link to the: Rich Internet Telephony Application Poll)

This is an interim release, intended to mark the end of features development in the trunk. From now on, it will be tests and bug fixes only, until we reach 1.0. This will be our first proper stable release, and it will be given a separate branch, to isolate it from bleeding edge developments in the trunk.

Because of that, there has been a bit of “pressure” to stuff in as much features as possible on this release, since this is the last change to include them in 1.0. Here are some of them:

Integration of Intel® IPP Codecs. This brings us with bunch of new codecs into PJMEDIA, such as G.722.1, G.723.1, G.726, G.728, G.729A, AMR NB, and AMR WB. Basically the lot! For more info about this integration, please see here.

New Python API. We discussed this on this blog a month ago here, basically it’s a new Python API for PJSUA-LIB, it’s much easier to use, and it also has a more thorough documentation/tutorial. Please check that out.

Nokia APS Support. The Nokia Audio Proxy Server is a wrapper to Nokia S60 sound device, it has much lower latency than Symbian MMF API (the traditional sound device that we support), and it also opens up support for device’s native codecs such as AMR, G.729, and iLBC which we can use in the future. Although this API has been deprecated by Nokia in FP2, still there are lots of S60 and FP1 devices out there, so this is worth supporting.

New Echo Suppressor. Good for mobile devices, we discussed this in this blog here.

And some more. For more information regarding this release, please visit the download page.

Usage and deployment: at the moment we probably have around 20 or so applications that we know about. Being free software, not all GPL users notify us.

On community size, I can’t say whether we are small or not as we don’t have data on sipX and reSIProcate. Here are our stats:

Over the last 6 months, we had on average of 950 downloads per month.

Mailing list membership fluctuates of course, as users come and go. A conservative estimates would be around 300 members at any one time. We also have stats for mailing list posting rates.

In the end, it was the fact that pjsip was more “malleable” and suitable for their team’s long term goal that made them decide on pjsip. And the fact it was his gut feeling from the very start anyway…

Thanks for sharing your evaluation process, Medhavi. Making technology choices are never easy, especially the decision to use other people’s framework (programmers always like to DIY; I know because I use to hate being forced to use other peoples code!)

Have you ever evaluated pjsip or any other free and open source SIP and media stacks for Windows, Mac OS X, or other platforms? We’d love to hear them!

As an implementation of SIP and various media protocols, VoIP is still the main application area for pjsip (although recently Audio-over-IP has adopted SIP as well). So it is very interesting to have a recap of the last decade or so on how we all came to know (and love) VoIP.