VoIP on the iPhone Thanks to CounterPath

by on 26/08/10 at 5:00 am

VoIP on the iPhone Thanks to CounterPath

Craik Pyke is telecommunications architect and software developer specializing in mobile applications and a Senior Editor for iPhoneCTO.

Quite some time ago, I wrote a somewhat negative assessment of various SIP (VoIP) clients for the iPhone. At the time, there was no multi-tasking and Apple’s notification system was just gaining adoption with developers. Since then, SIP clients have evolved substantially, growing in capability and availability. Moreover, Apple has created a multi-tasking class with iOS4 specifically for VoIP applications so they may continue some level of operation when the user switches to another application and has allowed VoIP over 3G.

With these advances in mind, and with the launch of CounterPath’s Bria badge appstore sm VoIP on the iPhone Thanks to CounterPath for iPhone, I decided to revisit the potential for VoIP applications on the iPhone as it pertained to enterprises (so – SIP particularly). Specifically, I wanted to look at the capabilities Apple has introduced in support of VoIP, and whether or not they address my previous concerns of how VoIP is integrated into the overall iPhone experience. To facilitate my investigation, I decided to try Counterpath’s Bria  SIP client.

For those not familiar, CounterPath produces some of the most popular SIP clients for OS X, Windows, and Linux – namely X-Lite, EyeBeam, and Bria. Given that I’ve been using X-Lite on a variety of platforms for many years, I was looking forward to trying Bria on the iPhone – convinced it would deliver the best SIP soft-client experience on the iPhone thus far.

Unfortunately, a few items stood in my way of really validating the capabilities of iOS4. Most notably is that despite Bria having been updated a few times since iOS4 went gold, they still don’t support the multi-tasking capability. I find this quite unusual given the rush of other developers of VoIP clients rushing to make their clients interoperable with multi-tasking in iOS4. Further, given one of the six specifically addressed classes of multi-tasking in iOS is VoIP applications, I’d have thought this would have been a top priority area for the CounterPath development team. Where this becomes particularly glaring is in the case I complained about in my last article. If I’m using Bria, and I receive a call on the “circuit” side (i.e. a traditional cell call), the Bria call is completely knocked down.

Beyond the iOS4 incompatibility complaint, I give credit to CounterPath at continuing their trend of producing very usable, aesthetically pleasing VoIP clients. I can’t complain at all about the form or functionality of Bria. It operates as a full featured SIP client, interoperating fine with my Amazon-hosted Asterisk system. As is consistent with Counterpath’s design, they provide enough control over settings and configuration that many of the “fiddly” bits of configuring SIP/VoIP can be addressed. I did manage to drive the client into a crash loop by setting the NAT Traversal settings to User specified, and disabling DNS SRV and ICE while leaving the remaining options enabled (namely telling it to detect it’s own Global IP address and to use STUN).

And while on the topic of NAT Traversal, I was a bit surprised to find that irrespective of which of the 6 VoIP clients I current have at my fingertips or how I configured my Asterisk server, I was unable to get two-way speech path when using VoIP over 3G with Rogers. I won’t belabor the topic here, but I’d be interested in comments from folks below whether they’ve been able to address proper speech path with VoIP clients on the iPhone when using a a server that is also behind a NAT (such as being hosted on Amazon EC2).

Anyway – back to the topic at hand. Bria is a capable client offering the necessary features to be a useful VoIP client. It offers support for the simple call functions (Hold, Transfer, Adhoc conferencing, and Voicemail specifically) as well as some nice added capability such as in-app purchase of G.729. It’s taken it’s place as my secondary VoIP client on the iPhone, behind iSIP as my primary client. If Bria supported multi-tasking it may actually become my primary client, but until then it’s simply not functional enough.

UPDATE: Shortly after I pushed this article up to the site, CounterPath released an update to the application. It was a pleasantly surprising update from the following perspective:

  1. Support for iOS4 multi-tasking has been added
  2. The NAT traversal setting have been somewhat simplified

