Closed Bug 881863 Opened 11 years ago Closed 11 years ago

[Gaia] B2G CDMA UI support for emergency call back mode.

Categories

(Firefox OS Graveyard :: Gaia::System, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(blocking-b2g:koi+)

RESOLVED FIXED
blocking-b2g koi+

People

(Reporter: skamat, Assigned: steveck)

References

Details

(Whiteboard: [UX ETA:8/16], [FT:RIL], [Sprint:3])

Attachments

(1 file)

Add UI support for showing that the phone is in emergency call back mode. Emergency call back mode should have an option for user to end the emergency call back mode.
Blocks: b2g-ril-cdma
Assignee: nobody → szchen
I have collect some information for `emergency callback mode`.

Why
- In pure CDMA (not CDMA voice + LTE data), we could not have data and voice service simultaneously.
- Let operator call you back after dialing an emergency number.
- It's a U.S mandated law thing.

User scenario

1. User make emergency call (911 in USA)
2. User end the call and network tell us to enter emergency callback mode (ECM)
3. This mode enables the operator to call you back or determine your approximate location.
4. In Emergency Callback Mode, you cannot send and receive messages or browse web pages. (ABSOLUTELY NO DATA can be transmitted)
5. Depending on your service provider, Emergency Callback Mode is active for five minutes or is canceled when you make a non-emergency call.

Gecko works

- handle unsolicited enter ECM
- handle unsolicited exit ECM
- send request exit ECM
  * when user dial an non-emergency call
  * when timeout, controlled by device?
Hi Anshul,

(From Comment 1)
In emergency callback mode. We could not have data traffic. How should this part be handled?
1. By modem? Modem know the mode and will manage data by itself. So Gecko just need to notify for entering and leaving the mode.
2. By gecko?
Flags: needinfo?(anshulj)
(In reply to Szu-Yu Chen [:aknow] from comment #2)
> Hi Anshul,
> 
> (From Comment 1)
> In emergency callback mode. We could not have data traffic. How should this
> part be handled?
> 1. By modem? Modem know the mode and will manage data by itself. So Gecko
> just need to notify for entering and leaving the mode.
Yes I think so.

> 2. By gecko?
Flags: needinfo?(anshulj)
Should we provide an option for user to explicitly exit the emergency callback mode?
=> need to provide an API for exit the mode

Or just let it happended automatically (handled by gecko) when
(1) after timeout (default: 5mins)
(2) user make a non-emergency call
Flags: needinfo?(skamat)
More thinking about the design in gecko.

Gecko could only get notified of entering/leaving ECM from ril and request ril to leave ECM.
It could not query the current mode in modem.

So gecko has to:
- keep track of current mode and write it to property
- when ril init, read the mode from property
  * if in ECM, request ril to leave it.
  * otherwise, when process crash and restart, the mode in gecko and modem become out-of-sync
- add a property to customize timout value (default 5 mins by spec)
- when entering ECM, create a timeout event to request ril to leave ECM
- when receiving unsolicited exit from ECM, clear the above timeout event.
- whenever mode cahnge, send dom event `emergencyCallbackNodeChange`

Do we have to show the countdown value on UI, ex: http://i.imgur.com/hLt6X.png
As Comment 4. We could have several options
(1) no value on UI, gecko handles timeout event
(2) gaia handles the countdown, request exiting ECM through API when expired
(3) gaia just show the value for countdown. Timeout event is still handled in gecko. Although time in gaia and gecko might be a little diffent, but roughly the same in 1-second time scale.
(4) ...
(In reply to Szu-Yu Chen [:aknow] from comment #4)
> Should we provide an option for user to explicitly exit the emergency
> callback mode?
> => need to provide an API for exit the mode
> 
> Or just let it happended automatically (handled by gecko) when
> (1) after timeout (default: 5mins)
> (2) user make a non-emergency call

I think we just need to allow the latter case (#1 and #2 above). However need to confirm from 3GPP standards perspective, if explicit exit is allowed. Anshul?
Flags: needinfo?(skamat) → needinfo?(anshulj)
Michael, could you please respond to Sandip's question?
Flags: needinfo?(anshulj) → needinfo?(mschwart)
Depends on: 887656
No longer depends on: 887656
Depends on: 887690
Create another bug for gecko support, and let this one focus on UI support.

Bug 887690 - B2G RIL: Support emergency callback mode
In Comment 4,
Will (1), (2) handled by modem? and when it is triggered, RIL sends out 'unsolicited exit ECM' to notify the event.

If not, the logic should be handled by firefox os, and we have to send out the 'exit request' to RIL when (1), (2) occurs.
Flags: needinfo?(anshulj)
Szu-Yu, let me try to get this information for you.
Flags: needinfo?(anshulj)
Szu-Yu, Android does allow the user to explicitly exit the emergency callback mode. However I didn't look at the spec to confirm that this is required per spec.
Summary: B2G CDMA UI support for emergency call back mode. → [Gaia] B2G CDMA UI support for emergency call back mode.
Assign to Gaia owner.
Assignee: szchen → gsvelto
Hi Anshul,

Reminder: My question in Comment 9

Hi Sandip,

How about we provide an API to explicitly exit the emergency callback mode. Gaia could determine whether to use it in the UI. At least, we have the same ability as Android..
Flags: needinfo?(skamat)
Flags: needinfo?(anshulj)
(In reply to Szu-Yu Chen [:aknow] from comment #13)
> Hi Anshul,
> 
> Reminder: My question in Comment 9
> 
> Hi Sandip,
> 
> How about we provide an API to explicitly exit the emergency callback mode.
> Gaia could determine whether to use it in the UI. At least, we have the same
> ability as Android..

That should be fine. Any downside of this approach v/s Android implementation?
Flags: needinfo?(skamat)
Szu-Yu, 1 and 2 as per your comment 4 needs to be handled by gaia/gecko.
Flags: needinfo?(anshulj)
blocking-b2g: --- → koi+
Neo will have the UI from the notification bar. 

Ivan and Candice, it looks like something in setting front end and/or setting platform. Can you make sure it's under your radar? 

Thank you.
Flags: needinfo?(itsay)
Flags: needinfo?(cserran)
Tim, it seems this notification is related system app, can someone in Gaia help on this. Correct me if it is not related system.
Flags: needinfo?(itsay) → needinfo?(timdream)
Whiteboard: [UX ETA:8/16]
Yes, this is a System app issue. Need to know the UX detail before estimating the scope.
Component: Gaia → Gaia::System
Flags: needinfo?(timdream)
Whiteboard: [UX ETA:8/16] → [UX ETA:8/16], [FT:RIL], [Sprint:3]
Because there aren't CDMA network in NW, Arthur will help this bug in Taipei.
Assignee: gsvelto → arthur.chen
Steve will help on non-settings CDMA gaia work.
Assignee: arthur.chen → schung
Attached file Link to github
Hi Alive, if you need device for testing, I have a cdma device with mock emergency callback mode. Just contact me if you need for verify the patch.

Hi aknow, this patch will also handle the data error case, you could give it a test once you comfirm the result while using data network in emergency callback mode. Please feel free to provide the feedback to me if data error case doesn't work.

Unit tests for emergency callback mode will provide within follow-up patch.
Attachment #800083 - Flags: review?(alive)
Attachment #800083 - Flags: feedback?(szchen)
Comment on attachment 800083 [details]
Link to github

r+ if you fix the toaster to have a click event handler.
Attachment #800083 - Flags: review?(alive) → review+
Hi Alive,
Patch updated as you requested. I also added home key event listener to dismiss the prompt if displayed. Thanks for the review!
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Merged in master : 5ab1c3982456bdd7c6c501933fb775ea91b6df2b
This patch has introduced two l10n errors:
 • data-l10n-id="confirmation"
 • data-l10n-id="Ok" (instead of “ok”)

⇒ see bug 914626.
Comment on attachment 800083 [details]
Link to github

We could not test dataError part right now. The rild in our current platform (wasabi) does not send the ENTER_ECM event after dialing the emergency call. We should verify it when we got an appropriate device in the future.
Attachment #800083 - Flags: feedback?(szchen)
Flags: needinfo?(mschwart)
Flags: needinfo?(cserran)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: