14. Extensibility Considerations (Considérations d'extensibilité)
Cette spécification fait des choix très spécifiques sur la manière dont les deux agents d'une session se coordonnent pour arriver à l'ensemble de paires de candidats sélectionnées pour les médias. Il est prévu que les spécifications futures voudront modifier ces algorithmes, qu'il s'agisse de modifications simples comme des ajustements de minuterie ou de modifications plus importantes comme une refonte de l'algorithme de priorité. Lorsqu'un tel changement est effectué, assurer l'interopérabilité entre les deux agents d'une session est essentiel.
Premièrement, ICE fournit l'attribut SDP a=ice-options. Chaque extension ou modification d'ICE est associée à un jeton. Lorsqu'un agent prenant en charge une telle extension ou modification génère une offre ou une réponse, il MUST inclure le jeton pour cette extension dans cet attribut. Cela permet à chaque partie de savoir ce que fait l'autre partie. Cet attribut MUST NOT être présent si l'agent ne prend en charge aucune extension ou modification ICE.
À l'heure actuelle, aucun registre IANA ni aucune procédure d'enregistrement ne sont définis pour ces balises d'option. Au moment de la rédaction, il n'est pas clair si les modifications et extensions ICE seront suffisamment courantes pour justifier un registre.
L'une des complications pour atteindre l'interopérabilité est qu'ICE s'appuie sur un algorithme distribué s'exécutant sur les deux agents pour converger vers un ensemble convenu de paires de candidats. Si les deux agents exécutent des algorithmes différents, il peut être difficile de garantir la convergence sur les mêmes paires de candidats. La procédure de nomination régulière décrite à la section 8 élimine une partie de la coordination étroite en déléguant complètement l'algorithme de sélection à l'agent de contrôle. Par conséquent, lorsqu'un agent de contrôle communique avec un pair qui prend en charge des options qu'il ne connaît pas, l'agent MUST exécuter un algorithme de nomination régulier. Lorsque la nomination régulière est utilisée, ICE convergera parfaitement même lorsque les deux agents utilisent des algorithmes de priorisation de paires différents. L'une des clés d'une telle convergence réside dans les vérifications déclenchées, qui garantissent que la paire nommée est validée par les deux agents. Par conséquent, toute amélioration future d'ICE MUST préserver les vérifications déclenchées.
ICE est également extensible à d'autres flux multimédias au-delà de RTP et pour les protocoles de transport au-delà de UDP. Les extensions d'ICE pour les flux multimédias non RTP doivent spécifier combien de composants ils utilisent et leur attribuer des ID de composant, en commençant à 1 pour l'ID de composant le plus important. Les spécifications des nouveaux protocoles de transport doivent définir comment, le cas échéant, les différentes étapes du traitement ICE diffèrent de l'UDP.