Any way to dial international calling codes automatically based on my location? I do a fair amount of international traveling (currently mostly between the U.S. and Mexico, but will be visiting Europe, Africa, and South America soon, too), and am looking for a dialing app that lets me set international dialing rules, so to speak, for each of my contacts.

This post describes pretty well what I'm looking for, and an app for PalmOS that apparently did it pretty well.

In short, I should be able to:


Specify a country for each contact phone number
Specify the country where I am located (either automatically by GPS location, or I can select my location, or a dialing profile, or whatever)
Then when I dial, it will automatically dial the appropriate country code before the number.


Example scenario:


  
  I have a contact entry for Bob, who's phone number is 123-555-1234, and he is in the U.S.
  When I am in the U.S., Bob is automatically dialed as 123-555-1234
  When I am in Mexico, Bob is automatically dialed as 00-1-123-555-1234
  


or


  
  I have a contact entry for Alice, who's phone number is 33-33-12-34-56, and she is in Mexico.
  When I am in the U.S., Alice is automatically dialed as 011-52-33-33-12-34-56
  When I am in Mexico, Alice is automatically dialed as 33-33-12-34-56
  


Please note this question is not about how to select the cheapest calling plan for each number, or making international calls with Skype or another VoIP service.  It's simply about dialing the proper international exit codes when doing standard "direct-dial" with whichever mobile provider I'm using.
You can just save the numbers in international form. For example, Bob's would be +1-123-555-1234 and Alice's +52-33-33-12-34-56.