Join GitHub today
Asymmetry between RTP and RTCP within the API #223
Currently the API draft does not state that RTP and RTCP IceGatherers need to have the same ufrag/password. Within SDP, this is a requirement since RTP/RTCP share the same m-line.
Also, we have iceTransport.createAssociatedTransport() for creation of an RTCP IceTransport and iceGatherer.createAssociatedGatherer() for creation of an RTCP IceGatherer. If createAssociatedGatherer() is called before createAssociatedTransport, then the RTCP IceTransport can be associated with the RTCP IceGatherer. Otherwise, the RTCP IceTransport and RTCP IceGatherer are not associated until rtcpIceTransport.start() is called. The association enables pruning of an RTCP IceGatherer. This leads me to wonder whether not calling .createAssociatedGatherer first should result in an error.
One aspect which is not currently specified is that .createAssociatedGatherer has to create an RTCP IceGatherer with the same usernameFragment/password as the RTP IceGatherer. From the JSEP draft:
Each m= section MUST include the following attribute lines:
o "a=ice-ufrag" and "a=ice-pwd" lines, as specified in [RFC5245], Section 15.4.
Should it be required that RTP and RTCP IceGatherers share the same RTCIceParameters and RTCIceGatherOptions?
For example, we could add the following text to Section 2.3.2:
Create an associated RTCIceGatherer for RTCP, with the same RTCIceParameters and RTCIceGatherOptions as for the RTP RTCIceGatherer. If