iPhone MMS Message Send Failure on GPRS and EDGE

Posted by on Jan 12, 2011 in Support Blog

Topic Keywords: , ,

We’ve recently investigated a problem reported by a NowSMS MMSC customer where iPhone 4 users were reporting a high volume of failed MMS message sending.

Our investigation suggests that this problem is related to a software issue in the iPhone MMS client, when operating outside of 3G coverage.  There is no problem in the operation of either the NowWAP Gateway or the NowSMS MMSC.

(Note:  Problems with accounting callbacks and routing callbacks in the NowSMS MMSC can cause similar sporadic problems if the web server hosting the callbacks has problems with HTTP Keep-Alive sockets.  To rule out this being a problem, we recommend editing MMSC.INI, and under the [MMSC] header, add RoutingKeepAlive=No and AccountingKeepAlive=No.)

The iPhone appears to have an overall maximum timeout for sending an MMS message.  If it cannot send the entire content of the MMS message within this timeout period, it aborts the attempt and returns an error indication to the sender.   It is unclear exactly how the iPhone determinates this timeout value, as our tests suggest that it is somewhat variable and ranges between 2-1/2 and 3-1/2 minutes.

If an MMS message cannot be transmitted within this timeout period, the iPhone gives up, and automatically initiates a second attempt, and if that attempt fails with a similar timeout error, it returns the dreaded red “!” to indicate that the message sending failed.  If this type of timeout error has occurred, the red “!” will be returned after 5 to 7 minutes.
iPhone MMS Sending FailureThis problem is not likely to occur in 3G or HSPA coverage areas, but is more likely to happen in 2.5G coverage areas, especially areas that only have GPRS, but not EDGE, or areas with weaker signal strength, because the data upload speeds are slower, and it takes longer to transmit a message.

It appears that iOS 4.x will generally try to send larger image sizes in MMS messages than previous releases.  During testing, we found that one of the test images that we were sending, taken with the iPhone 4 camera, was 950KB in size.   In order to send a 950KB message in 2 minutes or less, the network must be able to provide an average upload speed of 80 Kbps, which is possible with a strong EDGE class 10 connection (max possible upload speed is 118Kbps), but not with GPRS (max possible upload speed is 40Kbps).

Note:  When the iPhone is connected with EDGE, it should “E” next to the operator name, instead of “3G”.   If the phone is connected with GPRS only, a dot is shown instead.

Depending on operator configuration, the iPhone advertises itself to the MMSC as supporting a maximum message size of 1MB (UAProf = http://www.apple.com/mms/uaprof.rdf) or 2MB (UAProf = http://iphonemms.apple.com/iphone/uaprof-2MB.rdf)

To rule out any issues potentially related to either NowWAP or the NowSMS MMSC, these same timeout values were observed testing standard issue operator locked iPhones on O2 in the UK and AT&T in the USA with 3G mode disabled on the phone.

Note that in jailbroken iPhones, it is possible to configure a “MMS Max Message Size” in the “Cellular Data Network” settings.  We experimented with lowering this value, however it appeared that when this value was lowered, if a message was going to exceed this size value, the iPhone would quickly fail the message with a red “!”, without actually attempting to send the message.  (Based upon these brief tests, it is not clear what algorithm the iPhone uses to scale down a picture before sending, as the 950KB picture that we referenced above actually has a native size of 2.7MB, and was taken with HDR enabled.)

The bottom line appears to be that sending pictures via MMS will frequently fail if the iPhone 4 is operating in a 2.5G (“E” for EDGE or a dot for GPRS) environments.  The problem is due to a sending timeout implemented in the MMS client software in the device.  This problem can only be resolved by changing this timeout in the MMS client software implementation, or changing the MMS client to have an option to send lower resolution pictures when operating in 2.5G environments.  There does not appear to be any solution that can be implemented on the mobile operator side.

To avoid frustration, it is recommended that users avoid sending picture or video messages when operating outside of a 3G coverage area.

For comments and further discussion, please click here to visit the NowSMS Technical Forums (Discussion Board)...

6 Responses to “iPhone MMS Message Send Failure on GPRS and EDGE”

  1. This is interesting. I don’t understand all of the techie jargon, but I think I understand enough.

    I’d like to add that this problem affects me (and most likely other AT&T customers) on 3G. I’ve been frustrated that I am never able to send a picture message from my iPhone 4 when I am at home. I see that stupid red “!”, and no matter how many times I retry, it won’t work. But I discovered that if I try resending the next day from work, the picture messages send with no problem.

    I’ve searched around and found others that complain about similar problems, but never any complete information. I read your post and now I understand why this happens to me.

    At home, I have an AT&T 3G Microcell. This is a device that plugs into my home broadband network and provides a 3G signal for my iPhone. I read elsewhere that this device is capped with a 64Kbps upload max speed, which is below the 80Kbps minimum requirement that you mention here.

    I wish AT&T (or Apple) would read this. Of course I’m more frustrated with AT&T! 64Kbps is hardly what anyone would consider 3G speed!!! I tried AT&T support, and they tell me the Microcell is intended for voice, not data, and I should use in home WiFi for data. I do use in home WiFi for data access on my iPhone, but MMS picture messages seem to use the Microcell. Is there any way I can configure my iPhone 4 to send MMS over WiFi?

    • Unfortunately, no, you cannot send MMS over WiFi. It needs to be sent out over the cellular network for the provider to be able to identify and authentication your phone as the one sending the message.

      MMS clients (such as the one built into the iPhone) need to be better designed to understand how long it may take (and how much data is being sent) in less than ideal conditions.

      In the case of the iPhone, I’m glad to see that larger resolution pictures are being sent. One of the biggest complaints we hear from customers is about poor resolution when sending pictures via MMS.

      They either need to scale down their images a little further when sending via MMS, or increase the allowed timeout.

      Of course a femtocell (generic technical term for the Microcell that you mention) that only supports 64Kbps upstream is a rather unexpected limitation.

  2. Dawn Shaver says:

    This is all very interesting. I too have an iPhone 4. I am unable to send MMS messages from my home Wi-Fi but I can from my business Wi-Fi. I set up both places with same equipment and have the same Internet provider. So why?

    • Hi Dawn,

      MMS never gets sent over WiFi. It always goes over the operator data network (or femtocell like the AT&T Microcell). This is required so the mobile operator can authenticate your identity (phone number). So data speed on the operator network (no WiFi) is key.

      • Dawn Shaver says:

        Before, when I had a Motorola Q9h, I could send MMS pics from home, business, anywhere. So I’m assuming the MMS issues are only from iPhone’s? And in response to your reply, if my pics aren’t being sent on Wi-Fi from my office, then they are going over the Edge network because that’s all that area has.

        • Two issues combine to make a difference. The image size of pictures sent via MMS by the iPhone (especially the 4) is larger than most other phones. It is not just an issue of megapixel density, as all phones scale images down before sending via MMS, iPhone OS 4 just doesn’t scale down as small to try to send a richer image.

          The large size of the image takes longer to transmit on EDGE or GPRS (see examples in the post), but the iPhone will not wait long enough.

          The iPhone software needs to wait longer, or scale down the image more.