[Samsung Galaxy Nexus] urinsane:
Some of us have been discussing VOIP options over in the prepaid thread ( http://xdaforums.com/showthread.php?t=1455014 ) and thought we might as well break it off into it's own thread. While this could probably be a more general Android thread, I thought it best to remain specific for what works on OUR devices, as CPU/software do make a difference.

Let me preface by saying I am still a VOIP newb. I've got the basics down (I think) but I welcome any and all advice or suggestions on things to add. I'm sure I got some things wrong. Obviously there are quite a few variables that come into play, including software, provider, codecs, and connection.

Google Voice Solutions:

GrooveIP: ($5.00)

http://snrblabs.com/snrb/Apps/GrooveIP/FAQ.aspx

MY Comments: not working reliably when off of Wi-Fi.

Review by cyberpyr8 (Verizon Network): http://androidactivist.org/reviews/appreviews/app-review-groove-ip/

Talkatone: (Free) Routes Google Voice through their own servers. Apparently converts to 3 different codecs. See more here:

http://blog.talkatone.com/2011/06/16/talkatone-audio-compression-ftw/

Comments: still testing

SIP Providers:

VOIP.ms: Pay as you go, basically. DID numbers for $1/month, incoming calls $0.01/minute. Outgoing to the US starting at $0.0105/minute. They bill in 6 second intervals. You add funds (minimum $25), and they take them as needed. Supports G711(PCMA), G729a, and GSM codecs.

Comments: My current SIP provider. Interface seems fairly powerful when you get the hang of it. The 2 lower bandwidth codecs (G729a and GSM) seem to be fairly reliable, and G729 seems to be the better quality of the two. My WiFi calls have all been great, with very little lag time. Still testing.

ttabbal adds:

Anveo: I like the options, but the site is a little hard to get used to. It's also nearly impossible to get it to work reliably with Android directly. They are a good option for DIDs and general VOIP service though, if you have another service you can route Android calls to/from. DIDs are cheap here, US numbers seem to go about $2/mo with unlimited inbound calls. E911 is the cheapest I've found at $0.80/mo. Call quality seems quite good, though codec selection is somewhat limited. The call routing editor seems pretty cool. Flowchart looking design app for choosing what to do with calls. FAX is also an option for you business users. US calls are 1 cent per minute.

ttabbal adds:

Callcentric: They are a well known somewhat premium provider. I put $5 on them just as a backup route. They cost a little more, I think 1.5 cents/min. The gnex registers up to them fine, and calls in and out work fine. I've only used them a few times for testing, but call quality is good. Codec selection is in between. Enough options to cover most tastes though.

SIP apps:

Built-In SIP: (Free) Codec support is limited; no G729?

CSipSimple: (Free) Integrates into native dialer, lots of codec support. A lot of config options. Supports a ton of codecs. My current choice. NIGHTLY BUILDS HERE: http://nightlies.csipsimple.com/trunk/

Bria: ($8.00) Quite a few options, but then they go and force you to pay even more for things like the G729 codec. Easy interface. I thought I had convinced myself I was getting better quality than CSipSimple, but I think that was related to outside variables. Does not integrate with native dialer.

Sipdroid: (Free) The original. Seems a bit dated now; no G729 support.

Other:

Skype: reported to work well, but is not the cheapest route. I haven't purchased one of their plans to test, but for easy setup it may be the best option. Proprietary codecs?

Terms for noobs: (Thanks ttabbal!)

DID: A phone number people on a regular phone can call. You can also direct Google Voice to call this number. If you have a free inbound call DID like Anveo, it's a decent option for GV integration. Most providers allow you to link a DID to various PBX type services and route calls in various ways. Or you can just send all the calls direct to your VOIP device.

PBX: Private Branch Exchange. Basically, your own mini phone company. You can receive calls, route them to various extensions (most any VOIP device), handle voicemail, transfer calls around, hold music, all sorts of crap most people here probably don't need.

Trunk: A connection for inbound and/or outbound calls. Usually used to link a server like Asterisk to a provider for calls to/from the phone network.

Asterisk: One thing Asterisk will give you is the ability to use a different codec on the phone->server link than the one GV uses. So your server will transcode for you. A free PBXes account will do that too. Asterisk is really more useful if you want multiple extensions and providers. You can then do all kinds of crazy stuff with calls.

Troubleshooting: (ttabbal again!)

NAT. NAT sucks. It will cause pain and suffering depending on the type of NAT you have. My office network is using Symmetric NAT, which is near impossible to use SIP with. So I set up OpenVPN on my gnex and just leave it running all the time. It doesn't use as much battery as I feared it would after tuning some settings. The big win was setting "keepalive 60 120" in the server config file. Comparing graphs using the Battery Monitor Widget, I'm about the same standby drain I was getting before. But now SIP works all the time, as there's no NAT in the way.

Wifi on the gnex.... When the screen is off it seems to go into some low-power state that doesn't save much power and causes little connection glitches. So even putting the phone to my head to talk would turn off the screen, then the VOIP call would get all choppy. Telling the app to leave the screen on in calls fixed it right up. I ended up trying Franco's kernel, as he has an option to disable the wifi power save stuff. It's working much better now. I've seen threads about this causing slow downloads when trying to download stuff like Gameloft game data as well. Though others say they don't see it. No idea, but it caused me lots of trouble and it's an easy fix, so I'm posting it.

UPDATE: New tips from natesilver: