Ok so what does the "o" mean and how do you know when your phone is on Roam?
If you're showing an "O", you DO have data. Barely.
The "O" on GSM phones refers to GPRS (General Packet Radio Service), old technology, which is true 2G data...it's even slower than EDGE. EDGE is really more like 2.5G, whereas HSPA/UMTS is 3G. You're not roaming on GPRS, you're on an AT&T or partner tower, and won't be assessed any fees, at least in the US. And with both EDGE and GPRS, you cannot do data and voice at the same time.
There's no roaming indicator on AT&T iPhones...only if the carrier name changes will you know if you're roaming on voice and data. It's never an issue unless you leave the US, though. You can force the phone to not roam on data outside the US, so you don't get charged an extreme amount of money for little data. When I've been overseas, I've purchased a small (50MB) data international roaming package to ensure I don't pull data at outrageous rates, then I turn it off when I'm back in the US. It's prorated only for the time I used it as well.
The CDMA iPhones also show a "O", but in this case, it means 1XRTT, which is CDMA data's version of EDGE/GPRS. With both 1X and EV-DO, though, you can't do voice and data at the same time, unlike with UMTS on GSM networks. That's why the Sprint and Verizon iPhones can only do data and voice at the same time if you're connected to WiFi.