If a client A, wants to connect to 2 other end points B and C. How does A initiates call with B and C using SFU. I mean, how will A communicate to SFU that it needs to connect to B and C? How is ICE working working in this setup?
Asked
Active
Viewed 400 times
1 Answers
1
Clients typically interact with SFUs in a publish/subscribe manner, so the signaling doesn't happen directly between them.
The workflow is usually as follows: client A
publishes a stream to the SFU, then other clients, like B
and C
, may subscribe to A
's feed. In either case (publishing or subscribing), the signaling is happening between the client and the SFU WebRTC agent. And, of course, since the client signals with the SFU, ICE candidates are exchanged with the SFU, not between themselves.

lnogueir
- 1,859
- 2
- 10
- 21
-
HI Inogueir, thanks for the response. I need little more deeper insight. If B and C are waiting for a call from A and they are aware of A publishing the stream to SFU, then B and C can subscribe. What if B and C are not aware. For example in MS teams, we can just call any of colleagues. Likewise how does A calls other clients. Does SFU in some way know that A is trying to connect B and C, does it forward the requests to B and C on behalf of A? – durgesh Aug 09 '21 at 05:25
-
In the case of MS teams, if you're just calling one colleague, then there's no SFU involved most probably, it's just peer-to-peer between you and your colleague. But if it's a group call, then whenever you press the 'Join' button, you are basically sending a request to "subscribe" to the feeds in that group session. – lnogueir Aug 09 '21 at 12:59
-
Hi Inogueir, thank you. Your explanation gave me more clarity on P2P and multiparty call setup involving SFU. – durgesh Aug 10 '21 at 10:08