State of MMS on Librem 5

Realistically you want a working camera before you worry about sending an MMS - well, for my usage that’s true. Wouldn’t have to be true for everyone.

I think MMS handles more than just photos, though. Very long text messages and group messages, for example. As well as photos or small audio files (for example) that you have stored on the phone from any origin.


Yes. For my usage … no. I rather dislike group messages and I only ever send and receive photos. So, absent a camera, it is only useful to me to receive photos from other people - which is still useful to me.

Maybe it could be useful for some kind of voicemail, or maybe it is even needed for the standard carrier voicemail implementations (when they are not in the network). However that’s not something that I use much on my mainstream phone.

I wonder if iOS uses SMIL is some way to send the ‘special’ imessage animations. I also wonder if we can send the right code we can trigger the imessage animation from Chatty and it’s not some icloud service?

1 Like

SMIL seems very basic, I don’t know much about imessage but it probably use its own messaging system with a SMS/MMS compatibility


I didn’t realize there was a forum post here. To clear up a few things:

  • mmsd fully supports sending and recieving MMSes (assuming the MMS APN restriction is not in place, but that is a Modem Manager issue that is being worked on). This will work with Chatty. You can actually send MMSes via a python script if you have mmsd installed/configured right, and mmsd automatically downloads MMSes. Chatty just communicates with mmsd via the dbus to get MMS working.
  • There is a full reference MMS implimentation for chatty that I have working that supports sending/receiving any type of file, multiple files, and/or group MMS:

Right now I am really just waiting to help get it implimented into Chatty.

On the chatty side, the dev has been great to work with, but he has a higher priority now before he can start work on MMS integration.

On the mmsd side, I have attempted to contact the ofono maintainers through IRC and through the Mailing List. I heard a response once from them (before I tried to upstream changes), and they mentioned that mmsd hasn’t been worked on in 8 years. When I tried to submit my patches, I did not recieve any response through the mailing list or through IRC. If anyone has experience upstreaming changes for ofono (or knows how I could get a response from them), some help would be appreciated on this.


100 large MMS files sent to Gideon’s phone quickly drained his phone’s battery …

Elliot from Mr.Robot

For Ofono, seems like there is some activities on this project here,

Maybe you can try to contact one of the recent contributors :

  • Marcel Holtmann (seems one of the main authors)
  • Denis Kenzior (one of the main authors ? last contribution : 2021-02-22)
  • Alexey Andreyev (last contribution : 2021-02-22)
  • Sergey Matyukevich (last contribution : 2021-01-19)
    or many others visble here

I have questions for you on the progress of your work :

  • How is the integration in chatty ? I mean do you display the images and videos into chatty or is this still a file:// link to click on ?
  • About sending and receiving files (compressed archives, PDFs, …), did you tried between a ios/android and a gnu/linux phone ? or is it just working between gnu/linux phones ?

Anyway, Big thanks for your work on this !

1 Like

Several of those contributors are on the ofono Mailing List and/or the ofono IRC channel (judging by the traffic on the mailing list and/or the IRC present list). I really don’t want to resort to indivudally emailling them for patches if I don’t get a response on IRC nor from the mailing list.

As for your questions:

  • Chatty still shows a file:// link. This is really a front end issue, and I imagine it will get resolved due to the upcoming native matrix support.
  • I have been successful in sending/receiving any type of file I want, and I have sent PDFs, word docs, contact cards, images, video, gifs, even just a random binary file!
  • I have tested sending and receiving MMS with Mobian/Android and Mobian/Mobian. I do not own an iOS/Apple device, nor do I wish to, so I have not tested that. However, I see no reason it would not work. Android does not seem to behave well in sending/receiving some of these files (it downloads them, but you can’t save them nor can you really do anything with them). Amusingly, mmsd/Chatty on Mobian works better than MMS support does for Android.

I set a limit of 1.1 megabytes as the maximum total attachment size for an MMS, as this seems to be the maximum attachment limit for Android. However, that limit is a user definable setting. However, some carriers will silently reject MMSes that are too big, so I wanted to have it in place so if folks try to send a huge file, they won’t wonder why the MMS never sent.

mmsd has a hard coded limit of sending a maximum 25 attachments, and I don’t really see a reason to change that one.

As for SMIL: Android sometimes does not behave well if I send some combination of MMS attachments (like a contact card with a message), but I really haven’t looked at how SMIL works, much less how to make SMIL. mmsd/chatty really doesn’t care about receiving SMIL, I can find the attchments and display them, so I haven’t bothered to make an SMIL decoder/encoder.


@kop316 Many thanks for the details !

