Zum Hauptinhalt springen

3. Determining Support for Trickle ICE (Bestimmung der Unterstützung für Trickle ICE)

Um Trickle ICE vollständig zu unterstützen, sollten (SHOULD) verwendende Protokolle einen der folgenden Mechanismen integrieren, damit Implementierungen bestimmen können, ob Trickle ICE unterstützt wird:

  1. Eine Fähigkeitsentdeckungsmethode bereitstellen, damit Agents die Unterstützung von Trickle ICE vor dem Initiieren einer Sitzung überprüfen können (XMPPs Service Discovery [XEP-0030] ist ein solcher Mechanismus).

  2. Die Unterstützung für Trickle ICE obligatorisch machen, damit User Agents Unterstützung annehmen können.

Wenn ein verwendendes Protokoll keine Methode bereitstellt, um im Voraus zu bestimmen, ob Trickle ICE unterstützt wird, können Agents die in Abschnitt 16 beschriebene Half-Trickle-Prozedur verwenden.

Vor der Übermittlung der anfänglichen ICE-Beschreibung können Agents, die verwendende Protokolle implementieren, die Fähigkeitsentdeckung unterstützen, versuchen zu überprüfen, ob die entfernte Partei Trickle ICE unterstützt oder nicht. Wenn ein Agent feststellt, dass die entfernte Partei Trickle ICE nicht unterstützt, muss (MUST) er auf die Verwendung von regulärem ICE zurückgreifen oder die gesamte Sitzung abbrechen.

Auch wenn ein verwendendes Protokoll keine Fähigkeitsentdeckungsmethode enthält, kann ein User Agent innerhalb der ICE-Beschreibung angeben, dass er Trickle ICE unterstützt, indem er eine ICE-Option von 'trickle' kommuniziert. Dieses Token muss (MUST) entweder auf Sitzungsebene oder, wenn auf Datenstromebene, für jeden Datenstrom bereitgestellt werden (ein Agent darf nicht (MUST NOT) Trickle-ICE-Unterstützung für einige Datenströme angeben, aber nicht für andere). Hinweis: Die Codierung der 'trickle'-ICE-Option und die Nachricht(en), die verwendet werden, um sie an den Peer zu übermitteln, sind protokollspezifisch; zum Beispiel ist die Codierung für SDP [RFC4566] in [RFC8840] definiert.

Dedizierte Entdeckungssemantik und Half Trickle werden nur vor der Initiierung einer ICE-Sitzung benötigt. Nachdem eine ICE-Sitzung hergestellt und Trickle-ICE-Unterstützung für beide Parteien bestätigt wurde, kann jeder Agent für nachfolgende Austausche vollständiges Trickle verwenden (siehe auch Abschnitt 15).