Bug 31214 - Call should allow multiple selected candidates and tell CM about local one
Summary: Call should allow multiple selected candidates and tell CM about local one
Status: RESOLVED DUPLICATE of bug 34149
Alias: None
Product: Telepathy
Classification: Unclassified
Component: tp-spec (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Telepathy bugs list
QA Contact: Telepathy bugs list
URL:
Whiteboard: Call
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-29 06:55 UTC by Louis-Francis Ratté-Boulianne
Modified: 2011-02-11 11:31 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Louis-Francis Ratté-Boulianne 2010-10-29 06:55:21 UTC
There are currently three flaws with current Call spec:

 - There is no way for the CM to know which local candidates are selected.
 - There is no way for the CM to tell which local candidates the remote end-point chose to use (Equivalent of current SetActiveCandidatePair).
 - Only one candidate can be set as selected, even though there are usually two (one candidate per component).

Also, I'm not really sure about how it works in conference calls. Do all end-points use the same local candidate ? I doubt it; so we probably have to let know the CM which end-point the local candidate was selected for as well.

One possible API could be:

Call.Stream ->
 - NewSelectedCandidate(Endpoint, Candidate) method
 - CandidateSelected(Endpoint, Candidate) signal
 - LocalSelectedCandidates({Endpoint:[Candidates]}) property

Call.Stream.Endpoint ->
 - NewSelectedCandidate(Candidate) method
 - CandidateSelected(Endpoint, Candidate) signal
 - RemoteSelectedCandidates([Candidates]) property
Comment 1 Olivier Crête 2010-10-31 18:37:42 UTC
I think the API should be on the Endpoint and should be something like:

Endpoint.SetSelectedCandidate(Local: Candidate , Remote: Candidate)
Comment 2 Louis-Francis Ratté-Boulianne 2010-11-01 08:04:01 UTC
(In reply to comment #1)
> I think the API should be on the Endpoint and should be something like:
> 
> Endpoint.SetSelectedCandidate(Local: Candidate , Remote: Candidate)

I agree, except there could be more than one pair. So:

 - NewSelectedCandidate[Pair] or;
 - AddSelectedCandidate[Pair]
Comment 3 Olivier Crête 2010-11-01 08:21:31 UTC
The candidate "struct" includes the component id, maybe we should do SetSelectedCandidates(Local: CandidateList, Remote: CandlidateList).. and state that there should be only one candidate per componenent and they the lists should match.
Comment 4 Sjoerd Simons 2010-11-03 11:15:09 UTC
Olivier and myself quickly discussed it on irc, in practise the different ICE sessions will go connected one by one, so we should just have one method to add them one at a time, say:

AddSelectCandidatePair (Candicate: Local, Candidate: Remote)

With a nice signal and a properly listing the candidate pairs that have been selected so observers can see happyness occurred. Candidates obviously need to have a matching component
Comment 5 Olivier Crête 2011-02-09 04:41:34 UTC
We should also specify that there can be only one selected candidate per component.
Comment 6 Olivier Crête 2011-02-09 04:42:42 UTC
Also, in the case of ICE restart, I think the SelectedCandidates should be cleared.. so maybe the signal should be
SelectedCandidatePairsChanged() and contain a mapping of Component->Pair.
Comment 7 Olivier Crête 2011-02-11 11:31:51 UTC
The other bug has a patch

*** This bug has been marked as a duplicate of bug 34149 ***


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.