Closed Bug 1103731 Opened 11 years ago Closed 10 years ago

Fail a dial request when failing to automatically hold the existing call

Categories

(Firefox OS Graveyard :: RIL, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bhsu, Assigned: bhsu)

References

Details

Attachments

(5 files, 8 obsolete files)

1.10 KB, patch
aknow
: review+
Details | Diff | Splinter Review
60 bytes, text/x-github-pull-request
edgar
: review+
Details | Review
62 bytes, text/x-github-pull-request
edgar
: review+
Details | Review
2.77 KB, patch
aknow
: review+
Details | Diff | Splinter Review
3.22 KB, patch
bhsu
: review+
Details | Diff | Splinter Review
When dialing a new call if there is already an existing call, current design of gecko automatically hold the existing call. Since automatically holding a call fails in some cases (e.g., bug 944302), we should fail the new dial request.
Assignee: nobody → bhsu
Attachment #8548735 - Attachment is obsolete: true
To make the log easier to trace, I extended one debug message.
Attachment #8550859 - Attachment description: BUG 1103731 - Part 2: Internal architecture changes (ril_worker.js) → Part 2: Internal architecture changes (ril_worker.js)
Attachment #8550858 - Attachment is obsolete: true
Attachment #8551064 - Flags: review?(szchen)
Attachment #8550859 - Attachment is obsolete: true
Attachment #8551065 - Flags: review?(szchen)
Attachment #8550860 - Attachment is obsolete: true
Attachment #8551066 - Flags: review?(szchen)
Attachment #8551095 - Flags: review?(echen)
Attachment #8551099 - Flags: review?(echen)
Hi Edgar, To enable/disable the hold feature of a modem, I have to modify the emulator. Can you review those patches? The details are written in the comments of the pull requests.
Attachment #8551065 - Flags: review?(szchen) → review+
Comment on attachment 8551064 [details] [diff] [review] Part 1: Internal architecture (TelephonySerive.js) Review of attachment 8551064 [details] [diff] [review]: ----------------------------------------------------------------- I'm fine with original code but I'd like to know your opinion of my comment. ::: dom/telephony/gonk/TelephonyService.js @@ +645,1 @@ > } How about just define a callback object explicitly and use it? let callback = { QueryInterface: XPCOMUtils.generateQI([Ci.nsITelephonyCallback]), notifySuccess: () => { this._cachedDialRequest = { ... }; }, notifyError: error => { ... } }; this.holdConference(aClientId, callback); this.holdCall(aClientId, activeCall.callIndex, callback);
Attachment #8551064 - Flags: review?(szchen)
Hi aknow, Thanks for your advice. I think explicitly defining a callback object is better, because it make the code easier to understand, while both |holdCall(...)| and |holdConference(...)| are designed to be used that way. Besides, I also add a new check before auto-holding. Can you review this patch?
Attachment #8551064 - Attachment is obsolete: true
Attachment #8551610 - Flags: review?(szchen)
Comment on attachment 8551099 [details] [review] [external/qemu] pull request 127 Please check the comments I left on github, thank you.
Attachment #8551099 - Flags: review?(echen)
Comment on attachment 8551610 [details] [diff] [review] Part 1: Internal architecture (TelephonySerive.js) (V2) Review of attachment 8551610 [details] [diff] [review]: ----------------------------------------------------------------- Thank you.
Attachment #8551610 - Flags: review?(szchen) → review+
Comment on attachment 8551095 [details] [review] [hardware/ril] pull request 42 r=me with the comments on github addressed or answered. Thank you.
Attachment #8551095 - Flags: review?(echen) → review+
Comment on attachment 8551066 [details] [diff] [review] Part 3: Update the related testcase Review of attachment 8551066 [details] [diff] [review]: ----------------------------------------------------------------- r=me with comment addressed. ::: dom/telephony/test/marionette/test_outgoing_auto_hold.js @@ +10,3 @@ > let outCall1; > let outCall2; > + let callNumber1="0900000001"; use const and add spaces before and after '=' const callNumber1 = "..." @@ +32,5 @@ > + log('= testAutoHoldCallFailed ='); > + > + let outCall1; > + let outCall2; > + let callNumber1="0900000011"; use const and add spaces before and after '=' const callNumber1 = "..." @@ +36,5 @@ > + let callNumber1="0900000011"; > + let callNumber2="0900000012"; > + > + return Promise.resolve() > + .then(() => emulator.runCmd("gsm enable_hold N")) remember to update the command based on the conclusion of emulator review @@ +58,4 @@ > let subCall1; > let subCall2; > let outCall; > + let subNumber1="0900000021"; use const and add spaces before and after '=' const callNumber1 = "..."
Attachment #8551066 - Flags: review?(szchen) → review+
Attachment #8551099 - Flags: review?(echen)
Comment on attachment 8551099 [details] [review] [external/qemu] pull request 127 r=me with comments on github addressed. And please provide the try link for hardware_ril and qemu changes. Thank you.
Attachment #8551099 - Flags: review?(echen) → review+
Hi aknow, I make a little enhencement to handle failing to reject the dial requst in the second test. Can you take a look at that? Thank you.
Attachment #8551066 - Attachment is obsolete: true
Attachment #8552854 - Flags: review?(szchen)
Comment on attachment 8552854 [details] [diff] [review] Part 3: Update the related testcase (V2) Review of attachment 8552854 [details] [diff] [review]: ----------------------------------------------------------------- r=me with comments addressed. ::: dom/telephony/test/marionette/test_outgoing_auto_hold.js @@ +44,5 @@ > + .then(() => { > + is(outCall1.state, "connected"); > + }) > + .then(() => gDial(callNumber2)) > + .then(call => { ok(false, "The second |dial()| should be rejected."); Put the code after '{' in a new line. @@ +49,5 @@ > + outCall2 = call; > + return gRemoteHangUpCalls([outCall2]); }, > + () => log("The second |dial()| is rejected as expected.")) > + .then(() => gRemoteHangUpCalls([outCall1])) > + .then(() => emulator.runCmd("gsm enable hold")); Please add a |.catch(...)| before this line. Otherwise, "gsm enable hold" might be skipped if its previous promise is rejected.
Attachment #8552854 - Flags: review?(szchen) → review+
Hi aknow, Thanks for your review, I think every undesired reject will be caught by the |catch(...)| in the end of this file, and the hold feature will be re-enbled there if needed.
Attachment #8552854 - Attachment is obsolete: true
Attachment #8552915 - Flags: review+
Attachment #8552915 - Attachment is obsolete: true
Attachment #8554404 - Flags: review+
Hi Edgar, I addressed the advice came of vicamo, so the patches of |external/qemu| are updated. Do you mind reviewing the pull request again?
Flags: needinfo?(echen)
Comment on attachment 8551099 [details] [review] [external/qemu] pull request 127 (In reply to Ben Hsu [:benhsu] from comment #22) > Hi Edgar, > > I addressed the advice came of vicamo, so the patches of |external/qemu| are > updated. Do you mind reviewing the pull request again? Sure, I will take a look again.
Flags: needinfo?(echen)
Attachment #8551099 - Flags: review+ → review?(echen)
Comment on attachment 8551099 [details] [review] [external/qemu] pull request 127 r=me with comments on github addressed. Thank you.
Attachment #8551099 - Flags: review?(echen) → review+
Depends on: 1133400
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: