{"action":"created","issue":{"url":"https://api.github.com/repos/jitsi/jitsi-videobridge/issues/651","repository_url":"https://api.github.com/repos/jitsi/jitsi-videobridge","labels_url":"https://api.github.com/repos/jitsi/jitsi-videobridge/issues/651/labels{/name}","comments_url":"https://api.github.com/repos/jitsi/jitsi-videobridge/issues/651/comments","events_url":"https://api.github.com/repos/jitsi/jitsi-videobridge/issues/651/events","html_url":"https://github.com/jitsi/jitsi-videobridge/issues/651","id":315872519,"number":651,"title":"Question about the SFU functionality","user":{"login":"Metsovone","id":38107525,"avatar_url":"https://avatars2.githubusercontent.com/u/38107525?v=4","gravatar_id":"","url":"https://api.github.com/users/Metsovone","html_url":"https://github.com/Metsovone","followers_url":"https://api.github.com/users/Metsovone/followers","following_url":"https://api.github.com/users/Metsovone/following{/other_user}","gists_url":"https://api.github.com/users/Metsovone/gists{/gist_id}","starred_url":"https://api.github.com/users/Metsovone/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Metsovone/subscriptions","organizations_url":"https://api.github.com/users/Metsovone/orgs","repos_url":"https://api.github.com/users/Metsovone/repos","events_url":"https://api.github.com/users/Metsovone/events{/privacy}","received_events_url":"https://api.github.com/users/Metsovone/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-04-19T13:14:55Z","updated_at":"2018-04-20T13:05:16Z","closed_at":null,"author_association":"NONE","body":"Is there a way to externally control the selective forwarding functionality? i.e. which streams are forwarded to which clients via XMPP or something similar?\r\n\r\nI know there is the last-N functionality, but what we are trying to achieve is to have a controller application that communicates with the videobridge via XMPP and the focus user, and which tells the videobridge which streams to forward to whom. \r\n\r\nSo, if for instance, you have Alice, Bob, Carol and Daniel connected, Alice might be receiving Bob's and Carol's stream, Bob will receive Alice's only, Carol might see Alice and Daniel, etc. \r\n\r\nThe main point of this is to be able to:\r\na. Quickly switch which streams a specific client is receiving\r\nb. Have different streams forwarded to different clients"},"comment":{"url":"https://api.github.com/repos/jitsi/jitsi-videobridge/issues/comments/383089419","html_url":"https://github.com/jitsi/jitsi-videobridge/issues/651#issuecomment-383089419","issue_url":"https://api.github.com/repos/jitsi/jitsi-videobridge/issues/651","id":383089419,"user":{"login":"Metsovone","id":38107525,"avatar_url":"https://avatars2.githubusercontent.com/u/38107525?v=4","gravatar_id":"","url":"https://api.github.com/users/Metsovone","html_url":"https://github.com/Metsovone","followers_url":"https://api.github.com/users/Metsovone/followers","following_url":"https://api.github.com/users/Metsovone/following{/other_user}","gists_url":"https://api.github.com/users/Metsovone/gists{/gist_id}","starred_url":"https://api.github.com/users/Metsovone/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Metsovone/subscriptions","organizations_url":"https://api.github.com/users/Metsovone/orgs","repos_url":"https://api.github.com/users/Metsovone/repos","events_url":"https://api.github.com/users/Metsovone/events{/privacy}","received_events_url":"https://api.github.com/users/Metsovone/received_events","type":"User","site_admin":false},"created_at":"2018-04-20T13:05:16Z","updated_at":"2018-04-20T13:05:16Z","author_association":"NONE","body":"We've been looking at how this functionality may be implemented. It would be good to get your feedback.\r\n \r\nWe're using our own UWP client prototype. Eventually we'll port this to JS. We have complete control over the Jingle and colibriClass messages, and over how the SDP is processed. Our goal is to have the JVB forward only a personalised subset of media streams from the moment the client is active, and to subsequently be able to change that subset during the course of the client session. We can control the message flow to the client, so it knows which streams to request. \r\n \r\nIn terms of the JVB code, it looks like what we're trying to achieve is to get BitrateController::prioritise to allocate only those streams. We're not concerned with Last-N, only the creation of an array of received streams for each EndPoint. \r\n \r\nThe strategies we're considering are:\r\n \r\n1.\tUsing colibriChannel to set the selectedEndpoints property. We're not sure if this can even be done, but it can't be done at all until the WebRTC data channel is established, which is too late for our purposes, as we want the Endpoint to start up with a limited selection of media streams.\r\n2.\tDynamically editing the Jingle/SDP, so that on session-initiate and source-add, we manipulate the SDP so it receives only the nominated streams (dynamically creating the appropriate <source/> or a:=ssrc  elements). If we did this, we'd need to know that only selected media streams are being forwarded. \r\n3.\tMaking a PR so that we can implement a new class of Jingle messages to control the function of the JVB to allocate the stream allocation in BitrateController.\r\n \r\nWould any of these be preferable, or possible? It would be helpful to know any blockers in advance.\r\n"}}
{"actor":{"display_login":"Metsovone"}}