Task:MMS


Contents

Introduction

The aim of this page is to list potential obstacles and solutions in regards to implementing MMS in Maemo 5 ”Fremantle” on the N900.

Use case

While this has been discussed much back and forth both on Talk and on #maemo, here are some points why MMS should be implemeneted:

  • Quickly sending private pictures to someone.
  • While most users tend to be able to receive MMS, there's a lot few with push e-mail on their phones atm (need citation, but this is what's come up in discussion; see Mms_implemention_conversation)
  • Another use case is to send your location from nokia maps over mms to quickly allow another person using nokia maps and gps find a location or service (e.g. bar, restaurant , etc).

The advantage MMS have over e-mail on the phone as well is it's generally less spammy; e.g. no Facebook notification mails etc.

Implementation

To successfully implement MMS sending and receiving on the N900 the following has to be done:

Hook in to SMS receiving

According to this post by danielwilms the final SDK for Maemo5 should let us do this through Telepathy. Hopefully. At least a way to handle SMS.

What's needed here is basically to extract the WAP PUSH message and then reply with the correct messages.

Fetch the MMS from the provider.

Multiple issues with this.

  • UI in Fremantle does currently only allow one packet data connection (ie APN). gconf MIGHT allow you to add multiple.
  • If the user only got access to GPRS the current connection (if in-use) have to to be temporarily suspended while fetching the MMS. This can probably be solved by doing a "Deffered Retrieval". [1]
  • Most operators only allow fetching of MMS when accessing via a specific APN. To access this you would have to temporarily suspend your current 3G connection and switch over to this (open a parallel? See below). On S60 you won't get dropped as long as you are on a 3G connection.
  • The functionality to handle the above problem is in linux-2.6.30+ (Fremantle runs 2.6.28) so if there is a future kernel upgrade, it should be possible to implement full MMS support. See this talk-post.
  • Applications should be able to request a certain IAP to be activated; thus should the MMS app be able to request the correct APN. Source


Format the MMS and display it correctly.

  • How open is the Messaging client?

Plenty of open source libs to do this in other languages:

  1. PHP1
  2. PHP2
  3. Java JavaSE/JavaME
  4. C
  5. Python
  6. Gammu+ with C++ implementation (compilable in Linux and Windows)

References

  1. Figure 7. Page 16