What happens when creating a data channel with an out-of-range stream ID? (Issue 746)

WebRTC implementations are recommended by https://tools.ietf.org/html/draft-
ietf-rtcweb-data-channel-13 to negotiate the maximum number of 65535
streams.

However, since implementations are not *required* to do this, what should
happen if N streams are negotiated, and an application tries to create a
data channel with stream ID = N+1? Or simply creates N+1 data channels with
auto-selected stream IDs?

   - Should the WebRTC implementation fail to create the data channel?
      - If so, how is the application notified? createDataChannel can't
      always throw an exception, since at the point when it's called, the
      SCTP handshake may not be done, so the browser doesn't know how many
      streams will be negotiated.
   - Should additional streams be added using a stream reconfiguration
   request?
      - If so, what should happen if the request is denied by the remote
      endpoint?
         - Should the entire SCTP association be terminated?
         - Should the data channel simply go to the "closed" state?

I personally prefer the latter path (doing reconfiguration), since it would
ensure the maximum number data channels can always be negotiated between
two compliant WebRTC implementations. If others agree, we'd need to handle
this in rtcweb.

Here's a link to the issue: https://github.com/w3c/webrtc-pc/issues/746

Received on Wednesday, 24 August 2016 18:09:08 UTC