Lovinity / wwsu-dj-controls

THIS PROJECT HAS BEEN MIGRATED TO GITLAB: https://gitlab.com/wwsu1069/wwsu-dj-controls
https://wwsu1069.org
MIT License
3 stars 0 forks source link

peerJS audio calling between DJ Controls #16

Open Lovinity opened 5 years ago

Lovinity commented 5 years ago

Incorporate peerJS in DJ Controls.

- [ ] Transform DJ Controls to always show the options icon regardless if the client is an admin. However, hide access to all buttons / management which require admin. REJECTED: using separate audio options / icon instead

- [ ] All DJ Controls should use WWSU-${host fingerprint} as their peer ID. REJECTED: Peerjs does not support this. Instead, DJ Controls will report the peer ID to a server endpoint.

Lovinity commented 5 years ago

PeerJS calls are currently causing CPU to spike, and sometimes audio is not actually being broadcast out.

Lovinity commented 5 years ago

Although a majority of the features have been implemented in DJ Controls, this feature is being marked as UNSTABLE; it is too time consuming to fix this at this time considering 6.0.0 has a deadline

Lovinity commented 5 years ago

Peer.js continues to give us issues. It is now too late to implement a stable Peer.js in DJ Controls.

Peer.js and remote broadcasting capabilities will be disabled in version 6.0.0

The current plan is to use Kamailio server-side and sipjs client side. However, be aware Kamailio use will require an open UDP port/ports on the WWSU server.

Lovinity commented 5 years ago

I'm giving this another go using SkywayJS, which is a derivative of PeerJS with a more dedicated STUN and TURN server. They give us a generous 500GB of TURN per month, plus 500,000 STUN signals per month. That's more than plenty for WWSU use and then some.

Currently running a lot of tests. SkywayJS so far seems very reliable in terms of connection reliability.

Lovinity commented 5 years ago

SkywayJS seems promising. The main issue is sometimes when the network goes bad, there will be a lot of jitter, which will remain even when restarting the audio call. This will need addressed before SkywayJS becomes a feasible solution.