Issue 242: DataChannel / implementation IETF conflict even / odd port problem

>From Robin Raymond:

https://github.com/openpeer/ortc/issues/242

DataChannel can be constructed and wired before Dtls/Ice is started and DTLS role is determined.

But in section 4 of data protocol doc https://www.ietf.org/id/draft-ietf-rtcweb-data-protocol-09.txt

It says:

To avoid collisions where both sides try to open a Data Channel with

   the same Stream Identifiers, each side MUST use Streams with either

   even or odd Stream Identifiers when sending a DATA_CHANNEL_OPEN

   message.  When using SCTP over DTLS

   [I-D.ietf-tsvwg-sctp-dtls-encaps], the method used to determine which

   side uses odd or even is based on the underlying DTLS connection

   role: the side acting as the DTLS client MUST use Streams with even

   Stream Identifiers, the side acting as the DTLS server MUST use

   Streams with odd Stream Identifiers.

The trouble is that DataChannel could be fully constructed with params.id before this odd/even rule could potentially be enforced. Thus we might need to fire "DataChannel.onerror" if we wish to enforce this IETF rule. Plus we may have to throw an exception on construction if we are able to determine the params are invalid upon construction due to the established DTLS client/server role.

Received on Thursday, 24 September 2015 07:09:39 UTC