MMS audio attachment (.amr file) cannot be played

REPRODUCIBILITY: 100%
OS VERSION: 4.4.0.68
HARDWARE: XA2 Ultra, 10 III
UI LANGUAGE: Polish, English
REGRESSION:

DESCRIPTION:

MMS with an audio attachment (an .amr file) cannot be played back. When I open the received MMS message and tap on the attached audio icon (a music note) to play it, it tries to open the audio file in the Multimedia app and fails with “Elements not found” and “Cannot open filename.amr” error messages.

Edit: if I manually locate the attachment in ~/.local/share/commhistory/data and tap on it in File Browser, I get an error message about unsupported AMR (Adaptive Multi-Rate) codec.

PRECONDITIONS:

None.

STEPS TO REPRODUCE:

  1. Receive an MMS with audio attachment (an .amr file).
  2. Open the MMS and try to listen to the audio attachment by tapping on it (represented by a music note icon)
  3. There will be an attempt to open the audio in Multimedia app, but it fails with “No elements found” and “Cannot open filename.amr” error message

EXPECTED RESULT:

The MMS audio attachment can be played back.

ACTUAL RESULT:

It is impossible to play back MMS audio attachments.

MODIFICATIONS:

None.

ADDITIONAL INFORMATION:

My operator (T-Mobile Poland) sends via MMS with audio attachment messages that people leave in voicemail. Until OS 4.4.0.68 I wasn’t able to receive such messages at all, because they have no “Subject” field and the Sailfish OS parser wasn’t accepting them (I was only getting an error message that the message couldn’t be received). OS 4.4.0.68 introduced a fix for this (relaxed parser rules), so I was extremely happy that now I can finally receive those voicemail messages. Sadly, it turned out that being able to receive them doesn’t help much, because they cannot be played back…

If I am not mistaken, AMR is the standard for MMS audio attachments, so SFOS should support it.

EDIT: After installing AMR gstreamer plugins (and the opencore libs they depend on) AMR playback is now supported system-wide. But it is still impossible to play .amr MMS attachments directly from the message, because the SFOS’ Multimedia app - apparently due to Sailjail restrictions - cannot access the file in ~/.local/share/commhistory/data, i.e. where MMS attachments are stored. It takes copying the file manually to somewhere else for the Multimedia app to be able to play it.

1 Like

The MMS attachment (an .amr file) can be found in a folder in ~/.local/share/commhistory/data. But it cannot be played. The error message is: Unsupported codec Adaptive Multi-Rate (AMR). Clearly, SFOS doesn’t have a codec to play an .amr file…

I was only able to manually open it in VLC (an Android media player) where it was played back just fine.I’ve uploaded a sample .amr MMS attachment here:

Sample .amr file that SFOS can’t play, extracted from MMS message:

https://file.io/qK7oYfEWXEmA

I think the gstreamer-plugins-ugly add AMR-NB an AMR-WB codec support. You might need to dig around a little though.

2 Likes

@hackman Thank you! Indeed, installing AMR plugins from gstreamer-plugins-ugly (as well as opencore libs they depend on) did the job and .amr files are now recognized and played back.

However, it is still impossible to play MMS attachments in Multimedia app directly from the message itself, because - apparently due to Sailjail restrictions - Multimedia app cannot access files in ~/.local/share/commhistory/data/ (i.e. where MMS attachments are stored). It takes manually copying the amr file to e.g. ~/Music for the Multimedia app to be able to open it (it doesn’t even work from ~/ but it must be one of the subfolders like Music).

Is there a way to whitelist a path so that Sailjail’d apps can access it?

Answering to myself… Adding

whitelist ${HOME}/.local/share/commhistory/data

to

/etc/sailjail/permissions/Music.permission

did the job. Now the Music (aka Multimedia) app can access that folder and play MMS audio attachments directly from within the message.

To recap, in order to play MMS audio attachments, one has to:

  • install gstreamer AMR plugins and opencore AMR libraries
  • whitelist ~/.local/share/commhistory/data folder in /etc/sailjail/permissions/Music.permission
3 Likes