1. A solution that uses a central server only for the purpose of establishing the IP address of your chosen call recipient, then allows all communication to that recipient to happen directly, point-to-point. There is no need to route call traffic through central servers (unless you want to listen in). Ahem. Skype.
I'm not so sure with mobile devices that's as easy as it sounds. I'm not aware of the situation in other countries but in Australia you normally sit behind NAT and don't get a publicly routable IP address. I once inquired with with a carrier if it was possible to get one so I could VNC into an embedded system using a dynamic DNS arrangement and the answer was it was only available as an add-on option for corporate accounts, and that meant having a minimum of 500 phone services.