meta data for this page
  •  

MMS support

A community member, kop316, has made great progress on MMS support. Until the various PRs get merged, here are some instructions to help get MMS working. You will download the sources and build both mmsd and purple-mm-sms, and then we will set up a systemd unit file to ensure mmsd starts up when the phone does.

First, let's install some development toolchain dependencies.

sudo apt install libpurple-dev libmm-glib-dev modemmanager glibc libtool automake autotools-dev libebook-contacts1.2-dev

Next we will download the sources for the two projects. I like to use a folder ~/Projects to store this git repos but it doesn't matter where you download the sources. First, purple-mm-sms

git clone https://source.puri.sm/kop316/purple-mm-sms.git
cd purple-mm-sms
git checkout mmsd
make
sudo make install

Next, mmsd

git clone https://source.puri.sm/kop316/mmsd.git
cd mmsd
git checkout ModemManager
./bootstrap-configure --prefix=/usr/
make
sudo make install

Now, for mmsd there is a config file for your Mobile network. If we attempt to start the daemon it will create the config, so as the mobian user go ahead and:

/usr/libexec/mmsd

We will need to edit the file $HOME/.mms/modemmanager/ModemManagerSettings. If you look up the APN settings for your carrier you should be able to fill out the fields (last of the three is optional). Here is my example for Verizon,

 
[Modem Manager]
CarrierMMSC=http://mms.vtext.com/servlets/mms
MMS_APN=vzwinternet
CarrierMMSProxy=NULL

Another example for T-Mobile:

[Modem Manager]
CarrierMMSC=http://mms.msg.eng.t-mobile.com/mms/wapenc
MMS_APN=fast.t-mobile.com
CarrierMMSProxy=NULL

Lastly, we will need to create a systemd unit. I am unsure of all the environment dependencies, so the first thing to do is create an environment file from the mobian user.

sudo mkdir -p /etc/mmsd
sudo nano /etc/mmsd/mmsd.env

Add the following line (the file will be empty):

DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus

Now we can create the unit file with sudo vim /etc/systemd/system/mmsd.service and add the following content:

[Unit]
Description=MMSD
After=ModemManager.service  eg25-manager.service

[Service]
ExecStart=/usr/libexec/mmsd -n
User=mobian
Group=mobian
EnvironmentFile=/etc/mmsd/mmsd.env

Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

Finally, ensure that the unit is enabled and go ahead and start it:

sudo systemctl daemon-reload
sudo systemctl enable mmsd
sudo systemctl start mmsd

Please refer to these upstream links for any comments, hopefully they will get merged and this section can be removed soon.

https://source.puri.sm/kop316/purple-mm-sms

https://source.puri.sm/fuzzy7k/purple-mm-sms/-/merge_requests/2

https://source.puri.sm/kop316/mmsd