You are here
The gitorious repository now contains a broken mms-manager, a non functional mms-ui (because I changed the DBus interface ;-)), a preliminary mms viewer and a broken network connection manager. How pretty is that ? ;-)
I've been redesigning the DBus interfaces and I think I reached something. The UI can be easily adapted after that.
However, I'll be on vacation until the end of February. I can't work on mms until I'm back.
I'll try to commit and push the code I have on my laptop but the stuff will still be broken.
This is just a quick status.
Good wishes for the newly married couple ;-)
I'm still working on the MMS support for fremantle.
I've created a gitorious mms-support repository that hosts all my code. Clone it and check ;-)
git clone git://gitorious.org/mms-support/mms-support.git
I've improved the parser a bit. It should be capable of parsing the headers in my operator's notify-ind.
I've also implemented a wap push handler (Interface stolen from Frals ;-)) and managed to receive the notify-ind on my N900 :-D
There's also an untested connection-manager using libconic (Untested because there's no UI yet to configure it). I hate using conic for such things but it's the only available public interface :-(
I need to figure out how fit the whole thing together.
And no UI of any kind yet.
More posts later.
As promised yesterday, I'll start cleaning up my code a bit preparing to post it here.
Here's mkmms. It's a minimalistic application that allows you to create an MMS and attach ONLY 1 file which can be jpg, png, gif or txt (I hadn't tested anything beyond jpg).
Note that it's alpha quality.
There's also a parser that will print some info about any MMS passed as an argument but it's commented out.
Use it like this:
./mkmms <to address> /home/mohammed/me.jpg m-send-req.mms subject
It needs QtCore and only that.
Don't ask about the license. It uses some bits from Qt extended, some from mmsdec and some are my own but you should be OK if you assume GPL for now.
I wrote it to make sure the MMS library works and to generate MMS messages to test.
Next, I need to clean up my sending code and post it.
Now a bit about MMS:
MMS is just a bunch of attachments cooked together using the WSP encapsulation protocol.
A typical MMS consists of a header and a body. The header contains the From, To, CC, BCC, Subject, ... parts.
The body contains the actual parts. A part can be a video, an image, some text or anything (Not exactly sure).
Now there's something called SMIL out there.
SMIL is some sort of XML that tells the "phone" how to render the MMS. MMS can contain a SMIL part and that's usually the first part of the body (I think the standard demands it being the first part) but it doesn't have to be there.
For now, I'll ignore something called SMIL at all.
Next: Sending MMS to the actual gateway.
I've spent the past few days trying to get MMS to work on the N900.
I started by trying to enable receiving so I can try to monitor DBUS and see what's going on. This failed and my operator (Elisa Finland) sent me an SMS stating that they can't send me the MMS configuration and I have to send an MMS first (According to Google translate's Finnish to English translation).
I then decided to try implementing sending.
I needed a custom MMS encoder so I can build my MMS. I also discovered that I know nothing about these things and started working on an MMS encoder/decoder.
I used a sample MMS, enjected my number and kept trying.
After long hours of working, I managed to hear my N95 vibrating and it was it :-D
This is just a proof of concept. Sending works. I need to figure out how to receive the wap push notification and how to bring up the GPRS connection in a clean way.
I'll post detailed instructions and the code I used when I get some sleep ;-)
Here's the HTTP headers sent:
User-Agent: NokiaN95_8GB/31.0.015; Series60/3.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
Accept: */*, application/vnd.wap.mms-message, application/vnd.wap.sic
Accept-Charset: utf-8\r\nAccept-Language: en
Ah, and I didn't yet parse the reply I've received from elisa's server ;-)