MMS infrastructure components#

oFono - responsible for providing the data context used to transfer MMS data (image/music). It also propagates wap push notifications to upper layers.

nuntium - daemon that listens to wap push notifications and activates the MMS data context on ofono on demand to send/receive MMS’s. It provides a local store.

telepathy-ofono - talks to nuntium through dbus and is used to both relay messages from phone-app to nuntium and inject into the telepathy infrastructure MMS’s received by nuntium as multi-part messages. This component also marks messages as read and delete successfully received messages from nuntium.

history-service - this component watches the telepathy communication and store the messages received by telepathy-ofono or sent by messaging-app.

telephony-service-approver - this component is in charge of adding SMS’s to the messaging menu and to display incoming text notifications.

messaging-app - It renders MMS’s in the conversation view and also provides a way to attach media files to a message in order to send an MMS.

General Description#

Incoming MMS#

  • An MMS WAP push notification is received by ofono and propagated to nuntium

  • nuntium enables the MMS context in ofono, retrieves the content from MMSC and propagates the new MMS to upper layers.

  • A new MMS arrives at telepathy-ofono.

  • If automatic retrieval is not enabled or not available at the moment, a control message is sent to the app

  • messaging-app request the retrieval of the message to telepathy-ofono.

  • After the message is retrieved from MMSC, it is delivered to the apps via normal text channel in a multi-part message (one text/html part, one text/plain part and one part per attachment). If the control message was previously delivered, this real message have a flag telling it is a replacement for the previous message.

  • The new message history service saves the attachment parts to disk, and replaces the paths on text/html to point to the new attachment locations. It also saves a flag and the content type.

Outgoing MMS#

  • messaging-app creates a new text channel in telepathy-ofono, or uses an existing channel.

  • messaging-app sends the MMS as a multi-part message to telepathy-ofono

  • nuntium enables the MMS context in ofono, sends the MMS through MMSC and signals the upper layers about the current status (sent, draft).

  • telepathy-ofono sends signals to applications with delivery reports.

Incoming MMS diagram#

incoming-MMS.png

Outgoing MMS diagram#

outgoing-MMS.png

References#