Bug 29597

Summary: Call: Add way to add SSRCs per contact
Product: Telepathy Reporter: Olivier Crête <olivier.crete>
Component: tp-specAssignee: Telepathy bugs list <telepathy-bugs>
Status: RESOLVED FIXED QA Contact: Telepathy bugs list <telepathy-bugs>
Severity: normal    
Priority: medium CC: david.laban
Version: unspecifiedKeywords: patch
Hardware: Other   
OS: All   
URL: http://git.collabora.co.uk/?p=user/jonny/telepathy-spec.git;a=shortlog;h=refs/heads/ssrc
Whiteboard: Call
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 29590, 31276    

Description Olivier Crête 2010-08-16 11:13:04 UTC
There should be a way to tell tp-fs which contacts use which SSRC if one has been selected. If we have one Stream per contact, then we can put a "au" of ssrcs as a property on the Stream object with proper change notification.


Also, the Content should have a SSRC property so the CM can tell farsight2 which SSRC it should send on. To implement RFC 4575 like signalling.
Comment 1 Jonny Lamb 2010-10-25 09:38:29 UTC
We have decided:

Local SSRC on Stream.
Remote SSRCs on Endpoint.

(CSRCs will appear later.)
Comment 2 Jonny Lamb 2010-10-26 09:48:15 UTC
Check out my branch.
Comment 3 Olivier Crête 2010-10-26 10:13:12 UTC
The LocalSSRC is a bit more complicated than I said yesterday. If you're in a regular Call, it is randomly selected by the RTP implementation and can change dynamically if you find another useful in the same call using the same SSRC. So there should be a property that can also be unset (in the normal case).

Obviously, if the signalling chooses the LocalSSRC, then it uses a different mechanism to chose a unique one (normally it gets the list of all the other ones before choosing its own).

The RemoteSSRC parts looks good.
Comment 4 Jonny Lamb 2010-10-27 02:40:47 UTC
(In reply to comment #3)
> The LocalSSRC is a bit more complicated than I said yesterday. If you're in a
> regular Call, it is randomly selected by the RTP implementation and can change
> dynamically if you find another useful in the same call using the same SSRC. So
> there should be a property that can also be unset (in the normal case).
> 
> Obviously, if the signalling chooses the LocalSSRC, then it uses a different
> mechanism to chose a unique one (normally it gets the list of all the other
> ones before choosing its own).

So how about this:

 method: SetLocalSSRC(u) -> nothing
 signal: LocalSSRCChanged(u)
 property: u: LocalSSRC

If the RTP implementation chooses the local SSRC then it calls SetLocalSSRC. If the signalling chooses the local SSRC then SetLocalSSRC shouldn't be called, and the value is set directly by the CM. In both cases LocalSSRCChanged is fired after the value is changed.

Does that sound okay and fit both cases?

> The RemoteSSRC parts looks good.

Good.
Comment 5 Olivier Crête 2010-10-27 16:42:02 UTC
Doesn't work.. how is the signalling implementation supposed to find out if it should select the SSRC or not ?
Comment 6 Jonny Lamb 2010-10-28 02:13:08 UTC
(In reply to comment #5)
> Doesn't work.. how is the signalling implementation supposed to find out if it
> should select the SSRC or not ?

Yes, good point. Two choices I see are:

1. Add a ShouldSetLocalSSRC(), or a similarly named method, which
   tp-fs calls to let the CM know that it should set the
   SSRC. Simple.

or

2. Define SetLocalSSRC(0) to mean "please set the local SSRC to
   something sensible given all the other remote SSRCs". Of course,
   this falls down if zero is a valid SSRC. Looking at the RTP RFC it
   doesn't say that it isn't, but you get the idea?

Thoughts?
Comment 7 Olivier Crête 2010-10-29 03:50:50 UTC
0 is a valid ssrc...
Imho, there should be a boolean property "PleaseUseMySSRC" or something.
Comment 8 David Laban 2011-03-16 08:09:20 UTC
Fixed as part of my call-contacts branch, for #31276

Abusing Assigned to mean "merged in alsuren/call and available at
http://people.freedesktop.org/~alsuren/telepathy-spec-call/spec/".
Comment 9 David Laban 2011-04-04 04:23:12 UTC
*** Bug 33040 has been marked as a duplicate of this bug. ***
Comment 10 David Laban 2011-06-10 17:58:23 UTC
http://cgit.collabora.com/git/user/alsuren/telepathy-spec.git/commit/?h=local-descriptions-28718&id=f21d284813ff2262da913fc888b0dc2fea8bf6ea is probably required for the "big video relay in the sky" and "multicast video call" use cases.
Comment 12 Olivier Crête 2011-06-13 15:43:38 UTC
++ !!
Comment 13 David Laban 2011-06-29 13:51:06 UTC
merged to alsuren/call
Comment 14 David Laban 2011-07-19 12:40:02 UTC
merged to master

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.