IMessage



iMessage is an instant messenger service developed by Apple Inc. for iOS and OS X Mountain Lion.

History
iMessage was announced by Scott Forstall at the WWDC 2011 keynote on June 6, 2011. A version of the iOS Messages application with support for iMessage was included in the iOS 5 update on October 12, 2011. On February 16, 2012, Apple announced that a new OS X Messages application with support for iMessage, replacing iChat, will be part of OS X Mountain Lion. Mountain Lion, with Messages, was released on July 25, 2012. On October 24, 2012, Apple announced that iMessage received 28,000 iMessages a second, with 300 billion iMessages sent so far, on that date. On November 13, 2012, iMessage was blamed for a decline in US text messaging.

Features
iMessage allows users to send texts, documents, photos, videos, contact information, and group messages over Wi-Fi, 3G or LTE to other iOS or OS X users, thus providing an alternative to standard SMS/MMS messaging for all users with devices running iOS 5 or later. iMessage is accessible through the Messages app on an iPhone, iPad or iPod touch running iOS 5 or later or on a Mac running OS X Mountain Lion or later. Owners of these devices can register one or more email addresses with Apple, and, additionally, iPhone owners will have registered their phone numbers with Apple. For iPhone users who have an active data connection, Messages will check with Apple if the recipient has iMessage set up. If they do, it will seamlessly transition from SMS to iMessage. In Messages, a user can see if the other iMessage user is typing a message. A pale blue ellipsis appears in the text bubble of the other user when a reply is started. It is also possible to start a conversation on one iOS device and continue it on another. iMessage-specific functions operate only between machines running iOS 5 or later or running Mountain Lion or later, but, on the iPhone, Messages can use SMS to communicate with non-iOS devices, or with other iPhones when iMessage is unavailable. On iPhones, green buttons and text bubbles indicate SMS-based communication; on all iOS devices, blue buttons and text bubbles indicate iMessage communication. All iMessages are encrypted and can be tracked using delivery receipts. If the recipient enables Read Receipts, the sender will be able to see that the recipient has read the message. iMessage also allows users to set up chats with more than two people - a "group chat". iMessage is very similar to MMS; therefore, it not only allows the user to send plain text, but also allows the user to send pictures, movies, locations, and contacts.

Technology
While there are sources that claim the iMessage protocol is based on XMPP,[7] the protocol is actually based on Apple push notifications (APNS) - a proprietary, binary protocol. Just like APNS it sets up a Keep-Alive connection with the Apple servers. Every connection has its own unique code, which acts as an identifier for the route that should be used to send a message to a specific device. The connection is encrypted with TLS using a client side certificate, that is requested by the device on the activation of iMessage.