Bug 31280

Summary: Call: Need something for Controlling mode
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: danielle, david.laban, lfrb, youness.alaoui
Version: git masterKeywords: patch
Hardware: Other   
OS: All   
URL: http://git.collabora.co.uk/?p=user/danni/telepathy-spec.git;a=shortlog;h=refs/heads/call-31280
Whiteboard: Call
i915 platform: i915 features:
Bug Depends on: 34189    
Bug Blocks:    

Description Olivier Crête 2010-10-31 18:57:36 UTC
In ICE, the Caller is normally in controlling mode (and the cally in controlled). Except if the Caller is doing ICE-Lite, then it's reversed.. We need a way to indicate what is going in the Stream (or possibly the Endpoint?).
Comment 2 Olivier Crête 2010-11-08 21:32:39 UTC
I forgot to add, I think we may need a way for tp-fs/libnice to tell the CM that its role has been reversed.. Because the controlling agent must send an updated offer.. if I read RFC 5245 correctly.
Comment 3 Danielle Madeley 2010-11-08 21:43:43 UTC
A SetLocalControlMode() ?
Comment 4 Olivier Crête 2010-11-08 21:56:44 UTC
maybe just writing to the property.. not sure at all. and the property isnt immutable then.. Btw, it should be on Stream.I.Media
Comment 5 Youness Alaoui 2010-11-09 08:48:58 UTC
(In reply to comment #2)
> I forgot to add, I think we may need a way for tp-fs/libnice to tell the CM
> that its role has been reversed.. Because the controlling agent must send an
> updated offer.. if I read RFC 5245 correctly.

Yes, you read it right, it says the controlling agent is responsible for sending the updated offer, and in section 7.1.3.1 (Failure Cases), it talks about the effect of a role reversal :
"The change in role will also impact whether the agent is responsible for selecting nominated pairs and generating updated offers upon conclusion of ICE."
So a change in role must be sent back from the ICE agent to the signaling handler (CM).
Comment 6 Olivier Crête 2011-02-11 11:49:35 UTC
On the Endpoint:

Property: Controlling: b
Method: SetControlling: b
Signal: ControllingChanged: b

Endpoint:

Property: IsICELite b

Maybe some way to set it on the Stream:
Property: LocalIsICELite b
Method: SetICELite b
or use dbus Property modifications !?!?
Comment 7 David Laban 2011-03-08 04:00:16 UTC
Decided to make the assumption that the local side is ICE Full, as ocrete recommended in our meeting.

http://git.collabora.co.uk/?p=user/alsuren/telepathy-spec.git;a=shortlog;h=refs/heads/controlling

I'm not quite sure how SetControlling() will work in the call forking case, so I've left a little "here be dragons" in there, and we can sort it out when we've implemented it.
Comment 8 Olivier Crête 2011-03-08 07:31:31 UTC
Endpoint can have different controlling orientations, its fine..
Comment 9 David Laban 2011-03-11 07:34:16 UTC
If you need to send "Hi. I'm the controlling side" in the SDP, then in a forked call, you will be sending it to all remote endpoints... but that case won't ever happen if we're the calling side and also ICE Full, right?

Is there ever a time when we will want to call SetControlling(False)? I don't think I've quite understood this part of the spec. I'm going to leave this warning in here until someone can prove to me that it's never going to a problem, or I've implemented + tested ICE/SIP forking.
Comment 10 David Laban 2011-03-22 13:32:21 UTC
(In reply to comment #9)
> If you need to send "Hi. I'm the controlling side" in the SDP, then in a forked
> call, you will be sending it to all remote endpoints... but that case won't
> ever happen if we're the calling side and also ICE Full, right?
> 
> Is there ever a time when we will want to call SetControlling(False)? I don't
> think I've quite understood this part of the spec. I'm going to leave this
> warning in here until someone can prove to me that it's never going to a
> problem, or I've implemented + tested ICE/SIP forking.

I'm actually quite looking forward to getting this reviewed/merged, so I can get a bit closer to implementing it. Should I merge http://git.collabora.co.uk/?p=user/alsuren/telepathy-spec.git;a=shortlog;h=refs/heads/controlling with or without the last commit?
Comment 11 Olivier Crête 2011-03-22 13:46:56 UTC
merge/implement it then !
If it doesn't work, we can always change it later
Comment 12 David Laban 2011-03-22 13:56:09 UTC
Abusing Assigned to mean "merged in alsuren/call and available at
http://people.freedesktop.org/~alsuren/telepathy-spec-call/spec/".
Comment 13 David Laban 2011-07-19 12:17:04 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.