I'm working on a WebRTC VOIP product. I am not using peer-to-peer connections, but instead having clients connect to a SFU which distributes audio to everyone involved in a call.
From my understanding, the signal server is implementing using SIP (or some other protocol). The signal server manages call details and controls the SFU. In some cases, the signal server even monitors the SFU and has the ability to restart it.
Since the signal and SFU servers are separate, how should they communicate? Should these servers run within the same VM? How should the signal server communicate info to the SFU? Is the signal server even important after the connection is set up? Also, from my understanding, clients don't remain connected to the signal server after a connection is setup. I'm assuming this means clients are connected to another gateway that is used for doing things during the call and that this gateway communicates with the signal server which is controlling call sessions.
How should the signal server control the SFU? How should other servers talk to the signal server? I'm a little confused on how to separate these out.