MMS Decoder is a PHP class I’ve written, which can be used to allow people to send MMS to a webpage. I have a sample webapp running which demonstrates this.

The only requirement to get this to work is an internet connected webserver, with PHP support and a phone which can send MMS (some operators may have blocked all MMS servers except their own, and the application will not work with these).

Ok, before I describe how this works, I feel I need to clarify some things. MMS Decoder is released under Affero General Public License. This means that you are free to use, copy, distribute MMS Decoder as much as you want, as long as you are ready to relase the source code under the same license. And not only the source code of MMS Decoder, but all source code for the whole program using MMS Decoder. So if you are doing a commercial product, and you are not ready to release the source code for the software, you are not allowed to distribute MMS Decoder with that product. However, you can pay for a commerical license, where you do not need to disclose the source code. In case you are interested in this, I suggest you contact me (jonatan at heyman dot info), I may also be available as a consult if you are interested in that.

When an MMS is sent, it’s usually sent to the operators MMSC, which notifies the reciever (by a binary encoded SMS) that she or he has an MMS to retrieve, then his or her phone connects to the MMSC server and fetches the MMS which has been made available on the server via HTTP. What my web application actually do is to pretend to be an MMSC, recieves the MMS, decodes it (it’s encoded as specified in the WAP-209-MMSEncapsulation-20020105-a and wap-230-wsp-20010705-a specifications) and then stores it. The only thing you need to do to make this work on your phone, is to set the phones MMSC (may also be labeled Service Center, MMS Center, or MMS Server) to, or something like that, and then start sending MMS messages. And best of all, it will not cost you like 20 cents which the phone operators charge, the only cost is what your operator charge for WAP access (usually a lot less than the MMS cost), since the MMS is sent over WAP.

MMS Decoder was first written as a school project, and therefore I’ve written a very detailed report of the decoding mechanism. This is, how ever, written in swedish so it would not be useful to anyone who doesn’t know swedish. You can grab the report here.

This project was heavily inspired by Peffisaur.


2010-01-08 New version released (0.82)! Some bug fixes, and improvements. Also, MMS Decoder’s source code is now hosted on GitHub!
2009-04-14 A new version (0.81) is released! This is what’s new:
  • Should comply with the MMS 1.2 specification.
  • No warnings when running on PHP in strict mode
  • Some bugs had slipped into the example application of the 0.80 release, these are now fixed.
See the changelog file in the release for more info. Go ahead and grab a copy below.
2008-10-29 Ok, so now I’ve released a new version (0.80) that contains a couple of bugfixes (thanks to everyone who have pointed them out) and also support for UTF8 encoding (in Encoded-string-value fields). You can grab a copy below.
2006-05-09 No news, sorry! Will let everyone know when I get time to work on MMS Decoder again

Source code: