The controlled agent, upon receiving the final offer, MUST validate the candidates received in the final offer by verifying that it has a candidate pair that consists of the local and remote candidates in the final offer. If the remote candidate in the final offer is not known, the call MUST fail. If the local candidate in the final offer is not known, the endpoint checks the triggered check queue to see if there are triggered checks queued as a result of the Simple Traversal of UDP through NAT (STUN) binding request with the nomination flag received from the controlling agent during nomination. If no corresponding triggered checks are found, the call MUST fail. If found, these triggered checks are processed until either the local candidate that matches the local candidate in the final offer is discovered or the application layer terminates the call.
If a matching candidate pair for the candidates in the final offer is found, the endpoint MUST switch to using the local and remote candidates in the offer for media flow. It MUST acknowledge the receipt of the final offer similarly, with a response that MUST contain only the local candidate and the remote candidate to be used for media flow. If the selected local candidate is a TURN candidate, a Set Active Destination message, as specified in [MS-TURN] section 3.2.5, SHOULD be sent for that candidate, and the subsequent processing SHOULD also be as specified in [MS-TURN] section 3.2.5. Local candidates other than the selected local candidate SHOULD be freed.