cannot receive MMS using AT+T

Bug #1324157 reported by Bill Filler
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
messaging-app
Fix Released
High
Tiago Salem Herrmann
mobile-broadband-provider-info (Ubuntu)
Invalid
High
Mathieu Trudel-Lapierre
network-manager (Ubuntu)
Fix Released
High
Mathieu Trudel-Lapierre
nuntium (Ubuntu)
Fix Released
Undecided
Sergio Schvezov
ofono (Ubuntu)
Fix Released
High
Tony Espy

Bug Description

using build 51
MMS recv support is enabled but I cannot receive any attachments with At+t as my service provider. I tried with both wifi enabled and disabled

Here are the logs and contexts
phablet@ubuntu-phablet:~$ /usr/share/ofono/scripts/list-contexts
[ /ril_0 ]
    [ /ril_0/context1 ]
        MessageProxy = proxy.mobile.att.net
        Protocol = ip
        Name = ATT Phone
        Username =
        IPv6.Settings = { }
        Active = 0
        Settings = { }
        MessageCenter = http://mmsc.mobile.att.net
        Password =
        Type = internet
        AccessPointName = phone

    [ /ril_0/context2 ]
        MessageProxy = wireless.cingular.com
        Protocol = ip
        Name = ATT WAP
        Username =
        IPv6.Settings = { }
        Active = 0
        Settings = { }
        MessageCenter = http://mmsc.cingular.com/
        Password =
        Type = internet
        AccessPointName = wap.cingular

    [ /ril_0/context3 ]
        MessageProxy = mms3.tracfone.com
        Protocol = ip
        Name = TracFone
        Username =
        IPv6.Settings = { }
        Active = 0
        Settings = { }
        MessageCenter = http://mms-tf.net
        Password =
        Type = internet
        AccessPointName = tfdata

    [ /ril_0/context4 ]
        Protocol = ip
        Name = LaptopConnect (data cards)
        Username =
        IPv6.Settings = { }
        Active = 1
        Settings = { Address=10.242.218.1 Interface=rmnet_usb0 Gateway=10.242.218.2 Method=static Netmask=255.255.255.0 DomainNameServers=172.26.38.1,172.26.38.2, }
        Password =
        Type = internet
        AccessPointName = Broadband

    [ /ril_0/context5 ]
        Protocol = ip
        Name = Data Connect (old)
        Username =
        IPv6.Settings = { }
        Active = 0
        Settings = { }
        Password =
        Type = internet
        AccessPointName = isp.cingular

    [ /ril_0/context6 ]
        Protocol = ip
        Name = LTE
        Username =
        IPv6.Settings = { }
        Active = 0
        Settings = { }
        Password =
        Type = internet
        AccessPointName = pta

    [ /ril_0/context7 ]
        Protocol = ip
        Name = Internet
        Username =
        IPv6.Settings = { }
        Active = 0
        Settings = { }
        Password =
        Type = internet
        AccessPointName = att.mvno

nuntium.log:

