Hi,
I am trying to understand PeerConnection state machine, in particular whether it's possible to recover from the PeerConnection failed state.
Reading
W3C WebRTC standard, we can move to the failed state when ICETransport or DTLSTransport moves to the failed state.
Let's assume that our peer sent us their description with an invalid cert fingerprint.
Our DTLSTransport will move to the failed state so the whole PeerConnection.
Should we allow for recovering from this state?
If yes, is ICE restart required or simply generating and setting descriptions on both sides will be enough?
I assume that ICE restart is needed as we won't get ICE candidates unless we buffered ones from the previous exchange.
Another question is what we should do with transports when PeerConnection fails? Should we close them, in particular should we close ICETransport and its agent or is it left for the implementators?