- From: Bernard Aboba <Bernard.Aboba@microsoft.com>
- Date: Thu, 16 Apr 2015 15:24:55 +0000
- To: "public-ortc@w3.org" <public-ortc@w3.org>
- Message-ID: <BLUPR03MB1494CD1ABC4576876A3C1FDECE40@BLUPR03MB149.namprd03.prod.outlook.com>
It appears that there is a problem with having an IceGatherer respond to connectivity checks. RFC 5245 Section 7.1.2.2 states: 7.1.2.2. ICE-CONTROLLED and ICE-CONTROLLING The agent MUST include the ICE-CONTROLLED attribute in the request if it is in the controlled role, and MUST include the ICE-CONTROLLING attribute in the request if it is in the controlling role. The content of either attribute MUST be the tie-breaker that was determined in Section 5.2. These attributes are defined fully in Section 19.1. The problem is that an IceGatherer does not know its role, and so it cannot determine if there is a role conflict so as to correctly behave as specified in RFC 5245 Section 7.1.3.1: 7.1.3.1. Failure Cases If the STUN transaction generates a 487 (Role Conflict) error response, the agent checks whether it included the ICE-CONTROLLED or ICE-CONTROLLING attribute in the Binding request. If the request contained the ICE-CONTROLLED attribute, the agent MUST switch to the controlling role if it has not already done so. If the request contained the ICE-CONTROLLING attribute, the agent MUST switch to the controlled role if it has not already done so. Once it has switched, the agent MUST enqueue the candidate pair whose check generated the 487 into the triggered check queue. The state of that pair is set to Waiting. When the triggered check is sent, it will contain an ICE- CONTROLLING or ICE-CONTROLLED attribute reflecting its new role. Note, however, that the tie-breaker value MUST NOT be reselected. Therefore, if an IceGatherer can responds to incoming connectivity checks, the result could be an undetected role conflict.
Received on Thursday, 16 April 2015 15:25:23 UTC