Aller au contenu principal

4.1.8. createOffer

4.1.8. createOffer

La méthode createOffer génère un blob de SDP contenant une offre selon [RFC3264] avec les configurations prises en charge pour la session, y compris les descriptions des médias ajoutés à cette PeerConnection, les options de codec, RTP et RTCP prises en charge par cette implémentation, et tous les candidats qui ont été collectés par l'agent ICE. Un paramètre d'options peut être fourni pour offrir un contrôle supplémentaire sur l'offre générée. Ce paramètre d'options permet à une application de déclencher un redémarrage ICE, dans le but de rétablir la connectivité.

Dans l'offre initiale, le SDP généré contiendra toutes les fonctionnalités souhaitées pour la session (les fonctionnalités qui sont prises en charge mais non souhaitées par défaut peuvent être omises); pour chaque ligne SDP, la génération du SDP suivra le processus défini pour générer une offre initiale à partir de la spécification qui définit la ligne SDP donnée. La gestion exacte de la génération d'offre initiale est détaillée dans la Section 5.2.1 ci-dessous.

Dans le cas où createOffer est appelé après l'établissement de la session, createOffer générera une offre pour modifier la session actuelle en fonction de tous les changements qui ont été apportés à la session, par exemple, l'ajout ou l'arrêt de RtpTransceivers, ou la demande d'un redémarrage ICE. Pour chaque flux existant, la génération de chaque ligne SDP DOIT suivre le processus défini pour générer une offre mise à jour à partir du RFC qui spécifie la ligne SDP donnée. Pour chaque nouveau flux, la génération du SDP DOIT suivre le processus de génération d'une offre initiale, comme mentionné ci-dessus. Si aucun changement n'a été effectué, ou pour les lignes SDP qui ne sont pas affectées par les changements demandés, l'offre ne contiendra que les paramètres négociés par le dernier échange offre/réponse. La gestion exacte de la génération d'offre ultérieure est détaillée dans la Section 5.2.2 ci-dessous.

Les descriptions de session générées par createOffer DOIVENT être immédiatement utilisables par setLocalDescription; si un système a des ressources limitées (par exemple, un nombre fini de décodeurs), createOffer DEVRAIT retourner une offre qui reflète l'état actuel du système, de sorte que setLocalDescription réussisse lorsqu'il tente d'acquérir ces ressources.

L'appel de cette méthode peut faire des choses telles que générer de nouvelles informations d'identification ICE, mais elle ne modifie pas l'état de la PeerConnection, ne déclenche pas la collecte de candidats et n'entraîne pas le démarrage ou l'arrêt du flux multimédia. Plus précisément, l'offre n'est pas appliquée et ne devient pas la description locale en attente tant que setLocalDescription n'est pas appelé.