Subject: [Wish] Distinguishing ICE restarts from candidates

From: Juliusz Chroboczek <[email-masked]>
Date: Sat, 11 Sep 2021 15:04:09 +0200

If I read draft-ietf-wish-whip-00 Section 4.1 right, both ICE restarts and
candidates are sent using the PATCH method and MIME type
"application/trickle-ice-sdpfrag".  Which is weird.

I'm currently assuming that a body starting with "v=" is an ICE restart,
and a set of ICE candidates otherwise.

Should ICE restart use a POST with MIME type "application/sdp"?  Is it
okay to simply use the method and/or the MIME type to distinguish between
restarts and candidates?

-- Juliusz

---

From: Sergio Garcia Murillo <[email-masked]>
Date: Sat, 11 Sep 2021 15:14:03 +0200

> okay to simply use the method and/or the MIME type to distinguish between

Why an ice restart would require a full sdp exchange when only new ice
username and password and candidates are required?

Best regards
Sergio

---

From: Lorenzo Miniero <[email-masked]>
Date: Sat, 11 Sep 2021 15:15:36 +0200

On Sat, 11 Sep 2021 15:04:09 +0200
Juliusz Chroboczek <[email-masked]> wrote:

> If I read draft-ietf-wish-whip-00 Section 4.1 right, both ICE
> restarts and candidates are sent using the PATCH method and MIME type
> I'm currently assuming that a body starting with "v=" is an ICE
> restart, and a set of ICE candidates otherwise.
> 
> okay to simply use the method and/or the MIME type to distinguish
> between restarts and candidates?
> 
> -- Juliusz
> 

If you assume the media doesn't change, the info a PATCH provides would
be enough to trigger a restart, as in this context of all the info you
typically get in the whole SDP what's important are the ICE credentials
that change. So, as a server, receiving a ugfrag/pwd different from the
ones you were aware of will let you know a restart is taking place: if
as a server you require a full SDP to trigger it, it's just a matter of
updating the last SDP you received with the new ICE credentials (to act
as if you just received a new one), and generate an answer you will not
send back. That's probably how I'll implement it in my server (since it
wraps Janus that works on full SDPs), which I haven't done yet since my
client doesn't support restarts yet (they're not implemented in
GStreamer's webrtcbin).

Lorenzo

-- 
I'm getting older but, unlike whisky, I'm not getting any better
https://twitter.com/elminiero

---

From: Juliusz Chroboczek <[email-masked]>
Date: Sat, 11 Sep 2021 15:19:56 +0200

> That's probably how I'll implement it in my server (since it wraps Janus
> that works on full SDPs),

Same in Galene, which is what confused me.  Thanks for the explanation.

-- Juliusz