Closed Bug 1185435 Opened 9 years ago Closed 9 years ago

[IMS] HD Voice Indicator

Categories

(Firefox OS Graveyard :: RIL, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(feature-b2g:2.2r+, b2g-v2.2r fixed, b2g-master wontfix)

RESOLVED FIXED
FxOS-S6 (04Sep)
feature-b2g 2.2r+
Tracking Status
b2g-v2.2r --- fixed
b2g-master --- wontfix

People

(Reporter: bevis, Assigned: bhsu)

References

Details

Attachments

(6 files, 9 obsolete files)

5.54 KB, patch
bhsu
: review+
Details | Diff | Splinter Review
15.16 KB, patch
bhsu
: review+
Details | Diff | Splinter Review
2.87 KB, patch
bhsu
: review+
Details | Diff | Splinter Review
6.39 KB, patch
bhsu
: review+
Details | Diff | Splinter Review
1.23 KB, patch
hsinyi
: review+
Details | Diff | Splinter Review
2.17 KB, patch
bhsu
: review+
Details | Diff | Splinter Review
This bug is to provide an HD indicator of the telephony call for user to identify the ongoing call is a HD resolution audio call.
Group: tai-confidential, qualcomm-confidential
CC list accessible: false
Not accessible to reporter
Group: tai-confidential, qualcomm-confidential
CC list accessible: true
feature-b2g: --- → 2.2r+
Accessible to reporter
Group: tai-confidential, qualcomm-confidential
Hi Ben, please help this! Bevis and I could provide assistance and solution discussion.
Assignee: nobody → bhsu
We will land this on v2.2r only, so set status-b2g-master:wontfix.
Hi Hsin-Yi

Though the other patches need further tested, I think you may want to review this patch first :P
Attachment #8653265 - Flags: review?(htsai)
Attachment #8653265 - Attachment description: Part 1: Add quality to TelephonyCall (WebIDL) → Part 1: Add |quality| to TelephonyCall (WebIDL)
Since we fail to replace |TeleponyService| during runtime, we cannot have a better examination with mochitest. Now, we can only use this marionette testcase to prove that things are working as expected with quality preseted to |Normal| or |HD|. In this patch, the quality is preset to |Normal|, while |HD| is tested locally.
Comment on attachment 8653265 [details] [diff] [review]
Part 1: Add |quality| to TelephonyCall (WebIDL)

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

Thanks Ben!

::: dom/webidl/TelephonyCall.webidl
@@ +32,5 @@
>    readonly attribute DOMError? error;
>  
>    readonly attribute TelephonyCallGroup? group;
>  
> +  // Indicate whether the call quality is normal or HD

Though HD may sound trivial, it's always good to explain what an abbreviation stands for. Please comment that.

nit: place a period at the end of a line.
Attachment #8653265 - Flags: review?(htsai) → review+
A short update: these patches work as expected on Flame-kk verified with WebIDE.
Attachment #8653265 - Attachment is obsolete: true
Attachment #8653834 - Flags: review+
Attachment #8653266 - Flags: review?(btseng)
Attachment #8653267 - Flags: review?(btseng)
Attachment #8653268 - Flags: review?(btseng)
Attachment #8653269 - Flags: review?(btseng)
Comment on attachment 8653266 [details] [diff] [review]
Part 2: Add |quality| to TeleponyCallInfo and related functions (IDL)

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

r=me if the comments below are addressed.

::: dom/telephony/nsITelephonyCallInfo.idl
@@ +22,5 @@
>     */
>    readonly attribute unsigned short callState;
>  
>    /**
> +   * Indicate whether the call quality is normal or HD, and its value should be

/**
 * One of the nsITelephonyService::CALL_QUALITY_* values.
 *
 * Set to CALL_QUALITY_HD to indicate the voice quality is high definition.
 * e.g. AMR-WB is adopted.
 */

@@ +25,5 @@
>    /**
> +   * Indicate whether the call quality is normal or HD, and its value should be
> +   * one of the nsITelephonyService::CALL_QUALITY_* values.
> +   */
> +  readonly attribute unsigned short quality;

I prefer to rename |quality| as voiceQuality to have more clear understanding of what HD indicates to.

How do you think?

::: dom/telephony/nsITelephonyService.idl
@@ +139,5 @@
>     */
>    void notifyDialCallSuccess(in unsigned long cliendId,
>                               in unsigned long callIndex,
> +                             in AString number,
> +                             in unsigned short quality);

no uuid update for nsITelephonyDialCallback.
Attachment #8653266 - Flags: review?(btseng) → review+
Hi Bevis, thanks for your review.

> I prefer to rename |quality| as voiceQuality to have more clear
> understanding of what HD indicates to.
> 
> How do you think?

I think it's fine. However, if we want to modify the WebIDL as well, I think we should NI Hsin-Yi to get her approval.
Flags: needinfo?(htsai)
(In reply to Ben Hsu [:bhsu] from comment #13)
> Hi Bevis, thanks for your review.
> 
> > I prefer to rename |quality| as voiceQuality to have more clear
> > understanding of what HD indicates to.
> > 
> > How do you think?
> 
> I think it's fine. However, if we want to modify the WebIDL as well, I think
> we should NI Hsin-Yi to get her approval.

Even better! r+++++
Flags: needinfo?(htsai)
Comment on attachment 8653267 [details] [diff] [review]
Part 3: Add |quality| to related DOM obejects (DOM)

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

r=me if nits and the rename of |quality| to |voiceQuality| are done.

Thanks!

::: dom/telephony/TelephonyCall.cpp
@@ +19,5 @@
>  
>  // static
>  already_AddRefed<TelephonyCall>
> +TelephonyCall::Create(Telephony* aTelephony,
> +

nit: we don't have to format the parameters in this way with empty lines.

@@ +25,5 @@
> +                      uint32_t aServiceId,
> +                      uint32_t aCallIndex,
> +                      uint16_t aCallState,
> +                      TelephonyCallQuality aQuality,
> +

ditto

::: dom/telephony/TelephonyCall.h
@@ +125,5 @@
>    IMPL_EVENT_HANDLER(groupchange)
>  
>    static already_AddRefed<TelephonyCall>
> +  Create(Telephony* aTelephony,
> +

nit: we don't have to format the parameters in this way with empty lines.

@@ +131,5 @@
> +         uint32_t aServiceId,
> +         uint32_t aCallIndex,
> +         uint16_t aCallState,
> +         TelephonyCallQuality aQuality,
> +

ditto

::: dom/telephony/TelephonyCallInfo.cpp
@@ +13,5 @@
>  TelephonyCallInfo::TelephonyCallInfo(uint32_t aClientId,
>                                       uint32_t aCallIndex,
>                                       uint16_t aCallState,
> +                                     uint32_t aQuality,
> +

nit: we don't have to format the parameters in this way with empty lines.

@@ +18,5 @@
>                                       const nsAString& aNumber,
>                                       uint16_t aNumberPresentation,
>                                       const nsAString& aName,
>                                       uint16_t aNamePresentation,
> +

ditto

::: dom/telephony/TelephonyCallInfo.h
@@ +22,5 @@
> +  TelephonyCallInfo(uint32_t aClientId,
> +                    uint32_t aCallIndex,
> +                    uint16_t aCallState,
> +                    uint32_t aQuality,
> +

nit: we don't have to format the parameters in this way with empty lines.

@@ +27,5 @@
> +                    const nsAString& aNumber,
> +                    uint16_t aNumberPresentation,
> +                    const nsAString& aName,
> +                    uint16_t aNamePresentation,
> +

ditto.
Attachment #8653267 - Flags: review?(btseng) → review+
Comment on attachment 8653268 [details] [diff] [review]
Part 4: Set call |quality| default to |Normal| (TelephonyService)

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

r=me after nits and the rename of |quality| to |voiceQuality| are done.

::: dom/telephony/gonk/TelephonyService.js
@@ +61,5 @@
>  const MMI_MATCH_GROUP_SIC = 6;
>  const MMI_MATCH_GROUP_PWD_CONFIRM = 7;
>  const MMI_MATCH_GROUP_DIALING_NUMBER = 8;
>  
> +const TELEPHONY_CALL_QUALITY = nsITelephonyService.CALL_QUALITY_NORMAL;

nit: no need to an extra const here. 
nsITelephonyService.CALL_QUALITY_NORMAL is good enough for reference and
is more readable that this const are defined in nsITelephonyService.
Attachment #8653268 - Flags: review?(btseng) → review+
Comment on attachment 8653269 [details] [diff] [review]
Part 5: Extend IPC channel to handle |quality| (IPC)

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

r=me after the rename of |quality| to |voiceQuality| is done.

Thanks!
Attachment #8653269 - Flags: review?(btseng) → review+
Attachment #8653834 - Attachment is obsolete: true
Attachment #8654742 - Attachment description: Part 1(V3): Add |quality| to TelephonyCall (WebIDL) → Part 1 (V3): Add |quality| to TelephonyCall (WebIDL)
Attachment #8654747 - Flags: review+
Attachment #8653268 - Attachment is obsolete: true
Attachment #8653270 - Attachment is obsolete: true
Attachment #8654748 - Attachment description: Part 5 (V2): Extend IPC channel to handle |quality| (IPC) → Part 5 (V2): Extend IPC channel to handle |quality| (IPC). r=btseng
Attachment #8654748 - Flags: review+
Comment on attachment 8654742 [details] [diff] [review]
Part 1 (V3): Add |quality| to TelephonyCall (WebIDL)

Hi Hsin-Yi,

Since the name of the attribute is change to |voiceQuality| and the related comment is also updated, I think it's better to ask for another round of review. Do you mind reviewing this patch again?
Attachment #8654742 - Flags: review?(htsai)
Attachment #8654742 - Flags: review?(htsai)
Sorry, I uploaded the wrong part :P
Attachment #8654742 - Attachment is obsolete: true
Attachment #8654752 - Flags: review?(htsai)
Attachment #8654749 - Flags: review?(btseng)
Comment on attachment 8654752 [details] [diff] [review]
Part 1 (V3): Add |quality| to TelephonyCall (WebIDL). r=htsai

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

Thanks!
Attachment #8654752 - Flags: review?(htsai) → review+
Comment on attachment 8654749 [details] [diff] [review]
Part 6 (V2): Check |quality| (testcases)

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

r=me with nits addressed.

Thanks!

::: dom/telephony/test/marionette/head.js
@@ +424,5 @@
>     *        An array of call info with the format of "callStrPool()[state]".
>     * @return Promise
>     */
>    function checkAll(active, calls, conferenceState, conferenceCalls, callList) {
> +    // Check quality

nit: Check voice quality

@@ +425,5 @@
>     * @return Promise
>     */
>    function checkAll(active, calls, conferenceState, conferenceCalls, callList) {
> +    // Check quality
> +    telephony.calls.forEach(call => is(call.voiceQuality, "Normal", "check quality"));

nit: "check voice quality"

@@ +426,5 @@
>     */
>    function checkAll(active, calls, conferenceState, conferenceCalls, callList) {
> +    // Check quality
> +    telephony.calls.forEach(call => is(call.voiceQuality, "Normal", "check quality"));
> +    conference.calls.forEach(call => is(call.voiceQuality, "Normal", "check quality"));

ditto

@@ +459,5 @@
>          ok(outCall instanceof TelephonyCall, "check instance");
>          is(outCall.id.number, number);
>          is(outCall.state, "dialing");
>          is(outCall.serviceId, serviceId);
> +        is(outCall.voiceQuality, "Normal", "check quality");

ditto

@@ +625,5 @@
>          let call = event.call;
>  
>          ok(call);
>          is(call.state, "incoming");
> +        is(call.voiceQuality, "Normal","check quality");

ditto
Attachment #8654749 - Flags: review?(btseng) → review+
Attachment #8654749 - Attachment is obsolete: true
Attachment #8654793 - Flags: review+
Attachment #8654752 - Attachment description: Part 1 (V3): Add |quality| to TelephonyCall (WebIDL) → Part 1 (V3): Add |quality| to TelephonyCall (WebIDL). r=htsai
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: