SIP Client

I've just started working on trying to get a SIP client working on the Pre.

PJSUA has been compiled for the Pre by withineboredom at the PreCentral forums. This is a command-line SIP client based on PJSIP, which is the core of a lot of other open-source SIP clients including Siphone for the iPhone.

If you don't have an account at PreCentral, you can download the binary straight from my site at http://simplykiwi.com/pjsua (1.2M)

Copy this to /opt/bin/ on the device (assuming you've already installed Optware) and then run it by executing ./pjsua

Review the documentation for the application at http://www.pjsip.org/pjsua.htm

Like withineboredom says, the application doesn't automatically detect any audio devices. It otherwise works fine - you can place and receive calls (as long as you have an account with a SIP provider) and you can see the traffic going back and forth.

In researching the audio setup, apparently the Pre uses PulseAudio to route audio throughout the system. This is what allows the device to play audio from multiple sources at the same time. Check out the configuration files in /etc/pulse/ on the Pre, especially system.pa which defines some per-application sound settings.

pulseaudio is running in System mode on the device, and it interestingly doesn't have disallow-module-loading enabled. This mode is discussed at the PulseAudio documentation site and here's the interesting part:

"Worse security, because the user can now command a server app running under another user name. He could even load/unload modules from that sound server "

This seems like it's actually a good thing from the perspective of adding functionality to the system by loading new modules instead of altering the existing setup at all.

PJSUA has command-line flag options to specify the capture and output audio devices. I haven't been able to figure out the appropriate things to set these options to. I've tried hw:0 and pcm_output and pcm_input without luck. If anyone has more experience with PulseAudio and how to pass audio into it from PJSUA, I think we have a good chance of creating a SIP client.

With the latest announcements from CES about additional development tools from Palm, it could be possible to include PJSIP code directly into a native application.