PsychoLlama / farnsworth

Peer to peer encrypted video calling
https://farnsworth.video
GNU Affero General Public License v3.0
13 stars 2 forks source link

WebRTC signaling fails in Safari when polite=true #22

Open PsychoLlama opened 2 years ago

PsychoLlama commented 2 years ago

When Safari is forced into ICE rollback on a signaling conflict, it doesn't seem to take the hint:

InvalidStateError: Remote description type 0 is incompatible with current signaling state 1

I confirmed this only seems to happen when Safari is signaling in polite mode.

PsychoLlama commented 2 years ago

It seems Safari hasn't implemented ICE rollback as part of setLocalDescription() without parameters.

I can either:

  1. Rework the call logic to always avoid conflicts, possibly by having the "polite" caller always ask the other to call them instead (might not be a bad solution)
  2. Ignore the problem until Safari becomes spec compliant (could take millennia)

Sounds like a problem for some other day.