Just to make it available here (copied from a way to try and test MMS on the librem 5

sudo apt install git make build-essential build-dep
mkdir ~/src
cd ~/src
git clone
cd purple-mm-sms/
sudo apt install libebook-contacts1.2-dev
sudo apt install libpurple-dev libmm-glib-dev modemmanager
sudo make install
cd ~/src
git clone
cd mmsd
sudo apt install autotools-dev automake libtool
./bootstrap-configure --prefix=/usr/
sudo make install
cd ~/src
git clone
cd chatty
sudo apt -y build-dep .
meson build # or for debug mode: meson build -Db_sanitize=address -Dbuildtype=debug
ninja -C build
sudo ninja -C build install # if you want to replace regular install
sudo mv /etc/xdg/autostart/sm.puri.Chatty-daemon.desktop ~/ # or rm if you do not want to keep the file

To launch (or relaunch)

sudo killall mmsd
sudo killall chatty
~/src/mmsd/src/mmsd # or to debug: ~/src/mmsd/src/mmsd -n -d 'src/*'
~/src/chatty/build/run & # or to debug: G_MESSAGES_DEBUG=all ~/src/chatty/build/run --debug --verbose

You may have to configure the MMS APN in the ModemManagerSettings file before
I can’t assure you it works on Librem5 as I don’t have mine yet :stuck_out_tongue:

1 Like


If anyone is curious, I now made mmsd be able to process SMS WAPs without the need for purple-mm-sms or Chatty.

You do have to manually enable the setting in the settings file and restart mmsd.

Also so you know (if this was not obvious), mmsd alone fully supports sending MMS (i.e. group chats, attachments, etc.)


This seems great, but I don’t fully understand what it means.

What does that mean, without Chatty? Don’t we need Chatty to show the received MMS messages?

But I thought mmsd was a daemon running in the background, how could we send an MMS using mmsd alone?


So previously, I had mmsd depend on chatty/purple-mm-sms to process SMS WAPs (this is the first step in recieving an MMS). With the new code, it can do that itself and download MMS by itself. It saves it in a folder (but it is the whole payload), and has a dbus notification that makes it easy to parse (you can make a python script to parse them).

mmsd has always supported sending MMS. It is just also a daemon that can send them. You can see an example on how to do it here:

This method of sending works for both Group MMS, attachments, and a mix of!

So in other words, mmsd/modem manager fully supports MMS (though not in a very user friendly way).


@kop316, I successfully compiled mmsd on my Librem 5. Since you said it could work without purple-mm-sms and chatty I did not recompile those two. So I set the MMS APN settings in ModemManagerSettings based on what I had for Android. I started mmsd with debug on. When I sent an sms message it printed out something saying it wasn’t a message and ignored it. Chatty handled it. When I sent it an MMS message I got:

mmsd[1586]: ModemManagerPlugin(): Checking for new SMS WAPs
mmsd[1586]: ModemManagerPlugin(): Got SIM Path: /org/freedesktop/ModemManager1/SIM/0 Identifier: …, imsi: …
mmsd[1586]: ModemManagerPlugin(): This is not an SMS being recieved, do not care

I think this was the same message I got with the SMS message, but I am not sure. According to the code it appears this means either a MM_SMS_PDU_TYPE_STATUS_REPORT or a MM_SMS_PDU_TYPE_SUBMIT was received and the code ignored it. There is no other status. The MMS is of course stuck now. If I restart mmsd (with debug) I get the same message.

Any ideas? BTW, “recieved” in the message should be “received”. Also, I redacted the imsi etc. above.


@francepat Hello!

When I sent an sms message it printed out something saying it wasn’t a message and ignored it.

The debug message is that the SMS is not one that is being received, so for the purposes of watching for incoming SMS WAPs, mmsd does not care about them. It’s a way to help me debug problems. SMS WAPs are always “received”.

“When I sent it an MMS message I got:”

I assume you meant to say you “recieved” one. Sending MMS messages does not go through SMS, so there would be no output related to SMS activity for sent MMS messages.

With that assumption, not receiving SMS WAPs seems to be a known thing with the Librem 5. For some reason the difference in the modem between the Pinephone and the Librem 5 triggers a known issue in Modem Manager:

Mr. Elias Rudberg Has been able to fix the underlying issue. Some background discussion:

I have been working with some folks who have a Librem 5 (I do not have a Librem 5, as I am waiting for it to be shipped) to recreate Mr. Rudberg’s success in fixing the issue, but we have yet to be successful.

If you can, please join us in this Matrix room where we are working to fix it:!

BTW, “recieved” in the message should be “received”.

Derp, I always mess that up. I will fix it. Thanks!

1 Like

Sorry, I was using my Google Voice on Android to send messages. So when I said I sent it an MMS message I mean that I used GV on an Android phone to send an MMS to my Android phone.

@francepat No worries, I sort of assumed that is what you meant. Please read through the post and if you can, please help on the issue!

Great, I just tested sending an image as an MMS from the Librem 5 to my other phone and it worked!

Then I had first started mmsd like this:

./mmsd/src/mmsd -n -d

Then while that was running, the command to send the MMS looked like this, with the xxxxxxx part being phone number digits and bild.jpg my image file:

python3 mmsd/test/send-message "+4670xxxxxxx" "" "cid-1,image/jpeg,bild.jpg"

Starting with python3 was needed because /usr/bin/python does not exist.


Were you able to receive MMS? And did you try any of Elias’ fixes for it?

FYI, Elias posted a complete how to for recieving MMS on the Librem 5