MMS messages are delivered using a combination of SMS and WAP technologies.
When a mobile phone receives an MMS message, what it is actually receiving is an MMS notification message which it receives over SMS (WAP Push). This MMS notification message contains header information about the MMS message, and a URL pointer that the recipient must fetch in order to retrieve the content of the MMS message.
This URL pointer is a dynamically generated URL for the MMS message content which is stored on the MMSC. In a typical phone-to-phone MMS transaction, the process of sending and receiving the MMS message works like this:
The sending phone initiates a data connection that provides TCP/IP network connectivity, usually over GPRS.
The sending phone performs an HTTP POST to an MMSC of the MMS message encoding in the MMS Encapsulation Format, as defined by the Open Mobile Alliance (openmobilealliance.org). The encoded MMS message includes all of the content of the MMS message, as well as header information, [color=red]including a list of intended recipients for the message. (Note: In most environments, the HTTP POST will be routed through a proxy server. Some devices will use wireless profiled HTTP and TCP through a WAP 2.0 proxy server, while other devices will use the Wireless Session Protocol, WSP, through a conventional WAP proxy server/gateway.)
The MMSC receives the MMS message submission and validates the message sender.
The MMSC stores the content of the MMS message and makes it available as a dynamically generated URL link.
The MMSC generates an MMS notification message, which is sent via WAP Push over SMS to the message recipient(s). This MMS notification message contains a URL pointer to the dynamically generated MMS content.
The recipient receives the MMS notification message. It then initiates a data connection that provides TCP/IP network connectivity (usually over GPRS).
The recipient phone performs an HTTP (or WSP) get to retrieve the MMS message content URL from the MMSC.