I found out that my new iPhone has terrible reception, even in places with supposedly good coverage. It turns out that it’s because of certain settings that I didn’t configure properly. After I changed them, all was good again!
So if your iPhone is like mine and you see “Call Ended” and then “Call Failed” immediately after trying to dial out from your iPhone, even though there’s a good signal (i.e. you can see signal bars, so you are connected to your carrier). Then relax, because there probably is no problem with the phone — you PROBABLY just need to do these 2 steps:
1) Go to Settings > General > Date and Time. Switch off “Set Automatically” and manually select your hometown (the default is Cupertino). If you dont change it, you will not be able to make outgoing calls. But the wierd part is, you will still be able to receive incoming calls. Once done, manually set the date and time, and restart your iPhone. If you want, you can reset the 2 settings to “Set Automatically” again.
2) Next, go to Settings > Phone > Show My Caller ID > Switch this to “ON”. Usually with these steps, things should be okay already. If not, you have to turn off “Call Forwarding” and “Call Waiting” as well.
Hope that helps!
Update: For iPhone 3.0 and later, after unlocking you might get no service (in an area you know has good service). In these cases, try turning 3G off, or Push Notifications off.