Closed Bug 937894 Opened 8 years ago Closed 8 years ago

[B2G][MMS] Unable to send MMS without having manually input MMS port value (AT&T SIM)


(Core :: DOM: Device Interfaces, defect)

Gonk (Firefox OS)
Not set



1.3 Sprint 5 - 11/22
blocking-b2g 1.3+
Tracking Status
firefox28 --- fixed


(Reporter: nkot, Assigned: bevis)



(Keywords: regression)


(2 files)

 Using AT&T SIM, the user is unable to send MMS until they manually input MMS port value (80). This issue been 

Repro Steps:
1) Updated Buri to BuildID: 20131112040207
2) Enable Data in Settings
3) Open Messages app 
4) Create a new MMS (any attachment - I use image from gallery)
5) Tap Send
 ==> It keeps spinning but message will never be sent
6) Once confirmed that MMS cannot be sent manually input MMS port value:
  Setting --> Cell&Data --> Message settings --> input 80 into MMS port field --> OK
7) Open Messages app and send out new MMS

 The MMS cannot be sent until the user manually input MMS port value (once set the MMS can be sent successfully)
 The MMS can be sent without having to modify messages settings

Environmental Variables:
Device: Buri 1.3
BuildID: 20131112040207
Gaia: a013d01d3a0ddee76f60e61f8306d280c10aafbf
Gecko: 581d180a37f3
Version: 28.0a1
Firmware Version: 20131104

does not happening on V1.2 - the user is able to send MMS with no issue

Repro frequency: 100%
Logcat will be provided
blocking-b2g: --- → koi?
Attached file logcat
attaching logcat (with 

Similar issue had been reported and fixed earlier in July,2013 see bug 898202
blocking-b2g: koi? → 1.3?
From the log, the port is set to -1.
However, it shall be protected by the following snippet:
    let port = this.mmsPort;
    if (port == -1) {   <-- -1 shall be modified to 80 before log is printed.
      port = 80;
      if (DEBUG) debug("getProxyInfo: port is not valid. Set to defult (80).");

    let proxyInfo =
      gpps.newProxyInfo("http", this.mmsProxy, port,
                        -1, null);
    if (DEBUG) debug("getProxyInfo: " + JSON.stringify(proxyInfo));

11-12 16:46:49.870: I/Gecko(140): -@- MmsService: getProxyInfo: {"host":"","port":-1,"type":"http","flags":1,"resolveFlags":0,"failoverTimeout":1800,"failoverProxy":null,"TRANSPARENT_PROXY_RESOLVES_HOST":1}
Assignee: nobody → btseng
Root cause found,
The protection is invalid because:
1. default value of "ril.mms.mmsport" is 0 if not set:
   - This can be checked from /data/b2g/mozilla/xxxx.default/prefs.js:
   - And the value is user_pref("ril.mms.mmsport", 0);
2. From the implementation in nsProtocolProxyService::NewProxyInfo():
   - if (aPort <= 0) aPort = -1;
   - The turn 0 to -1.

Hi Gene,
I would like to change it to |if (port <= 0)| to protect this instead.
Do you have better suggestion?
Flags: needinfo?(gene.lian)
1. Treat port <= 0 as invalid port because 
   - normally port is non-negative and port 0 is reserved according to
   - "ril.mms.mmsport" is set to 0 if not available the original protection is useless.
   - nsProtocolProxyService::NewProxyInfo will set port to -1 if port <= 0;
2. Clean up unused constants.
Attachment #831357 - Flags: review?(gene.lian)
Flags: needinfo?(gene.lian)
Target Milestone: --- → 1.3 Sprint 5 - 11/22
Attachment #831357 - Flags: review?(gene.lian) → review+
Nice catch! Bevis! Really appreciate your help! :)
Component: Gaia::SMS → DOM: Device Interfaces
Product: Firefox OS → Core
Closed: 8 years ago
Resolution: --- → FIXED
Blocking regression, so setting to 1.3+
blocking-b2g: 1.3? → 1.3+
Duplicate of this bug: 877417
You need to log in before you can comment on or make changes to this bug.