Re: DTLS-SDP and JSEP Conflicts
Roman Shpount <[email protected]> Thu, 7 Sep 2017 14:10:48 -0400
| Newsgroups | gmane.ietf.mmusic |
|---|---|
| Message-ID | <CAD5OKxvdC6Eb-eZzd-jd+5-UfRVph2qfJpQKsr3nP-qvcgoaoQ@mail.gmail.com> |
On Thu, Sep 7, 2017 at 10:25 AM, Eric Rescorla <[email protected]> wrote: > > Well, to recap, ICE restart can only be initiated by the offerer: > https://tools.ietf.org/rfcmarkup?doc=5245#section-9.2.2 > > And as we discussed in detail, there's no real way to demux without an ICE > restart, so I'm not interested in trying to preserve that case in the > situations when it happens to work. In general, the offerer can simply > offer a new tls-id if it's willing to accept a new TLS connection. I > appreciate that this will also cause a TLS association even when the > endpoints haven't changed, but this just doesn't seem like that big a deal. > > If you have a specific case in mind that this causes a problem for, I'd > need to see a call-flow diagram to understand it. > > There are two specific scenarios that concern me: 1. Third Party Call Control a. End point A is connected to end point B through third party call control agent 3PCC b. 3PCC sends a request for a new offer to A (using SIP INVITE with no SDP body). c. End point A sends an offer with ICE restart (required in response to INVITE with no SDP) and existing tls-id d. 3PCC agent sends this offer as a new call offer to end point C e. This is a new offer for C, so it sends an answer with a new tls-id to 3PCC f. 3PCC sends an answer to end point A g. Since A got an answer with a new tls-id, a new DTLS association is established between A and C This also has an optional case, when end point C is legacy and it does not send back tls-id attribute, but does send new fingerprint values. I would prefer that new implementations were allowed for the same scenario using tls-id. Note that in step d, 3PCC can also send the re-offer back to B, which will result in existing DTLS association reuse. This is very common when session timers are implemented by 3PCC agents. 2. Connection Recovery a. End point is connected to a service (like conference service) which is comprised from multiple redundant media servers behind a single signaling proxy b. End point detects a network connectivity disruption via keep-alive timeout c. End point initiates connection recovery process by generating an offer with ICE restart and existing DTLS association (and media settings) and sends it to the signaling proxy d. If the network connectivity is restored to the same media server via a different network path, for instance due to client address change, existing DTLS association and media are re-used e. If connectivity failure was due to media server failure, connectivity is restored but to a different media server. New DTLS association and media connection is established in this case. Please note that case d is much less common then case e. In both cases it is possible to make things work by forcing new tls-id value in the offer. This will result in extra DTLS association, local ICE candidate allocations (which are required if new DTLS association is requested via new tls-id), and new media setup. All of those things will waste resources and more importantly will increase connection setup time. Regards, _____________ Roman Shpount _______________________________________________ mmusic mailing list [email protected] https://www.ietf.org/mailman/listinfo/mmusic