4.1.19. addIceCandidate
4.1.19. addIceCandidate
La méthode addIceCandidate fournit une mise à jour à l'agent ICE via un objet IceCandidate (Section 3.5.2.1). Si le champ candidat de l'IceCandidate est non nul, l'IceCandidate est traité comme un nouveau candidat ICE distant, qui sera ajouté à la description distante actuelle et/ou en attente conformément aux règles définies pour Trickle ICE. Sinon, l'IceCandidate est traité comme une indication de fin de candidats, telle que définie dans [RFC8838], Section 14.
Dans les deux cas, l'index de section "m=", les champs MID et ufrag de l'IceCandidate fourni sont utilisés pour déterminer à quelle section "m=" et génération de candidats ICE l'IceCandidate appartient, comme décrit dans la Section 3.5.2.1 ci-dessus. Dans le cas d'une indication de fin de candidats, les valeurs nulles pour l'index de section "m=" et les champs MID sont interprétées comme signifiant que l'indication s'applique à toutes les sections "m=" dans la génération de candidats ICE spécifiée. Cependant, si les deux champs sont nuls pour un nouveau candidat distant, cela DOIT être traité comme une condition invalide, comme spécifié ci-dessous.
Si des champs de l'IceCandidate contiennent des valeurs invalides ou si une erreur se produit lors du traitement de l'objet IceCandidate, l'IceCandidate fourni DOIT être ignoré et une erreur DOIT être retournée.
Sinon, le nouveau candidat distant ou l'indication de fin de candidats est fourni à l'agent ICE. Dans le cas d'un nouveau candidat distant, des vérifications de connectivité seront envoyées au nouveau candidat, en supposant que setLocalDescription a déjà été appelé pour initialiser le processus de collecte ICE.