Is VoIP on a cell phone so hard?

I have been having trouble with my Nokia E70 lately. I decided to switch on SIP calling as the default and to automatically log into my Truphone account. But when I did that I ended up triggering some bugs that have manifested themselves by locking up the keypad and weird screen issues on occassion. Obviously annoying stuff.

Now supposedly better firmware should be coming. Apparently production firmware from Nokia tends to start in 3.x and my phone's firmware is in 2.x. Obviously that does not excuse Nokia from releasing buggy firmware on a production phone, but at least gives me some hope that things will get better. Plus various phones have been getting STUN support and mine doesn't have it yet so something is probably in the works.

Regardless of the firmware thing, it is causing me to hope that some new handset maker or open source group manages to get cell phones right. From what little I have read on Symbian and know about what it does and does not allow, it sounds like an odd OS. It has caused me to wonder if a microkernel would be a good solution. I wouldn't mind if some app crashed or service crashed on my cell phone if I could bring the service back up. But if it brings the whole cell phone down it sucks.

But pretty much every open source cell phone runs Linux. TuxPhone, OpenMoko, and the Qtopia Greenphone all run on Linux (there is also the GPE Phone Edition but it doesn't have a physical phone for itself). At least Linux runs on enough embedded platforms that it should work reasonably well for a cell phone.

The Apple iPhone runs OS X which has never proved its meddle in an embedded system.

And I don't think a single one of them supports VoIP. Sigh. This is when knowing what is possible in software and not having it at your disposal because you are not a hardware guy sucks.