Gregory Alan Bolcer stashed this in Fixitfixitfixit!
I'm a pretty technical person, but this one is pretty befuddling. On ios5, Apple introduced a new iphone to iphone messaging service that allows iphone users to send SMS messages to other iphone users without using the carrier's SMS to avoid charges.
I can't seem to figure out how they do that. Somehow they need to know that the other person is on an iphone. Do they need information from the carrier to figure that out? Where is this information stored that you have an iphone? Who has access to it? How does the app determine it?
Don't get me wrong, I love the feature, but I can't quite figure out how it knows to automatically use the imessage system on some messages and not on others. It seems like a little bit of magic or else they are storing information someplace that they haven't disclosed or the carriers agreed to provide info that goes against their business model. Anyone have any insights?
It's not SMS; it's just plain old data being sent over the internet. The iOS5 Messages app will send proprietarily formatted messages if (1) the internet's available, (2) it recognizes the recipient's address, and (3) the recipient is capable of receiving push data. Otherwise it sends via SMS. The OS knows your phone number, and these days it's pretty much required to sign in with an Apple ID to activate the phone, so it's easy for Apple to bind one to the other and quickly reach critical mass.
If Apple had allowed it, by now there would have been hundreds of apps like this written by third-party developers. But as an end user, I admit it's nice that there's only one, because I don't have to tell my friends to download such-and-such an app so we all have free text messages.
Okay, for (2), where does the recipients address get stored and how does the data push server determine someone is capable of receiving it? So you are saying the other non-ios5, non-iphone4/4s phones probably are signed in with their apple id, the imessage looks up the number to find the apple id, and then can match them together. That works for outgoing, but what about incoming?
Also, if that's the case, then the other users would have needed to update their terms of service. Do the current terms of service allow for older phones and os's using their apple id in that new way?
There are hundreds of other messaging services. As you pointed out, all of them require both parties to agree to the terms of service and both have the same app installed. None of them are allowed to touch or intercept SMSs, though many can send an SMS using the apis.
I've been thinking about this too -- I'm wondering if maybe the Apple ID isn't even needed? Can't the iMessage server just see the phone number of the phone you're sending from, and look up if the one you're sending to is using it as well?