I switched from iPhone 4 (not 4S, just 4) to the new iPhone 5 week ago. After syncing all my data through iCloud and retyping all my passwords to different services I noticed that iMessages wasn't working properly.
If someone send me iMessage to my email address, that came through but iMessages send to my phone number didn't come through as iMessages but as regular SMS's. Apparently this was caused by the way Apple handles iMessages: they are not related to your phone number, but instead to your device ID.
Here's how I got my iMessage working:
- If you still can access your old iPhone and it's still connected to the network (mine wasn't as they cut the connection the second they activated the new Nano SIM), go to Settings → Messages and switch off iMessages.
- Go to your Apple Support Profile page at https://supportprofile.apple.com/MySupportProfile.do and remove your old iPhone from the list (click the product, click Unregister). This should remove your phone number linking to your old iPhone's ID.
- While we're here, let's register our new iPhone if it's not yet registered.
- On your new iPhone, go to Settings → Messages and first turn off iMessages and then on. This should cause your new iPhone to be associated with your phone number. Go to Send & Receive under Messages and double check that your phone number appears here.
- If you have other iOS devices, switch iMessage off and on on them as well.
This fixed iMessages for me. Let me know if you've found any other ways to fix this!