Closed Bug 972019 Opened 10 years ago Closed 10 years ago

Desktop client needs the ability to terminate a call

Categories

(Hello (Loop) :: Client, defect, P2)

defect

Tracking

(Not tracked)

VERIFIED FIXED
mozilla33
backlog mlp+

People

(Reporter: abr, Unassigned)

References

Details

(Whiteboard: [in progress?])

User Story

As a user, I should be able to terminate the call (desktop & web clients)

Bug 974873 is for providing feedback after the call has been terminated.

Approximate UX:

- End call button
- Streams and session are disconnected
- Media display is hidden
- "The call has ended" is displayed

At the other end:

- Streams and session are disconnected
- Media display is hidden
- "The call has ended" is displayed

At both ends, the video and audio devices should be released.

Attachments

(4 files, 2 obsolete files)

      No description provided.
Blocks: 972015
No longer blocks: 972015
Blocks: 972014
Blocks: loop_mlp
Romain, please update the user story, and if we can get a mock-up from Boriss that would be good.
User Story: (updated)
Flags: needinfo?(rtestard)
Flags: needinfo?(jboriss)
Also, what's the UX for end of call? Do we just close the window?
Blocks: 974875, 972024
No longer blocks: 972014, loop_mlp
Flags: needinfo?(rtestard)
Summary: Desktop client needs call control (end/mute/etc) UI → Desktop client needs the ability to terminate a call
Title changed, we really only need to be able to terminate a call.
When the call terminates, both ends are prompted for user feedback (974873).
I am not sure about the UX, Boriss can update us here?
User Story: (updated)
Mark -- I'm assigning this to you as part of bug 972024.  Thanks.
Assignee: nobody → standard8
User Story: (updated)
Whiteboard: [est: 1d]
Priority: -- → P3
Flags: needinfo?(jboriss)
Component: General → Client
Assignee: standard8 → rgauthier
Just to clarify this is for desktop & client. If it makes sense to split it up, then we should divide into two bugs.

Note that PR 6 on loop-client has just made some models & views shared, and the establish-call branch I hope to land on gecko-dev on Monday.

We should continue with the theme of sharing models & views as much as possible.
User Story: (updated)
Attached file Terminate a call (gecko-dev) (obsolete) —
Attachment #8401327 - Flags: review?(standard8)
Attached file Terminate a call (loop-client) (obsolete) —
Attachment #8401329 - Flags: review?(standard8)
Comment on attachment 8401329 [details] [review]
Terminate a call (loop-client)

As commented in the PR, I think this needs a few more tweaks before we can take it.
Attachment #8401329 - Flags: review?(standard8) → review-
Comment on attachment 8401327 [details] [review]
Terminate a call (gecko-dev)

As commented on the PR, we're not hiding things when we should be, and I think we need to keep the ended logic of the router.
Attachment #8401327 - Flags: review?(standard8) → review-
As discussed with Niko, I reassign this bug to him.
Assignee: rgauthier → nperriault
I just expanded the user story to include ensuring the correct reaction at both ends - namely releasing video & audio devices & notifying the user.
User Story: (updated)
There's currently a bug in the SDK preventing to retrieve the connection information from a `clientDisconnect` event, so we can't identify from which part the call has been actually terminated.

The docs [1] describes a `connection` property being attached to the event object, but it's undefined.

[1]: http://tokbox.com/opentok/libraries/client/js/reference/ConnectionEvent.html

Toggling the bug as confidential because partner is mentioned.
Group: mozilla-employee-confidential
(In reply to Nicolas Perriault (:NiKo`) from comment #12)
> There's currently a bug in the SDK preventing to retrieve the connection
> information from a `clientDisconnect` event, so we can't identify from which
> part the call has been actually terminated.
> 
> The docs [1] describes a `connection` property being attached to the event
> object, but it's undefined.

Response from TB engineering:

Here is how it is supposed to work (and I believe it does):

For a session with two clients, A and B:

When "Client A" disconnects, Client A receives a sessionDisconnected event indicating that "Client A" has disconnected from the session. "Client B" receives a ConnectionDestroyed event with the connection object of "Client A". 

At this point "Client B" is still connected to the session. 

Does that make sense and is that what you are seeing? It was not clear from Nicolas's email which client's perspective he was considering. If this is not what you are seeing, perhaps we have a bug and it would be helpful if you could let us know what events are seen by each client in the session. If it is what you are seeing, perhaps we can improve our documentation.
Call termination & notifications patch. Note that there's room for factorizing a lot between ConversationRouter and WebappRouter, but the patch is large enough already. We should file an issue for this refactoring which should be addressed in a next PR.
Attachment #8401329 - Attachment is obsolete: true
Attachment #8403923 - Flags: review?(standard8)
Desktop side version of the patch. Same remark as with previous patch regarding routers logic factorization.
Attachment #8401327 - Attachment is obsolete: true
Attachment #8403925 - Flags: review?(standard8)
Blocks: 994150
I think the current patches can land once reviewed, but before we can close this bug, we need to address the following:

* We need some sort of "Your call has ended" confirmation after the user clicks stop (at either end) - having a blank screen doesn't look good
* The stop button should be removed from the display on the desktop end
* After the call is ended on the link-clicker end, the "Start this call" button, should either be "restart" and enabled, or not visible
* It would be nice if we could sort out the video layout so that the local video isn't flickering around at the start/end of call, but I think this would be best in another bug
Comment on attachment 8403923 [details] [review]
https://github.com/mozilla/loop-client/pull/8

Looks good once my latest comment is addressed.

r=Standard8. Please squash commits and add the r= before landing.
Attachment #8403923 - Flags: review?(standard8) → review+
Comment on attachment 8403925 [details] [review]
https://github.com/adamroach/gecko-dev/pull/12

Looks good, once the comments on the PR are addressed.

r=Standard8. Please squash commits and add the r= before landing.
Attachment #8403925 - Flags: review?(standard8) → review+
This patch eases sharing part of the conversation routing logic, avoiding duplicating code between Desktop and Webapp. This is the webapp (loop-client) part of the patch.
Attachment #8404971 - Flags: review?(dmose)
Gecko part of the shared conversation router patch.
Attachment #8404972 - Flags: review?(dmose)
Comment on attachment 8404971 [details] [review]
https://github.com/mozilla/loop-client/pull/18

r=dmose; comments in the PR
Attachment #8404971 - Flags: review?(dmose) → review+
Comment on attachment 8404972 [details] [review]
https://github.com/adamroach/gecko-dev/pull/14

r=dmose; comments in the PR.  Thanks for the this de-duplification of code!
Attachment #8404972 - Flags: review?(dmose) → review+
Whiteboard: [est: 1d] → [landed on loop-ui-initial]
Priority: P3 → P2
backlog: --- → mlp+
Whiteboard: [landed on loop-ui-initial] → [in progress?]
Created new bugs for remaining issues which no longer blocks this:

- bug 997178: Loop client should allow end user to restart a terminated conversation
- bug 997181: Fix flickering video layout when a call starts/ends

Closing this one.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Group: mozilla-employee-confidential
Target Milestone: --- → mozilla33
Please use meaningful string ids in the future.
> Please use meaningful string ids in the future.

Please define "meaningful string ids", thanks.
(In reply to Nicolas Perriault (:NiKo`) from comment #31)
> Please define "meaningful string ids", thanks.

https://bugzilla.mozilla.org/show_bug.cgi?id=972020#c19 and 20
Verified fixed via previous smoketesting.
Status: RESOLVED → VERIFIED
Flags: qe-verify+
QA Contact: anthony.s.hughes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: