First listen to lifecycle and optionally iceCandidates. Then create a channel directly on peer connection, which will trigger the connection initiation process. Somehow transfer the local session description to a remote peer, and updateRemoteDescription there. Accepting a remote description will update the local description, which then needs to be transferred back to the original peer and smartUpdateLocalDescription there should complete the connection.
Use peerConnection.addIceCandidate to apply on remote. Once an ICE candidate exists it is also automatically included in the local description, so this is not necessary.
Use peerConnection.addIceCandidate to apply on remote. Once an ICE candidate exists it is also automatically included in the local description, so this is not necessary.
This is triggered by smartUpdateLocalDescription, which in turn is automatically triggered when adding a channel. For reasons that are unclear to me, a data channel MUST be created before looking at the lifecycle, otherwise ICE gathering does not happen
This is triggered by smartUpdateLocalDescription, which in turn is automatically triggered when adding a channel. For reasons that are unclear to me, a data channel MUST be created before looking at the lifecycle, otherwise ICE gathering does not happen