Closed
Bug 1007933
Opened 12 years ago
Closed 11 years ago
[User Story] As a user I would like to be able to make a call directly from the address book contact details
Categories
(Firefox OS Graveyard :: Gaia::Loop, defect, P1)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: oteo, Unassigned, NeedInfo)
References
Details
(Whiteboard: [ucid:WebRTC20,2.0, ft:webrtc])
User Story
When I am using my contact applications and click on contact details, I can see two Loop Buttons to establish video and audio calls to that contact. When I click on any of them, the Loop application is launched. A) If the Loop App has not a valid log-in yet, user is prompted to do so before he can establish any communication. B) If the Loop App has a valid login, multiple options can happen here as in bug 1007924: B.1) The selected contact does not have any e-mail or Phone Number linked to it. In that case the call cannot be established and the user is notified about it (See US Bug 1007941). B.2) The selected contact has one or more e-mail or Phone Numbers linked to it. In that case Loop Application connects to the Loop Server and sends all the possible valid IDs for the user (e-mail(s) or/and Phone Number(s)). In case the device has no connection, the user will be notified about the lack of connection and the call will not be established. Otherwise the Loop Server checks any of the possible IDs and the following situations may occur: B.2.1) None of the IDs is a Loop ID: The user is notified and fall-back mechanism is shown. This corresponds with a “user-unknown” terminate reason sent by Loop Server. B.2.2) There is at least one ID that is a Loop ID but none of them is logged-in in Loop: The user is notified that the other party is not available at this moment and fall-back mechanism is shown. This corresponds with an “unregistered” terminate reason sent by Loop Server. B.2.3) There is one or more IDs that are valid Loop IDs and at least one is logged-in in Loop: The server tries to establish the call to all of them and the calls is established with the first one to answer (in case one answers the call, the server sends an “answered-elsewhere” terminate reason to the rest so they cannot answer the call too). Besides, in case the first of the parties declines the call, the “answered-elsewhere” terminate reason will be sent also to the rest of devices. In any case the server tries to establish the call, user is notified about that and the progress of the call attempt (see bug 1007681) (UX Details here…)
No description provided.
| Reporter | ||
Updated•12 years ago
|
User Story: (updated)
| Reporter | ||
Updated•12 years ago
|
Blocks: loop_start_call
| Reporter | ||
Updated•12 years ago
|
User Story: (updated)
Comment 1•12 years ago
|
||
Facebook contacts which may have been imported on the phone are excluded from the Loop contact integration for legal reasons.
| Reporter | ||
Comment 2•12 years ago
|
||
(In reply to Romain Testard [:RT] from comment #1)
> Facebook contacts which may have been imported on the phone are excluded
> from the Loop contact integration for legal reasons.
In the specific case of this US, we are calling directly from the Address Book (not from Loop Application). Is this a problem? I understand that Loop application should not be able to read FB Data Store but in this US is the contact application the one reading it and just making a call to Loop.
Flags: needinfo?(rtestard)
Comment 3•12 years ago
|
||
The issue is about providing Facebook contact data to a third party application.
Even if the trigger would be made from the contact application, the Loop application would be using either the MSISDN or the email address (which both would come from FB) to initiate the call, right?
Flags: needinfo?(rtestard)
Comment 4•12 years ago
|
||
(In reply to Romain Testard [:RT] from comment #3)
> The issue is about providing Facebook contact data to a third party
> application.
> Even if the trigger would be made from the contact application, the Loop
> application would be using either the MSISDN or the email address (which
> both would come from FB) to initiate the call, right?
If this is the legal advise, FirefoxOS has then a bigger issue as the contacts application exposes a picker activity that basically allows any application to get the details of any contact (including data imported from FB). The flow of data imported from FB is exactly the same in both cases so I would say that if this User Story cannot be implemented because of legal reasons we should also change the picker activity in contacts so that it does not expose the information imported from FB. Please note that Loop was also planning to do this (using Picker Activity) in order to get access to contacts information and not maintaining a different Database.
I was involved in the initial discussion to sign the agreement with FB and the intention behind that agreement was protecting programatical access to FB Data (e.g. via APIs). I think sending a phone number or e-mail to Loop application so it can make a call to it, especially when the user has proactively clicked on the Call via Loop button in the contacts detail view, is explicit consent from an end-user point and something not inline with what FB tried to prevent. However, I am not a lawyer so I might be totally wrong.
Romain, can you please double check? This is critical as it affects FirefoxOS as a whole, CCing Wilfred as he is the Comms PM.
Flags: needinfo?(rtestard)
Comment 5•12 years ago
|
||
I copy Geoff who hopefully can answer your question in details.
Flags: needinfo?(rtestard) → needinfo?(gpiper)
Comment 6•12 years ago
|
||
Happy to have a meeting about this as it seems it is warranted since there are several threads/bugs/comms going on around this.
I will reiterate here. We do not have to my knowledge to date an agreement with Facebook that would allow this. We would need a separate agreement with Facebook (they are restrictive about use of contacts this way).
Flags: needinfo?(gpiper)
Comment 7•12 years ago
|
||
Let me summarize the three use cases I see for the Loop app. Please bear in mind that the first one is already implemented in the platform an open to any app. Could you please let us know if you believe which use cases are feasible and which ones are not? Happy to have a meeting if that speeds things up but I think the description below should be clear enough to start taking decisions.
USE CASE 1
Any application, even if it is a hosted app can invoke contacts application through activities. There is one activity called picker that allow any third party app to get for instance the phone number of a contact. That phone number could be, for instance, a phone number that was imported from FB. The flow should be something like:
- 3rd Party app invoke picker
- Contacts app shows list of contacts
- User selects one
- Phone Number is sent back to the 3rd Party app
This is implemented today and used by many 3rd party apps. The plan was to use this mechanism in Loop.
USE CASE 2
Contacts Application send information related to the data imported from FB to another application upon a specific user action. For instance, in our case the flow would be:
- Contacts show the details of a contact (including, for instance a FB phone number) and shows a button to invoke Loop
- User click on the Call Loop button
- The phone number is sent to Loop so it can call the phone number the user has selected
USE CASE 3
In use cases 1 and 2 the Loop application can call the phone number that has been passed but cannot know the name linked to that phone number entry.
E.g. A contact in the address book with name “Daniel Coloma” and phone number imported from FB +34123456789. If that number is called via Loop by the Use Cases 1 or 2, Loop will show an ongoing call to +34123456789 but not an ongoing call to Daniel Coloma. The same would happen in the Call Log.
This could be solved by allowing programatic access (via Data Store API) to the FB Data stored in the Data Store. A prompt could be shown when Loop app tries to access FB DataStore if that makes this use case inline with any agreement.
Flags: needinfo?(gpiper)
| Reporter | ||
Updated•12 years ago
|
User Story: (updated)
Comment 8•12 years ago
|
||
Let's meet about this. Please set one up. I believe FB contacts import/use requires a license with FB which we don't have to my knowledge.
Flags: needinfo?(gpiper)
Comment 9•12 years ago
|
||
(In reply to Geoff Piper from comment #8)
> Let's meet about this. Please set one up. I believe FB contacts import/use
> requires a license with FB which we don't have to my knowledge.
Yes, let's arrange a meeting. I'll ping you offline. In the meantime, there is an agreement between Mozilla and FB, and I pretty positive about this but I think Chris can confirm (ni on him).
Flags: needinfo?(clee)
Comment 10•12 years ago
|
||
Send me this agreement that you have so I can see it please. I don't believe we have any kind of agreement with FB that handles contacts.
| Reporter | ||
Updated•12 years ago
|
Summary: As a user I would like to be able to make a call directly from the address book contact details → [User Story] As a user I would like to be able to make a call directly from the address book contact details
Comment 11•12 years ago
|
||
Posting same comment here for everyone's benefit on this bug, from Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1006053
I believe I am better equipped to assist here now having seen all of our Facebook agreements on point. If we need a meeting I understand and that might be helpful for several reasons, mainly so I can fully understand what we are doing with Facebook contacts and Loop.
To summarize, via the Facebook Social API agreement and extended API amendment, we have the following rights:
"Firefox OS offers users the ability to Import his/her Facebook's contacts Into the Contacts app. The Import pulls the contact's uld, name,firs.t_name, last_ name, pic_blg, current_location, mlddle_name, birthday_date, email, profile_update_tlme, work, phones, hometown_location based on the availability of the data. Once the user imports contacts from Facebook, those contacts are downloaded and available on the native device's contacts app only.
Those contacts are stored locally on the device and once a user logs out of Face book through the integration, the OS deletes the locally stored Facebook contact data. Any imported Facebook contacts could never be uploaded to a remote server through default built-In Fire fox OS functionality."
This means we do not have the ability to sync, aggregate or copy off the device. It is to be client stored only.
Please let me know if you would like to speak more about this or if you think a meeting will be productive.
| Reporter | ||
Updated•12 years ago
|
Priority: -- → P1
Updated•12 years ago
|
Whiteboard: [ucid:WebRTC20,2.0, ft:webrtc]
| Reporter | ||
Updated•12 years ago
|
| Reporter | ||
Comment 15•12 years ago
|
||
Updated the US with the termination reasons in https://wiki.mozilla.org/Loop/Architecture/MVP#Termination_Reasons
User Story: (updated)
| Reporter | ||
Updated•11 years ago
|
User Story: (updated)
| Reporter | ||
Updated•11 years ago
|
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•