phablet@ubuntu-phablet:~$ cat .cache/upstart/nuntium.log
2014/05/28 09:25:49 Received ReceiveNotification() method call from 1111301000
2014/05/28 09:25:49 Push data
00000000 01 06 27 61 70 70 6c 69 63 61 74 69 6f 6e 2f 76 |..'application/v|
00000010 6e 64 2e 77 61 70 2e 6d 6d 73 2d 6d 65 73 73 61 |nd.wap.mms-messa|
00000020 67 65 00 af 84 8d 01 81 b4 84 8c 82 98 43 44 30 |ge...........CD0|
00000030 35 32 38 31 33 32 35 34 35 34 30 30 30 33 38 30 |5281325454000380|
00000040 30 30 30 30 30 30 30 30 00 8d 90 89 18 80 2b 31 |00000000......+1|
00000050 36 31 37 36 39 39 30 36 35 35 2f 54 59 50 45 3d |6176990655/TYPE=|
00000060 50 4c 4d 4e 00 96 02 ea 00 8a 80 8e 02 80 00 88 |PLMN............|
00000070 05 81 03 05 46 00 83 68 74 74 70 3a 2f 2f 31 36 |....F..http://16|
00000080 36 2e 32 31 36 2e 32 33 30 2e 35 3a 38 30 31 35 |6.216.230.5:8015|
00000090 2f 30 35 32 38 31 33 32 35 34 35 34 30 30 30 33 |/052813254540003|
000000a0 38 30 30 30 30 30 30 30 30 30 00 |8000000000.|
Setting HeaderLength to 39
Setting ContentType to application/vnd.wap.mms-message
Setting ApplicationId to 4
Setting TransactionId to CD0528132545400038000000000
Setting Version to 0x10 == 16
Setting From to +16176990655/TYPE=PLMN
Next string encoded with: utf-8
Setting Subject to
Setting Class to 0x80 == 128
Setting Size to 32768
Expiry token: 81
Message Expiry 197958, 0
Setting ContentLocation to http://166.216.230.5:8015/0528132545400038000000000
2014/05/28 09:25:49 Context type: internet MessageCenter: http://mmsc.mobile.att.net MessageProxy: proxy.mobile.att.net Active: false
2014/05/28 09:25:49 Context type: internet MessageCenter: http://mmsc.cingular.com/ MessageProxy: wireless.cingular.com Active: false
2014/05/28 09:25:49 Context type: internet MessageCenter: http://mms-tf.net MessageProxy: mms3.tracfone.com Active: false
2014/05/28 09:25:49 Context type: internet MessageCenter: MessageProxy: Active: true
2014/05/28 09:25:49 Context type: internet MessageCenter: MessageProxy: Active: false
2014/05/28 09:25:49 Context type: internet MessageCenter: MessageProxy: Active: false
2014/05/28 09:25:49 Context type: internet MessageCenter: MessageProxy: Active: false
2014/05/28 09:25:49 Cannot activate ofono context: No mms contexts found
2014/05/28 09:29:16 Received ReceiveNotification() method call from 1111301000
2014/05/28 09:29:16 Push data
00000000 01 06 27 61 70 70 6c 69 63 61 74 69 6f 6e 2f 76 |..'application/v|
00000010 6e 64 2e 77 61 70 2e 6d 6d 73 2d 6d 65 73 73 61 |nd.wap.mms-messa|
00000020 67 65 00 af 84 8d 01 81 b4 84 8c 82 98 41 36 30 |ge...........A60|
00000030 35 32 38 31 33 32 39 31 31 35 30 30 30 31 38 30 |5281329115000180|
00000040 30 30 30 35 30 30 30 30 00 8d 90 89 18 80 2b 31 |00050000......+1|
00000050 36 31 37 36 39 39 30 36 35 35 2f 54 59 50 45 3d |6176990655/TYPE=|
00000060 50 4c 4d 4e 00 96 02 ea 00 8a 80 8e 02 80 00 88 |PLMN............|
00000070 05 81 03 05 46 00 83 68 74 74 70 3a 2f 2f 31 36 |....F..http://16|
00000080 36 2e 32 31 36 2e 31 39 38 2e 35 3a 38 30 30 38 |6.216.198.5:8008|
00000090 2f 30 35 32 38 31 33 32 39 31 31 35 30 30 30 31 |/052813291150001|
000000a0 38 30 30 30 30 35 30 30 30 30 00 |8000050000.|
Setting HeaderLength to 39
Setting ContentType to application/vnd.wap.mms-message
Setting ApplicationId to 4
Setting TransactionId to A60528132911500018000050000
Setting Version to 0x10 == 16
Setting From to +16176990655/TYPE=PLMN
Next string encoded with: utf-8
Setting Subject to
Setting Class to 0x80 == 128
Setting Size to 32768
Expiry token: 81
Message Expiry 197958, 0
Setting ContentLocation to http://166.216.198.5:8008/0528132911500018000050000
2014/05/28 09:29:16 Context type: internet MessageCenter: http://mmsc.mobile.att.net MessageProxy: proxy.mobile.att.net Active: false
2014/05/28 09:29:16 Context type: internet MessageCenter: http://mmsc.cingular.com/ MessageProxy: wireless.cingular.com Active: false
2014/05/28 09:29:16 Context type: internet MessageCenter: http://mms-tf.net MessageProxy: mms3.tracfone.com Active: false
2014/05/28 09:29:16 Context type: internet MessageCenter: MessageProxy: Active: true
2014/05/28 09:29:16 Context type: internet MessageCenter: MessageProxy: Active: false
2014/05/28 09:29:16 Context type: internet MessageCenter: MessageProxy: Active: false
2014/05/28 09:29:16 Context type: internet MessageCenter: MessageProxy: Active: false
2014/05/28 09:29:16 Cannot activate ofono context: No mms contexts found
2014/05/28 09:55:20 Received ReceiveNotification() method call from 1111301000
2014/05/28 09:55:20 Push data
00000000 01 06 27 61 70 70 6c 69 63 61 74 69 6f 6e 2f 76 |..'application/v|
00000010 6e 64 2e 77 61 70 2e 6d 6d 73 2d 6d 65 73 73 61 |nd.wap.mms-messa|
00000020 67 65 00 af 84 8d 01 81 b4 84 8c 82 98 43 37 30 |ge...........C70|
00000030 35 32 38 31 33 35 34 35 39 34 30 30 30 32 31 30 |5281354594000210|
00000040 30 30 30 36 30 30 30 30 00 8d 90 89 18 80 2b 31 |00060000......+1|
00000050 36 31 37 36 39 39 30 36 35 35 2f 54 59 50 45 3d |6176990655/TYPE=|
00000060 50 4c 4d 4e 00 96 02 ea 00 8a 80 8e 02 80 00 88 |PLMN............|
00000070 05 81 03 05 46 00 83 68 74 74 70 3a 2f 2f 31 36 |....F..http://16|
00000080 36 2e 32 31 36 2e 32 33 30 2e 35 3a 38 30 30 39 |6.216.230.5:8009|
00000090 2f 30 35 32 38 31 33 35 34 35 39 34 30 30 30 32 |/052813545940002|
000000a0 31 30 30 30 30 36 30 30 30 30 00 |1000060000.|
Setting HeaderLength to 39
Setting ContentType to application/vnd.wap.mms-message
Setting ApplicationId to 4
Setting TransactionId to C70528135459400021000060000
Setting Version to 0x10 == 16
Setting From to +16176990655/TYPE=PLMN
Next string encoded with: utf-8
Setting Subject to
Setting Class to 0x80 == 128
Setting Size to 32768
Expiry token: 81
Message Expiry 197958, 0
Setting ContentLocation to http://166.216.230.5:8009/0528135459400021000060000
2014/05/28 09:55:20 Context type: internet MessageCenter: http://mmsc.mobile.att.net MessageProxy: proxy.mobile.att.net Active: false
2014/05/28 09:55:20 Context type: internet MessageCenter: http://mmsc.cingular.com/ MessageProxy: wireless.cingular.com Active: false
2014/05/28 09:55:20 Context type: internet MessageCenter: http://mms-tf.net MessageProxy: mms3.tracfone.com Active: false
2014/05/28 09:55:20 Context type: internet MessageCenter: MessageProxy: Active: true
2014/05/28 09:55:20 Context type: internet MessageCenter: MessageProxy: Active: false
2014/05/28 09:55:20 Context type: internet MessageCenter: MessageProxy: Active: false
2014/05/28 09:55:20 Context type: internet MessageCenter: MessageProxy: Active: false
2014/05/28 09:55:20 Cannot activate ofono context: No mms contexts found
phablet@ubuntu-phablet:~$
phablet@ubuntu-phablet:~$
phablet@ubuntu-phablet:~$

Tags: rtm14
Bill Filler (bfiller)
tags: added: rtm14
Bill Filler (bfiller)
Changed in messaging-app:
importance: Undecided → High
status: New → Confirmed
Tony Espy (awe)
Changed in ofono (Ubuntu):
status: New → Triaged
importance: Undecided → High
Changed in nuntium (Ubuntu):
status: New → Invalid
Changed in network-manager (Ubuntu):
status: New → Triaged
no longer affects: ofono
Changed in messaging-app:
status: Confirmed → Invalid
description: updated
Revision history for this message
Tony Espy (awe) wrote :

The cause of this bug is that our current GPRS/MMS provisioning strategy is over-ambitious in that it attempts to provision from both mobile-broadband-provider-info ( /usr/share/mobile-broadband-provider/serviceproviders.xml ) and apns-conf.xml ( located in /system/etc, and part of our android package ).

A couple of points...

1. Our provisioning plugin is part of the Ubuntu ofono package. It's called android-provision, it's source code can be found here:

https://github.com/rilmodem/ofono/blob/master/plugins/android-provision.c

It first queries apns-conf, then queries mbpi and will only add results from mbpi if their no collision with an already added APN from apns-conf that has the same value for "apn".

2. The second point is that provisioning works by grabbing all of the APNs that match a particular set of criteria pulled from the SIM card ( mobile-country-code, mobile-network-code, servic-provider-name, ... ). It's then NetworkManager's responsibility to try each in sequence and when it finds one that works, mark that APN/connection with a "last-connected-time".

3. Some operators define stand-alone APNs for MMS usage. These APNs are not affected by this problem. Unfortunately AT&T uses the mixed context type.

4. With our current logic, it's possible that more than one context is provisioned that is valid for Internet/GPRS usage by a particular subscriber. In your case, both "ATT Phone" and "Laptop Connect (data cards)" are valid. If "ATT Phone" had been the context activated, everything would have worked, but in this case NM chose "Laptop Connect (data cards)" which doesn't support MMS, so this is why MMS doesn't work.

5. The mbpi APN was used for one of two reasons.... a) there used to be a bug in NM where it didn't walk thru the APNs in sequence or b) NM tried to activate "ATT Phone", failed, and thus moved on to "Laptop Connect (data cards)". My guess is that the latter happened, but without the syslog, it's hard to tell. My guess though is that it's case (b), as I'm pretty sure (a) was fixed before image #51 was released.

Changed in mobile-broadband-provider-info (Ubuntu):
status: New → Triaged
Changed in network-manager (Ubuntu):
importance: Undecided → High
Changed in ofono (Ubuntu):
assignee: nobody → Tony Espy (awe)
Changed in network-manager (Ubuntu):
assignee: nobody → Mathieu Trudel-Lapierre (mathieu-tl)
Changed in mobile-broadband-provider-info (Ubuntu):
assignee: nobody → Mathieu Trudel-Lapierre (mathieu-tl)
importance: Undecided → High
Revision history for this message
Tony Espy (awe) wrote :

We discussed how to fix this during the sprint and came up with two fixes that need to be implemented.

1. Remove mbpi from the Touch seed. Note, this may result in some people having broken GPRS if they re-flash with --wipe. This would only occur if a working APN existed in mbpi as opposed to apns-conf. We've decided that this is an acceptable risk, and will ask people that encounter this situation to file bugs against our android project so that apns-conf.xml can be updated. As part of this change, the ofono provisioning plugin will also be changed to no longer query mbpi ( as the file won't exist on disk anymore ). This is why tasks are still open against mbpi and ofono.

2. Change NetworkManager to only use the last-connected APN and not try different APNs if a failure occurs while connecting. An open task exists for NetworkManager to implement this change. This is less of a priority than the mbpi fix, but should be implemented non-the-less.

Revision history for this message
Tony Espy (awe) wrote :

Note, finally we're *still* waiting for an Edit Access Points UI to appear in Cellular System Settings. Until it does, there may be some people that may need to stop ofono ( as root ), hand edit the gprs settings file ( located in /var/lib/ofono/<IMSI>/ ) and reboot.

In the case of this particular bug that technique could be used to work around the problem by stopping ofono, hand editing the file and deleting all contexts except for "ATT Phone" and re-starting ofono ( or rebooting ).

Revision history for this message
Tony Espy (awe) wrote :

Note, we're going to tie the mbpi-based fix for this bug to the landing of the Cellular System Settings - Edit APNs UI. As soon as I have an ETA on the settings work, I'll update the bug.

Until then, MMA on AT&T will require the manual workaround as described in comment #3.

Revision history for this message
Bill Filler (bfiller) wrote :

applying the manual fix per comment #3 does make it work

Revision history for this message
Bill Filler (bfiller) wrote :

Exact steps to edit the apn settings:
1) sudo stop ofono
2) sudo vi /var/lib/ofono/<IMSI>/gprs
remove all context's except the one named "ATT Phone". Should look like this after you are done:

[Settings]
Powered=true
RoamingAllowed=false

[context1]
Name=ATT Phone
AccessPointName=phone
Username=
Password=
Type=internet
Protocol=ip
MessageProxy=proxy.mobile.att.net:80
MessageCenter=http://mmsc.mobile.att.net

3) sudo start ofono (or reboot)

Now MMS recv should work on AT+T network

Revision history for this message
Pat McGowan (pat-mcgowan) wrote :

Seems the root cause was that NM somehow initially used a different context and remembered it.
Another workaround is to stop ofono and delete the gprs file entirely so it gets regenerated. Then it picks the right apn.

Tony Espy (awe)
Changed in mobile-broadband-provider-info (Ubuntu):
status: Triaged → Invalid
Changed in ofono (Ubuntu):
status: Triaged → Fix Released
Revision history for this message
Tony Espy (awe) wrote :

I marked the ofono (Ubuntu) task as FixReleased as of version 1.12.bzr6870+14.10.20140721-0ubuntu1 of ofono ( which landed in image #u144 ). I was able to send a MMS from an Android phone with a T-Mobile SIM to my mako with an AT&T SIM.

A couple of issues seen...

1. The incoming message notification sound played, however the phone didn't turn on the screen, nor did the messaging indicator show a new incoming message.

2. When I opened the messaging-app, the MMS was displayed, however there appears to be a minor parsing issue as the test "<smil>" is included with the photo ( which was sent without accompanying text ). I've opened a nuntium task to track this...

Changed in nuntium (Ubuntu):
status: Invalid → New
assignee: nobody → Sergio Schvezov (sergiusens)
Tony Espy (awe)
Changed in nuntium (Ubuntu):
status: New → Invalid
Revision history for this message
Tony Espy (awe) wrote :

Re-closed the nuntium task as this is a messaging-app problem.

Revision history for this message
Tony Espy (awe) wrote :

OK, now I've re-opened the nuntium and messaging-app tasks as I've discovered that only messages *without* associated text are being received. This might be related to bug #1347079 which describes what's most likely a parsing error in the messaging-app.

There's also some weirdness with the screen not waking on an incoming MMS w/out text, but I think that's a different problem.

Changed in nuntium (Ubuntu):
status: Invalid → Confirmed
Changed in messaging-app:
status: Invalid → Confirmed
assignee: nobody → Tiago Salem Herrmann (tiagosh)
Revision history for this message
Sergio Schvezov (sergiusens) wrote :

@tony: This should probably be a new bug, this one has loads of data not relevant to the latest thing you are seeing.

I am missing:
~/.cache/upstart/nuntium.log
output of $ dbus-monitor sender=org.ofono.mms
From the nuntium log the last retrieved message file in the nuntium store (only if there was a decoding error).

From the dbus-monitor output we can then determine where the problem lies.

Changed in nuntium (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
Tony Espy (awe) wrote :

@Sergio

OK, for some reason I can't reproduce the issue with MMS messages with text not being received. I just re-tested and I'm able to send several MMS messages from an Android phone to Ubuntu and all were received OK.

I'm still going to create a new bug for the screen not being turned on.

Tony Espy (awe)
Changed in messaging-app:
status: Confirmed → Fix Released
Changed in nuntium (Ubuntu):
status: Incomplete → Fix Released
Revision history for this message
Tiago Salem Herrmann (tiagosh) wrote :

powerd listens to ofono for the IncomingMessage() signal, which is not emitted for mms's.
Either it should listen for WAP push notifications or we should move this code to telephony-service, so we can better control the behavior.

Bill Filler (bfiller)
Changed in network-manager (Ubuntu):
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.