Closed Bug 921326 Opened 6 years ago Closed 6 years ago

Cellbroadcast API: support multiple sim cards

Categories

(Firefox OS Graveyard :: RIL, defect)

x86_64
Linux
defect
Not set

Tracking

(feature-b2g:2.1, tracking-b2g:backlog)

VERIFIED FIXED
2.0 S4 (20june)
feature-b2g 2.1
tracking-b2g backlog

People

(Reporter: hsinyi, Assigned: bevis)

References

Details

(Whiteboard: [cr 664320][p=5][2.1-feature-qa+])

User Story

If I have multiple SIM cards, I should be able to support multiple CB messages such that the UX can show which network each message is coming from.

Attachments

(5 files, 8 obsolete files)

5.22 KB, patch
bevis
: review+
Details | Diff | Splinter Review
1.29 KB, patch
hsinyi
: review+
Details | Diff | Splinter Review
8.12 KB, patch
bevis
: review+
Details | Diff | Splinter Review
4.32 KB, patch
hsinyi
: review+
Details | Diff | Splinter Review
11.45 KB, patch
bevis
: review+
Details | Diff | Splinter Review
No description provided.
Blocks: 947229
blocking-b2g: --- → 1.4?
Whiteboard: [ft:ril]
This is a 1.4+ bug.
blocking-b2g: 1.4? → 1.4+
Assignee: nobody → htsai
Here we will need some changes in the gaia side as well. Remember we set up the list of CB channels from Gaia and enable/disable the service as well. I'll keep an eye on this bug that way I could take care of it.
(In reply to José Antonio Olivera Ortega [:jaoo] from comment #2)
> Here we will need some changes in the gaia side as well. Remember we set up
> the list of CB channels from Gaia and enable/disable the service as well.
> I'll keep an eye on this bug that way I could take care of it.

Thanks for kind reminding, jaoo.

Yes, we'd change the format of "ril.cellbroadcast.searchlist" and "ril.cellbroadcast.disabled". I'd suggest we follow the same format for "ril.data.apnSettings", i.e. using an array as key result. How do you think?
Flags: needinfo?(josea.olivera)
(In reply to Hsin-Yi Tsai  [:hsinyi] from comment #3)

> Yes, we'd change the format of "ril.cellbroadcast.searchlist" and
> "ril.cellbroadcast.disabled". I'd suggest we follow the same format for
> "ril.data.apnSettings", i.e. using an array as key result. How do you think?

I guess that "ril.cellbroadcast.searchlist" becomes an array is the right thing to do but I'm not sure if "ril.cellbroadcast.disabled" becomes an array is correct. Let me explain myself. If we are going to enable the service per ICC card we should become an array but if we are going to enable 'the service' globally we should keep it as a boolean then.
Flags: needinfo?(josea.olivera)
(In reply to José Antonio Olivera Ortega [:jaoo] from comment #4)
> (In reply to Hsin-Yi Tsai  [:hsinyi] from comment #3)
> 
> > Yes, we'd change the format of "ril.cellbroadcast.searchlist" and
> > "ril.cellbroadcast.disabled". I'd suggest we follow the same format for
> > "ril.data.apnSettings", i.e. using an array as key result. How do you think?
> 
> I guess that "ril.cellbroadcast.searchlist" becomes an array is the right
> thing to do but I'm not sure if "ril.cellbroadcast.disabled" becomes an
> array is correct. Let me explain myself. If we are going to enable the
> service per ICC card we should become an array but if we are going to enable
> 'the service' globally we should keep it as a boolean then.

Totally agree with you here. It makes sense to me to enalbe cellbroadcast per device, though UI should make the call.
(In reply to Hsin-Yi Tsai  [:hsinyi] from comment #5)
> (In reply to José Antonio Olivera Ortega [:jaoo] from comment #4)
> > (In reply to Hsin-Yi Tsai  [:hsinyi] from comment #3)
> > 
> > > Yes, we'd change the format of "ril.cellbroadcast.searchlist" and
> > > "ril.cellbroadcast.disabled". I'd suggest we follow the same format for
> > > "ril.data.apnSettings", i.e. using an array as key result. How do you think?
> > 
> > I guess that "ril.cellbroadcast.searchlist" becomes an array is the right
> > thing to do but I'm not sure if "ril.cellbroadcast.disabled" becomes an
> > array is correct. Let me explain myself. If we are going to enable the
> > service per ICC card we should become an array but if we are going to enable
> > 'the service' globally we should keep it as a boolean then.
> 
> Totally agree with you here. It makes sense to me to enalbe cellbroadcast
> per device, though UI should make the call.

Confirmed with UX on bug 947229 comment 8, we will have separate settings for each SIM. The result of "ril.cellbroadcast.disabled" should be an array then.
blocking-b2g: 1.4+ → backlog
Target Milestone: --- → 1.4 S3 (14mar)
remove 1.4+ flag as this is feature. we should use meta bug to keep tracking. (b2g-DSDS-1.4)
Hi Joe,
Is bug 947229 included in the feature set of DSDS for 1.4?
Saw some comment and status change on that bug, but just ni you for confirmation.
If not, I'll defer this one to future milestone.
Flags: needinfo?(jcheng)
Target Milestone: 1.4 S3 (14mar) → ---
we are no longer including bug 947229 for v1.4
i'd like to confirm what's the behavior of the device in v1.4 (which should be the same as 1.3) without this bug? Enpei do you know? Thanks
Flags: needinfo?(jcheng) → needinfo?(echu)
(In reply to Joe Cheng [:jcheng] from comment #9)
> we are no longer including bug 947229 for v1.4
> i'd like to confirm what's the behavior of the device in v1.4 (which should
> be the same as 1.3) without this bug? Enpei do you know? Thanks

Message setting is still for SIM 1 only without SIM picker on v1.4, which means Cell broadcast setting in it also for one SIM only. https://bugzilla.mozilla.org/show_bug.cgi?id=960474
Flags: needinfo?(echu)
(In reply to Enpei from comment #10)
> (In reply to Joe Cheng [:jcheng] from comment #9)
> > we are no longer including bug 947229 for v1.4
> > i'd like to confirm what's the behavior of the device in v1.4 (which should
> > be the same as 1.3) without this bug? Enpei do you know? Thanks
> 
> Message setting is still for SIM 1 only without SIM picker on v1.4, which

I think this should be "Message setting is global setting."
So, right now cellbroadcast setting is globally for two SIMs. 
But the UX spec expects separate setting for each SIM, please see bug 947229 comment 8.

> means Cell broadcast setting in it also for one SIM only.
> https://bugzilla.mozilla.org/show_bug.cgi?id=960474
Blocks: 990910
de-assign myself since this is with lower priority and looks I won't be able to work on this recently.
Assignee: htsai → nobody
Whiteboard: [ft:ril]
No longer depends on: CAF-v2.0-FC-metabug
Assignee: nobody → btseng
feature-b2g: --- → 2.0
Depends on: 1013093
Depends on: 990923
Summarize tasks to be done in this bug:
1. Accept extended preference of "ril.cellbroadcast.disabled" from Gaia to toggle CBS per SIM. 
   (Depends on bug 1013093)
2. Accept new format of "ril.cellbroadcast.searchlist" from Gaia (defined in bug 990910)
   which includes CB searchlists of inserted SIM cards to set search list per SIM.
   (Depends on bug 990923)
3. Extend DOMMozCellBroadcastMessage to provide the serviceId of the received CB message.
Whiteboard: [cr 664320]
Depends on: 1015054
No longer depends on: 990923
Because the GAIA dependencies are not able to be done before 2.0 FL, remove feature-b2g.
feature-b2g: 2.0 → ---
This is requirement from CAF for 2.1.
Set to 2.1? so that we can prioritize in 2.1
blocking-b2g: backlog → 2.1?
Per email, discussion targeting this for 2.1 FL and hence setting the feature-b2g flag appropriately.
feature-b2g: --- → 2.1
To remove the dependency from gaia (bug 1013093 and bug 990923),
I'd like to figure out a solution in gecko side to adopt both old/new settings.
Whiteboard: [cr 664320] → [cr 664320][p=5]
Target Milestone: --- → 2.0 S4 (20june)
1. Move setCellBroadcastSearchList() related logic from RadioInterface to a new Helper |gCellBroadcastSettingsHandler|.
2. Set search list to each RadioInterface accordingly.
Attachment #8439113 - Flags: review?(htsai)
1. Migrate the 'ril.cellbroadcast.disabled' from preference to settings.
2. Support to set 'ril.cellbroadcast.disabled' per RadioInterface.
Attachment #8439114 - Flags: review?(htsai)
Comment on attachment 8439113 [details] [diff] [review]
Patch Part 1 v1: Support to Set Search List for Each SIM.

Review of attachment 8439113 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/system/gonk/RadioInterfaceLayer.js
@@ +989,5 @@
>      },
>    };
>  });
>  
> +XPCOMUtils.defineLazyGetter(this, "gCellBroadcastSettingsHandler", function () {

Thanks for this global helper, but I don't think we really need this. When receiving settings change, each RadioInterface could/should take care of its setting.

@@ -3428,5 @@
> -          this.debug("'" + kSettingsCellBroadcastSearchList +
> -            "' is now " + JSON.stringify(aResult));
> -        }
> -        // TODO: Set searchlist for Multi-SIM. See Bug 921326.
> -        let result = Array.isArray(aResult) ? aResult[0] : aResult;

All you need is this patch is /s/aResult[0]/aResult[this.clientId]/.
Attachment #8439113 - Flags: review?(htsai)
Comment on attachment 8439114 [details] [diff] [review]
Patch Part 2 v1: Support to Toggle CellBroadcast Service per SIM.

Review of attachment 8439114 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/system/gonk/RadioInterfaceLayer.js
@@ +1027,5 @@
> +      *   true if CBS is disabled. The value is applied to all RadioInterfaces.
> +      * Enhanced Format: Array of Boolean
> +      *   Each element represents the toggle of CBS per RadioInterface
> +      */
> +      lock.get(kSettingsCellBroadcastDisabled, this);

Same as comments for part 1 - let each RadioInterface receive the settings it cares and the RadioInterface should handle the change properly.
Attachment #8439114 - Flags: review?(htsai)
Comment on attachment 8439115 [details] [diff] [review]
Patch Part 3 v1: Support to Receive Cellbroadcast Messages from different serviceId.

Review of attachment 8439115 [details] [diff] [review]:
-----------------------------------------------------------------

r=me with comments addressed!

::: dom/system/gonk/RILContentHelper.js
@@ +304,5 @@
>                        timeSeconds: 'r',
>                        serviceClass: 'r'}
>  };
>  
> +function CellBroadcastMessage(serviceId, pdu) {

It's quite complicated ... but when we designed DSDS features, we adopted the coding style that we use 'clientId' as the argument in RILContentHelper function. So please s/serviceId/clientId/ :P

@@ +331,5 @@
>      interfaces:       [Ci.nsIDOMMozCellBroadcastMessage]
>    }),
>  
>    // nsIDOMMozCellBroadcastMessage
> +  serviceId: 0,

Let's use -1 as a default value. We will assign a correct value in constructor.
Attachment #8439115 - Flags: review?(htsai) → review+
(In reply to Hsin-Yi Tsai [:hsinyi] from comment #22)
> 
> Thanks for this global helper, but I don't think we really need this. When
> receiving settings change, each RadioInterface could/should take care of its
> setting.
> 
> All you need is this patch is /s/aResult[0]/aResult[this.clientId]/.

Haha, alright, that was my 1st version of this patch.
I'll move them back in the new patches. :p
(In reply to Hsin-Yi Tsai [:hsinyi] from comment #24)
> Comment on attachment 8439115 [details] [diff] [review]
> Patch Part 3 v1: Support to Receive Cellbroadcast Messages from different
> serviceId.
> 
> Review of attachment 8439115 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> r=me with comments addressed!
> 
> ::: dom/system/gonk/RILContentHelper.js
> @@ +304,5 @@
> >                        timeSeconds: 'r',
> >                        serviceClass: 'r'}
> >  };
> >  
> > +function CellBroadcastMessage(serviceId, pdu) {
> 
> It's quite complicated ... but when we designed DSDS features, we adopted
> the coding style that we use 'clientId' as the argument in RILContentHelper
> function. So please s/serviceId/clientId/ :P

Thanks for the explanation. I'll follow the rule.

> @@ +331,5 @@
> >      interfaces:       [Ci.nsIDOMMozCellBroadcastMessage]
> >    }),
> >  
> >    // nsIDOMMozCellBroadcastMessage
> > +  serviceId: 0,
> 
> Let's use -1 as a default value. We will assign a correct value in
> constructor.
Comment on attachment 8439116 [details] [diff] [review]
Patch Part 4 v1: Add Test case to verify CB message received in Multi-SIM devices.

Review of attachment 8439116 [details] [diff] [review]:
-----------------------------------------------------------------

It looks so good! But I'd still like to ask you to move the helpers to head.js in this patch. We could revise other existing test cases by using head.js afterwards that isn't rush or 100% necessary. Thank you. :)

::: dom/cellbroadcast/tests/marionette/test_cellbroadcast_multi_sim.js
@@ +68,5 @@
> +  runEmulatorCmd(aCommand, function(aResult) {
> +    --pendingEmulatorCmdCount;
> +
> +    ok(true, "Emulator response: " + JSON.stringify(aResult));
> +    if (Array.isArray(aResult) && aResult[0] === "OK") {

To be more general, we should check |aResult[aResult.length - 1] === "OK"|.

@@ +141,5 @@
> + */
> +function sendMultipleRawCbsToEmulatorAndWait(aPdus) {
> +  let promises = [];
> +
> +  promises.push(waitForManagerEvent("received"));

If we are going to send multiple pbus, is it expected that we should also receive multiple 'received' events?
Attachment #8439116 - Flags: review?(htsai)
(In reply to Hsin-Yi Tsai [:hsinyi] from comment #27)
> It looks so good! But I'd still like to ask you to move the helpers to
> head.js in this patch. We could revise other existing test cases by using
> head.js afterwards that isn't rush or 100% necessary. Thank you. :)

Sure, I'll address this in next update.

> 
> ::: dom/cellbroadcast/tests/marionette/test_cellbroadcast_multi_sim.js
> @@ +68,5 @@
> > +  runEmulatorCmd(aCommand, function(aResult) {
> > +    --pendingEmulatorCmdCount;
> > +
> > +    ok(true, "Emulator response: " + JSON.stringify(aResult));
> > +    if (Array.isArray(aResult) && aResult[0] === "OK") {
> 
> To be more general, we should check |aResult[aResult.length - 1] === "OK"|.
Will do.
> 
> @@ +141,5 @@
> > + */
> > +function sendMultipleRawCbsToEmulatorAndWait(aPdus) {
> > +  let promises = [];
> > +
> > +  promises.push(waitForManagerEvent("received"));
> 
> If we are going to send multiple pbus, is it expected that we should also
> receive multiple 'received' events?

No, these PDUs are expected to be concatenated into 1 CB message before triggering the 'received' event. :)
Blocks: CAF-v2.1-FC-metabug
No longer blocks: CAF-v2.0-FC-metabug
Address the suggestion in comment 22 to support without a helper.
Attachment #8439113 - Attachment is obsolete: true
Attachment #8441148 - Flags: review?(htsai)
Address the suggestion in comment 23 to support without a helper.
Attachment #8439114 - Attachment is obsolete: true
Attachment #8441149 - Flags: review?(htsai)
address suggestion in comment 27.
Attachment #8439116 - Attachment is obsolete: true
Attachment #8441151 - Flags: review?(htsai)
Attachment #8441150 - Attachment description: Patch Part 3 v2: Support to Receive Cellbroadcast Messages from different serviceId. → Patch Part 3 v2: Support to Receive Cellbroadcast Messages from different serviceId. r=htsai
Comment on attachment 8441148 [details] [diff] [review]
Patch Part 1 v2: Support to Set Search List for Each SIM.

Review of attachment 8441148 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/system/gonk/RadioInterfaceLayer.js
@@ +2471,2 @@
>      this.workerMessenger.send("setCellBroadcastSearchList",
> +                              { searchList: newSearchList });

The old implementation played a safer way. It considered the failure case. Could you explain the reason of this change, thank you?
Comment on attachment 8441149 [details] [diff] [review]
Patch Part 2 v2: Support to Toggle CellBroadcast Service per SIM.

Review of attachment 8441149 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/system/gonk/ril_worker.js
@@ +14882,5 @@
>      RILQUIRKS_V5_LEGACY = quirks.v5Legacy;
>      RILQUIRKS_REQUEST_USE_DIAL_EMERGENCY_CALL = quirks.requestUseDialEmergencyCall;
>      RILQUIRKS_SIM_APP_STATE_EXTRA_FIELDS = quirks.simAppStateExtraFields;
>      RILQUIRKS_EXTRA_UINT32_2ND_CALL = quirks.extraUint2ndCall;
>      RILQUIRKS_HAVE_QUERY_ICC_LOCK_RETRY_COUNT = quirks.haveQueryIccLockRetryCount;

I notice the handler of REQUEST_CDMA_SET_BROADCAST_SMS_CONFIG seems missing. We need to make it do the same as the handler of REQUEST_GSM_SET_BROADCAST_SMS_CONFIG. Please help address the part in this bug as well.

Except this, the patch looks good.
Attachment #8441149 - Flags: review?(htsai)
blocking-b2g: 2.1? → backlog
(In reply to Hsin-Yi Tsai [:hsinyi] from comment #34)
> Comment on attachment 8441149 [details] [diff] [review]
> Patch Part 2 v2: Support to Toggle CellBroadcast Service per SIM.
> 
> Review of attachment 8441149 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> ::: dom/system/gonk/ril_worker.js
> @@ +14882,5 @@
> >      RILQUIRKS_V5_LEGACY = quirks.v5Legacy;
> >      RILQUIRKS_REQUEST_USE_DIAL_EMERGENCY_CALL = quirks.requestUseDialEmergencyCall;
> >      RILQUIRKS_SIM_APP_STATE_EXTRA_FIELDS = quirks.simAppStateExtraFields;
> >      RILQUIRKS_EXTRA_UINT32_2ND_CALL = quirks.extraUint2ndCall;
> >      RILQUIRKS_HAVE_QUERY_ICC_LOCK_RETRY_COUNT = quirks.haveQueryIccLockRetryCount;
> 
> I notice the handler of REQUEST_CDMA_SET_BROADCAST_SMS_CONFIG seems missing.
> We need to make it do the same as the handler of
> REQUEST_GSM_SET_BROADCAST_SMS_CONFIG. Please help address the part in this
> bug as well.
Wow, you're right.
Thanks for catching this! :)
> 
> Except this, the patch looks good.
Attachment #8441232 - Flags: review?(htsai)
Comment on attachment 8441151 [details] [diff] [review]
Patch Part 4 v2: Add Test case to verify CB message received in Multi-SIM devices.

Review of attachment 8441151 [details] [diff] [review]:
-----------------------------------------------------------------

Looks good, thank you!

::: dom/cellbroadcast/tests/marionette/head.js
@@ +175,5 @@
> + *
> + * @param aTestCaseMain
> + *        A function that takes no parameter.
> + */
> +function startTestCommon(aTestCaseMain) {

nit: maybe put this function and  runIfMultiSIM in the end of head.js so that authors could easily get the main entrance?
Attachment #8441151 - Flags: review?(htsai) → review+
Comment on attachment 8441148 [details] [diff] [review]
Patch Part 1 v2: Support to Set Search List for Each SIM.

Review of attachment 8441148 [details] [diff] [review]:
-----------------------------------------------------------------

See my comment 33 :)
Attachment #8441148 - Flags: review?(htsai)
Attachment #8441232 - Flags: review?(htsai) → review+
(In reply to Hsin-Yi Tsai [:hsinyi] from comment #37)
> Comment on attachment 8441151 [details] [diff] [review]
> Patch Part 4 v2: Add Test case to verify CB message received in Multi-SIM
> devices.
> 
> Review of attachment 8441151 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> Looks good, thank you!
> 
> ::: dom/cellbroadcast/tests/marionette/head.js
> @@ +175,5 @@
> > + *
> > + * @param aTestCaseMain
> > + *        A function that takes no parameter.
> > + */
> > +function startTestCommon(aTestCaseMain) {
> 
> nit: maybe put this function and  runIfMultiSIM in the end of head.js so
> that authors could easily get the main entrance?

I see. I'll move the order of these APIs for better reading. :)
(In reply to Hsin-Yi Tsai [:hsinyi] from comment #33)
> Comment on attachment 8441148 [details] [diff] [review]
> Patch Part 1 v2: Support to Set Search List for Each SIM.
> 
> Review of attachment 8441148 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> ::: dom/system/gonk/RadioInterfaceLayer.js
> @@ +2471,2 @@
> >      this.workerMessenger.send("setCellBroadcastSearchList",
> > +                              { searchList: newSearchList });
> 
> The old implementation played a safer way. It considered the failure case.
> Could you explain the reason of this change, thank you?

Thanks for the explanation offline:
"
We should keep the old implementation to allow gaia to get the feedback of the request by observing the change of the |ril.cellbroadcast.searchlist| setting.
"
address the nit in comment 37 to re-order the utilities for better reading.
Attachment #8441151 - Attachment is obsolete: true
Attachment #8441886 - Flags: review+
Attachment #8441232 - Attachment description: Patch Part 5 v1: Add manifest.ini into webapi tests in marionette unit-tests.ini. → Patch Part 5 v1: Add manifest.ini into webapi tests in marionette unit-tests.ini. r=htsai
address the suggestion in comment 33 to restore the settings for negative response of setCellBroadcastSearchList.
Attachment #8441902 - Flags: review?(htsai)
Attachment #8441148 - Attachment is obsolete: true
Address the problem mention in comment 34 to setSmsBroadcastActivation() for postive response of REQUEST_CDMA_SET_BROADCAST_SMS_CONFIG.
Attachment #8441149 - Attachment is obsolete: true
Attachment #8441905 - Flags: review?(htsai)
Comment on attachment 8441902 [details] [diff] [review]
Patch Part 1 v3: Support to Set Search List for Each SIM. r=htsai

Review of attachment 8441902 [details] [diff] [review]:
-----------------------------------------------------------------

Looks great, thank you.
Attachment #8441902 - Flags: review?(htsai) → review+
Comment on attachment 8441905 [details] [diff] [review]
Patch Part 2 v3: Support to Toggle CellBroadcast Service per SIM.

Review of attachment 8441905 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/system/gonk/RadioInterfaceLayer.js
@@ +1814,5 @@
> +  *
> +  * Simple Format: Boolean
> +  *   true if CBS is disabled. The value is applied to all RadioInterfaces.
> +  * Enhanced Format: Array of Boolean
> +  *   Each element represents the toggle of CBS per RadioInterface

nit: a period at the end of the line
Attachment #8441905 - Flags: review?(htsai) → review+
Attachment #8441902 - Attachment description: Patch Part 1 v3: Support to Set Search List for Each SIM. → Patch Part 1 v3: Support to Set Search List for Each SIM. r=htsai
(In reply to Hsin-Yi Tsai [:hsinyi] from comment #45)
> Comment on attachment 8441905 [details] [diff] [review]
> Patch Part 2 v3: Support to Toggle CellBroadcast Service per SIM.
> 
> Review of attachment 8441905 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> ::: dom/system/gonk/RadioInterfaceLayer.js
> @@ +1814,5 @@
> > +  *
> > +  * Simple Format: Boolean
> > +  *   true if CBS is disabled. The value is applied to all RadioInterfaces.
> > +  * Enhanced Format: Array of Boolean
> > +  *   Each element represents the toggle of CBS per RadioInterface
> 
> nit: a period at the end of the line
oops. will do.
QA Contact: echang
QA Whiteboard: [2.1-feature-qa+]
User Story: (updated)
QA Whiteboard: [2.1-feature-qa+] → [2.1-feature-qa+][COM=RIL]
Flags: in-moztrap?(echang)
QA Whiteboard: [2.1-feature-qa+][COM=RIL] → [COM=RIL]
Whiteboard: [cr 664320][p=5] → [cr 664320][p=5][2.1-feature-qa+]
Current emulator tests
http://dxr.mozilla.org/mozilla-central/source/dom/cellbroadcast/tests/marionette

No software emulator found to send fake cell broadcast message yet. Cell Broadcast message can only be sent from cell station, NowSMS is not capable of doing this.
Flags: in-moztrap?(echang) → in-moztrap-
Verified landed in 
Gaia      fbb297c39aab5f17b179533d2a9a6c5166b2c197
Gecko     https://hg.mozilla.org/releases/mozilla-aurora/rev/fb5e796da813
BuildID   20140902160204
Version   34.0a2
ro.build.version.incremental=110
ro.build.date=Fri Jun 27 15:57:58 CST 2014
B1TC00011230
Status: RESOLVED → VERIFIED
Duplicate of this bug: 940893
blocking-b2g: backlog → ---
You need to log in before you can comment on or make changes to this bug.