Summary: | Fix group flags for StreamedMedia Channels | ||
---|---|---|---|
Product: | Telepathy | Reporter: | David Laban <david.laban> |
Component: | rakia | Assignee: | Mikhail Zabaluev <mikhail.zabaluev> |
Status: | RESOLVED FIXED | QA Contact: | Telepathy bugs list <telepathy-bugs> |
Severity: | normal | ||
Priority: | medium | CC: | mikhail.zabaluev |
Version: | git master | ||
Hardware: | Other | ||
OS: | All | ||
URL: | http://git.collabora.co.uk/?p=user/alsuren/telepathy-sofiasip.git;a=shortlog;h=refs/heads/streamedmedia_tests | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Bug Depends on: | 32085 | ||
Bug Blocks: | 33877 |
Description
David Laban
2010-12-07 10:30:05 UTC
http://telepathy.freedesktop.org/spec/Channel_Type_Streamed_Media.html roughly describes how group interface manipulations affect calls (though I notice it doesn't specify whether you should remove yourself or your peer from an ongoing call to end it … whoops). Given that, plus the ruling that you may always remove the self handle from a group, even if CAN_REMOVE is not set—which was in the spec. forever, but not implemented, so the CM has to call tp_group_mixin_class_allow_self_removal() to make tp-glib allow it—then I think the flags should be as follows: Incoming call: members=[peer] local-pending=[self_handle] flags=0 -- you can reject the call by removing yourself Outgoing call: members=[self_handle] remote-pending=[peer] flags=Can_Rescind Ongoing call: members=[peer, self_handle] flags=0 (or Can_Remove if you think that removing the other person is a reasonable way to end calls). Added it to the end of my streamedmedia_tests branch. > Incoming call: > > members=[peer] > local-pending=[self_handle] > flags=0 -- you can reject the call by removing yourself > Yup. This is what I end up with. > Outgoing call: > > members=[self_handle] > remote-pending=[peer] > flags=Can_Rescind > I end up with CAN_ADD and CAN_REMOVE as well, for compatibility with the legacy ways of making outgoing calls. > Ongoing call: > > members=[peer, self_handle] > flags=0 (or Can_Remove if you think that removing the other person is a > reasonable way to end calls). Decided to keep CAN_REMOVE set if we are the initiator, because that's what the code allows. For incoming calls, we have it set to 0. Roll on Telepathy 1.0, when we can delete this mess. Merged to master along with the fixes for #32085. |
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.