Closed Bug 869772 Opened 11 years ago Closed 11 years ago

[B2G][CDMA] Send the burst DTMF in CDMA network.

Categories

(Firefox OS Graveyard :: RIL, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(blocking-b2g:-)

RESOLVED WONTFIX
blocking-b2g -

People

(Reporter: kchang, Assigned: hsinyi)

References

Details

(Whiteboard: [ETA:8/9], [FT:RIL], [Sprint:2])

We may need this interface, REQUEST_CDMA_BURST_DTMF, to send the burst DTMF in CDMA network.
Blocks: b2g-ril-cdma
Assignee: nobody → htsai
Per my previous test, REQUEST_DTMF_START and REQUEST_DTMF_STOP work fine on CDMA as well.

As REQUEST_CDMA_BURST_DTMF takes duration of the dtmf tone as one input parameter that is different from the behaviour of our current WebAPI, WebAPI change needs to be discussed first if we want to support this request.
Blocks: 890816
Blocks: 891746
blocking-b2g: --- → koi+
Now, we use mozTelephony.startTone() and mozTelephony.stopTone() to control sending DTMF. The underlying ril requests are RIL_REQUEST_DTMF_START and RIL_REQUEST_DTMF_STOP. They are working fine on both gsm and cdma per my test.

There's another ril request RIL_REQUEST_CDMA_BURST_DTMF, which adopts parameters of ON and OFF duration. 

To support user story bug 890816, I think we can have either way:
1) We don't expose new dtmf tone API to Telephony API, instead, we keep using startTone() and stopTone(). Gaia should take care of the tone duration control. Gaia easily maintains a timer, and when time's up, it calls stopTone() to stop sending DTMF, rather than depending on user behaviour.

2) We expose an additional dtmf API, sendTone(DTMFTone, duration, ... ), to Telephony API. Gaia calls sendTone() to control the tone duration, which is not depending on user behaviour either, just same as option 1.

I would say I am inclined to option 1 if we don't see technical difficulty in achieving that, since it's always not so good to have redundant APIs.

Anshul, may I have your insights here? Is option 1 feasible? Thank you.
Flags: needinfo?(anshulj)
Whiteboard: [ETA:8/9]
(In reply to Hsin-Yi Tsai [:hsinyi] from comment #2)
> Now, we use mozTelephony.startTone() and mozTelephony.stopTone() to control
> sending DTMF. The underlying ril requests are RIL_REQUEST_DTMF_START and
> RIL_REQUEST_DTMF_STOP. They are working fine on both gsm and cdma per my
> test.
> 
> There's another ril request RIL_REQUEST_CDMA_BURST_DTMF, which adopts
> parameters of ON and OFF duration. 
> 
> To support user story bug 890816, I think we can have either way:
> 1) We don't expose new dtmf tone API to Telephony API, instead, we keep
> using startTone() and stopTone(). Gaia should take care of the tone duration
> control. Gaia easily maintains a timer, and when time's up, it calls
> stopTone() to stop sending DTMF, rather than depending on user behaviour.
> 
Hsin-Yi, the option number 1 should work. However please note the following.
1. For normal(short) duration gaia should play the local tone for a specified interval instead of waiting for the key up event. Android plays the tone for 120ms (not sure if this is per a spec). For long duration the behavior is the same as we currently have which is to start the tone on key down and stop the tone on key up.

Hope this helps.

> 2) We expose an additional dtmf API, sendTone(DTMFTone, duration, ... ), to
> Telephony API. Gaia calls sendTone() to control the tone duration, which is
> not depending on user behaviour either, just same as option 1.
> 
> I would say I am inclined to option 1 if we don't see technical difficulty
> in achieving that, since it's always not so good to have redundant APIs.
> 
> Anshul, may I have your insights here? Is option 1 feasible? Thank you.
Flags: needinfo?(anshulj)
(In reply to Anshul from comment #3)
> (In reply to Hsin-Yi Tsai [:hsinyi] from comment #2)
> > Now, we use mozTelephony.startTone() and mozTelephony.stopTone() to control
> > sending DTMF. The underlying ril requests are RIL_REQUEST_DTMF_START and
> > RIL_REQUEST_DTMF_STOP. They are working fine on both gsm and cdma per my
> > test.
> > 
> > There's another ril request RIL_REQUEST_CDMA_BURST_DTMF, which adopts
> > parameters of ON and OFF duration. 
> > 
> > To support user story bug 890816, I think we can have either way:
> > 1) We don't expose new dtmf tone API to Telephony API, instead, we keep
> > using startTone() and stopTone(). Gaia should take care of the tone duration
> > control. Gaia easily maintains a timer, and when time's up, it calls
> > stopTone() to stop sending DTMF, rather than depending on user behaviour.
> > 
> Hsin-Yi, the option number 1 should work. However please note the following.
> 1. For normal(short) duration gaia should play the local tone for a
> specified interval instead of waiting for the key up event. Android plays
> the tone for 120ms (not sure if this is per a spec). For long duration the
> behavior is the same as we currently have which is to start the tone on key
> down and stop the tone on key up.
> 
> Hope this helps.
> 

It does. Thank you for the response.
Thank to Anshul's response.

koi- because I don't think this bug blocks the user story bug 890816. From the discussion above, we can use the existing startTone() and stopTone() to achieve the user story (see comment #3). It is a nicer solution from the aspect of API, IMO.
blocking-b2g: koi+ → koi?
So, are you proposing to have another Bugzilla case with the new solution for this user story and koi+ it?
Flags: needinfo?(htsai)
No, the current gecko is fine. Gaia work is all we need to support that user story.
Flags: needinfo?(htsai)
Awesome! Thank you, Hsinyi!
blocking-b2g: koi? → -
Whiteboard: [ETA:8/9] → [ETA:8/9], [FT:RIL], [Sprint:2]
According to the comment 7, we should be able to close this bug.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → WONTFIX
Component: DOM: Device Interfaces → RIL
Product: Core → Boot2Gecko
You need to log in before you can comment on or make changes to this bug.