Archive for the 'Porting' Category

Port Your PJSIP Engine to BlackBerry 10 in Less Than 10 minutes

[This is a guest post from Gurtej Sandhu, developer relations at RIM]

If you haven’t already heard, the BlackBerry 10 countdown is on. If you have an existing application using PJSIP libraries, this is your opportunity to port your pjsip open source stack to BlackBerry 10 in a matter of minutes. As you may have already heard, Bob Cripps has successfully ported PJSIP to BlackBerry 10. Just very recently Bob has helped simplify building PJSIP for BlackBerry 10 by creating a set of executable scripts. This work has now all been committed to our BlackBerry github repository.

I took this opportunity to dig deep into building PJSIP for BlackBerry 10. As soon as I had my Linux environment up and running with all the prerequisites installed, I am happy to say that it took me less than ten minutes to build and load PJSIP BlackBerry 10 Cascades sample project to my BlackBerry 10 Dev Alpha device. So please don’t try to reinvent the wheel – dive right into this github repository to port PJSIP to BlackBerry 10. Remember to follow the README instructions as they are very important. You can also follow the instructions in PJSIP porting guide knowledge base article.

If you run into any issues in porting PJSIP to BlackBerry 10 you can send me a tweet @_GurtejSandhu or write your comment below and I will be happy to assist.

Again, huge kudos to Bob Cripps for contributing his recent work in simplifying building PJSIP for BlackBerry 10.

Success stories:

BlackBerry 10 Development:

Related Posts

Initial support for BlackBerry 10 (BB10) now available

Recent work has incorporated the initial port of pjsip on BB10 by Tru.

It is not on any release yet, so you’ll have the get the latest pjsip revision directly from our Subversion source code repository. Follow the guide on how to compile pjsip for BlackBerry 10.

Of course if you don’t have the BB10 Dev Alpha Device it’s not that useful, yet.

And the code is likely to change (probably a lot) while BB10 SDK matures toward production. UPDATE: It is also expected that the production release will have the all-important echo cancellation APIs.

I suppose we’ll see soon enough whether BB10 can really revive RIM and BlackBerry in the smartphone wars.

If not, well we’ve been there five years ago, when we initially supported pjsip on Symbian. And Windows CE/Windows Mobile. And so on…

BlackBerry 10 VoIP SIP Client using pjsip

It wasn’t that long ago we speculated that pjsip on BlackBerry would be available sooner rather than later.

Well apparently it’s true: Tru has ported pjsip to BlackBerry 10 (a.k.a BB10, snappy though somewhat unimaginative).

So there you go. BB1o has stolen the thunder of us native C developers. Windows Phone 7 (a.k.a WP7), are you scared now?


pjsip for BlackBerry PlayBook: Native SIP client may be closer than you think

One of the most frequently ask questions we got is: does pjsip support BlackBerry? Are there plans to do so?

We always answered no, because the current BlackBerry devices only supports Java and even then there seem to be lack of multimedia access (essential for audio/video capture and playback) and direct socket access (for media streaming).

Recently however, with the BlackBerry Playbook using a different operating system, they have also announced that native C/C++ development kit will be available later this year.

So, maybe it will be not long now until we can answer ‘Yes’. Well, at least it can run on the BlackBerry PlayBook, if not all their smartphones.

Native iPhone SIP Client Based on pjsip Available on App Store: Open Source and Not Tied to any Provider

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 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 SIP domain uses OpenSER OpenSIPS, so I know this client is compatible with it.

Multiple accounts support for the iPhone SIP client

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.


Let me know your comments if you have tried this iPhone SIP client.

Integrating yaSSL with pjsip: anyone interested?

Recently we’ve been in contact with the yaSSL open source SSL project, discussing possibility of supporting CyaSSL as well as the current OpenSSL.


yaSSL is a small footprint and portable SSL implementation

The small footprint and portability of CyaSSL seems a very good match, so anyone interested in kickstarting this? I guess this can be from both ends, so maybe a  yaSSL community member can try to see the TLS functionality in pjsip/pjmedia or from the pjsip side, looking into yaSSL stuff.

Let me know if you’re interested, and we can take it from there.

Rich Internet Telephony Application, Anyone?

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)

PJSIP on Symbian Phone Works

[pjsip] PJSIP on Symbian Phone Works!:

This announcement is a bit late than planned (I promised to finish the Symbian port before Jan 2008), but we thought we’d give this a more thorough testing before announcing it, hence the delay.

In summary, PJSIP works and tested on Symbian S60 3rd Ed phone. Everything should work, including all SIP features, sound, STUN, and ICE. And we’ve made a tutorial on how to build and debug PJSIP on target device.

There have been some major changes along the way:

  • Carbide is now the preferred IDE rather than CodeWarrior. This is because CW has been deprecated by Nokia anyway.
  • Support for DSO is no longer enabled by default. It’s still supported, but you’d have to edit the MMP files slightly to build DSO outputs.

So what’s left to be done is for someone to create a nice open source Symbian softphone GUI on top of it. 😉

For more info:

pjmedia Running on iPod Touch: Good news for Open Source

The buzz on making phone calls from iPod Touch using software based on pjsip/pjmedia is picking up steam. Engadget, Tom Keating, even Andy Abramson of VoIP Watch has picked it up.

pjmedia is now up and running (screenshot courtesy of Touchmods):

pjmedia on iPod Touch screenshot

The imminent release of the software is also mentioned.

Because the developers are using pjsip and pjmedia under GPL that means the software is free and open source, and will be available to everyone! I am sure Matt Asay, recently posting about Apple and open source would be proud 🙂

VoIP on iPod Touch

eok did manage to make the Nintendo DS-based SIP app from Samuel running on the iPod Touch!!

VoIP confirmed!!! « iPod Touch Mods

After Nintendo DS, here is another pjsip port along the lines of VoIP on Consumer Devices product line: internet telephony on the iPod Touch. It needs a hardware modification to make activate the microphone though, so definitely not for the faint of heart!