These updates have certainly improved the usability of the client overall. The multi-tasking works fairly well, but it’s not perfect. For example, when on a VoIP call, if a call is received from the cellular network, the VoIP call is immediately placed on hold. This doesn’t give the user the chance to tell the other person to hang on for a moment, or even really give the option to ignore the incoming cellular call. I’m sure this is largely a factor of the iOS APIs for VoIP applications – but that doesn’t make it any less intrusive. Additionally, if the user is on a cellular call, Bria will pop up a notification that there’s an incoming call, but if the user attempts to switch applications to Bria to handle the call, the VoIP call is immediately “rejected” (the caller gets a busy signal).

So – going back to my previous conclusions. With the addition of multi-task support for Bria, I can say at this point it’s become my primary VoIP application on my iPhone. Sadly I can also say that VoIP on my iPhone is nothing more than a testbed application at this point, and not something I can honestly make significant use of due to the limitations of iOS integration. As I’ve said before – VoIP on the iPhone is not ready for “primetime” until Apple allows direct integration with the native dialer for VoIP applications.

Similar Posts:

  • Anonymous

    @craik: interesting review.

    i hadnt heard of Bria before but your description makes it sound credible (unlike so many of the voip pretenders on the iOS).

    two points:

    1) you complain u cant get a stable speech pathway on 3G (over rogers wireless).

    i have no such problem (over FIDO which is rogers’ own sub-brand!) when using the FRING client

    (i utilize Vbuzzer here in toronto as my VAN for voip — i choose Vbuzzer because they are cheap ($50/Y) even though they have terrible customer service & make no effort to support softphones on Macs & are indifferent at best to the iPhone)

    ironically, it is *WIFI* that always fails for me (over Rogers cable).

    i wonder what telemetry the app has that would us to diagnose this discrepency?!

    2) you complain that voip on iOS is constrained not by the system services but by the restrictions apple places on system integration with the apple dialer.

    other than having the convenience of a single UI, where is the loss of any important functionality that is locked-in to apple’s dialer?

    thanx for the feedback!

  • Craik

    Regarding VoIP over 3G – as I mentioned, I’m specifically dealing with a server that is configured to be behind a NAT and the client is behind a different NAT (double NAT scenario). Fring doesn’t NAT their servers, and that makes interoperability much easier.

    The integration into Apple’s dialler is lest about a single UI and more about the ability to treat VoIP calls with the same priority as circuit (traditional mobile calls). For instance, if VoIP were integrate with the dialler, and I were on a VoIP call, a circuit call would result in the same prompts you see with your iPhone (Hold and Answer; etc) now when you’re on the phone and get another call. As it stands now, VoIP calls get ungraceful handling when a circuit call is received. Similarly, circuit calls make it very difficult to properly handle an incoming VoIP call… Integration in the dialler would give consistent call behaviour irrespective of the call’s transport.

    Thanks for the comments!

  • Matt

    I ran across another Canadian company called Eyeball Networks (www.eyeball.com) that solves NAT Traversal issues, using standards-based protocols like STUN, TURN, and ICE packaged in an SDK. They support both iPhone and Android devices, and so far I am pleased with the products. I am using one of their other SDK products to develop an Android and iPhone version of our soft client that will support H.264 video, wideband audio, and other peer-to-peer communications.

  • voiper

    This description about Bria not supporting fully MultiTasking is obsolete.
    There have been several updates since and the iOS4 MT (backgrounding) works reliably in Bria.

    About the better integration with the native dialer. iOS does not treat other thrid party voip app as equal, as noted above.

  • George Petrides

    I am looking for a developer to write a voip application for me – If you know of anyone specialising in this field please email me at george.petrides@gmail.com .
    I dont want it to compete with anyone else, but my application requires a module whereby a voip call must be made.. thank you