[webrtc-pc] simple webrtc connection and manual signaling (QR, JSON, Carrier pigeon) - consent time out prevents connection (#2945)

minidogenft has just created a new issue for https://github.com/w3c/webrtc-pc:

== simple webrtc connection and manual signaling (QR, JSON, Carrier pigeon) - consent time out prevents connection ==
I thought this would be straight forward but the consent freshness will timeout all connections too fast to allow any realistic  manual connection between host and peer (no signaling server but directly providing the offer/answer/candidates through high latency messaging:  QR, email, JSON, Carrier pigeon, foot).

I am trying something very simple :  

- Open a webrtc connection for a single data channel between 1 host and 1 peer.
- I can use 1 STUN server and nothing else. Signaling must be manual and very low latency. Renegotiating the connection is not needed.


As per developer.mozilla.org documentation on webrtc api, even a carrier pigeon could be used to setup the signaling. 

However, it doesn't seem to be possible as soon as we create an answer on the peer side, transport will fail if the host doesn't process it within few seconds:

Step 1- host creates offer for 1 data channel and gather candidates until "complete". Format SDP and candidates into a connection String (or QR) and provide it to peer via high latency manual exchange.

Step 2 - peer process connection string/QR,  adds sdp, candidates from host, creates answer and gather candidates until "complete".  Format SDP and candidates into a connection String (or QR) and provide it to host via high latency manual exchange. Unfortunately, at this step consent freshness will start and the connectionstatechange will change to failed within a short time frame (seconds) if the host cannot process this info fast enough. 

step 3 - host process connection string/QR, adds sdp, candidates from peer. Connection is failed or established if we were fast enough.


I cannot find any way to change the consent freshness timeout. Configuring it doesn't seem to be part of the API.

Is there a solution or special setup that I am missing to make my use case possible (high latency  manual signaling)? 

Or did the protocol changed in such way since consent freshness that not using a signaling server makes it impossible to establish the p2p connection?

Thanks a lot, I really hope there is a way to solve my problem.

![image](https://github.com/w3c/webrtc-pc/assets/94354526/4d73954b-c436-40b8-a9aa-966027185553)


Please view or discuss this issue at https://github.com/w3c/webrtc-pc/issues/2945 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Tuesday, 27 February 2024 05:13:15 UTC