Can't say for sure in those cities, but I know on the main street of Cozumel, there was a "phone calling store." You tell them where you want to call and they set you up in a private room to talk as long as you want. Then when you're done, a computer keeps track of your time and you are billed at the end. I called Canada for about $10 for 10 minutes. I would think that any highly commercialized ports would have something similar.