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 [[1]] (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 [[2]]
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. Check out the 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.