Zum Hauptinhalt springen

4.1.8. createOffer

4.1.8. createOffer

Die createOffer-Methode generiert ein SDP-Blob, das ein Angebot gemäß [RFC3264] mit den unterstützten Konfigurationen für die Sitzung enthält, einschließlich Beschreibungen der zu dieser PeerConnection hinzugefügten Medien, der von dieser Implementierung unterstützten Codec-, RTP- und RTCP-Optionen und aller vom ICE-Agenten gesammelten Kandidaten. Ein Optionsparameter kann bereitgestellt werden, um zusätzliche Kontrolle über das generierte Angebot zu bieten. Dieser Optionsparameter ermöglicht es einer Anwendung, einen ICE-Neustart auszulösen, um die Konnektivität wiederherzustellen.

Im ersten Angebot enthält das generierte SDP alle gewünschten Funktionen für die Sitzung (Funktionen, die unterstützt, aber standardmäßig nicht gewünscht werden, können weggelassen werden); für jede SDP-Zeile folgt die Generierung des SDP dem Prozess, der für die Generierung eines ersten Angebots aus der Spezifikation definiert ist, die die gegebene SDP-Zeile definiert. Die genaue Handhabung der ersten Angebotsgenerierung wird in Abschnitt 5.2.1 unten detailliert beschrieben.

Falls createOffer nach der Einrichtung der Sitzung aufgerufen wird, generiert createOffer ein Angebot zur Änderung der aktuellen Sitzung basierend auf Änderungen, die an der Sitzung vorgenommen wurden, z.B. Hinzufügen oder Stoppen von RtpTransceivern oder Anfordern eines ICE-Neustarts. Für jeden vorhandenen Stream MUSS die Generierung jeder SDP-Zeile dem Prozess folgen, der für die Generierung eines aktualisierten Angebots aus dem RFC definiert ist, der die gegebene SDP-Zeile spezifiziert. Für jeden neuen Stream MUSS die Generierung des SDP dem Prozess der Generierung eines ersten Angebots folgen, wie oben erwähnt. Wenn keine Änderungen vorgenommen wurden oder für SDP-Zeilen, die von den angeforderten Änderungen nicht betroffen sind, enthält das Angebot nur die Parameter, die durch den letzten Angebot/Antwort-Austausch ausgehandelt wurden. Die genaue Handhabung der nachfolgenden Angebotsgenerierung wird in Abschnitt 5.2.2 unten detailliert beschrieben.

Von createOffer generierte Sitzungsbeschreibungen MÜSSEN sofort von setLocalDescription verwendbar sein; wenn ein System über begrenzte Ressourcen verfügt (z.B. eine endliche Anzahl von Decodern), SOLLTE createOffer ein Angebot zurückgeben, das den aktuellen Zustand des Systems widerspiegelt, sodass setLocalDescription erfolgreich ist, wenn es versucht, diese Ressourcen zu erwerben.

Der Aufruf dieser Methode kann Dinge tun wie das Generieren neuer ICE-Anmeldeinformationen, ändert jedoch nicht den PeerConnection-Zustand, löst keine Kandidatensammlung aus und führt nicht dazu, dass Medien zu fließen beginnen oder aufhören. Insbesondere wird das Angebot nicht angewendet und wird erst zur ausstehenden lokalen Beschreibung, wenn setLocalDescription aufgerufen wird.