Aller au contenu principal

5.9. Applying a Local Description (Application d'une description locale)

5.9. Applying a Local Description (Application d'une description locale)​

Les étapes suivantes sont exécutées au niveau du moteur média pour appliquer une description locale (local description). Si une erreur est renvoyée, la session DOIT être restaurée à l'état dans lequel elle se trouvait avant l'exécution de ces étapes.

D'abord, les sections « m= » sont traitées. Pour chaque section « m= », les étapes suivantes DOIVENT être exécutées ; si un paramètre est hors limites ou ne peut pas être appliqué, le traitement DOIT s'arrêter et une erreur DOIT être renvoyée.

  • Si cette section « m= » est nouvelle, commencer à recueillir des candidats pour celle-ci, comme défini dans [RFC8445], section 5.1.1, sauf si elle est définitivement regroupée en bundle (soit (1) il s'agit d'une offre et la section « m= » est marquée bundle-only, soit (2) il s'agit d'une réponse et la section « m= » est regroupée dans une autre section « m= »).

  • Ou, si les valeurs ICE ufrag et mot de passe ont changé, déclencher l'agent ICE pour démarrer un redémarrage ICE comme décrit dans [RFC8445], section 9, et commencer à recueillir de nouveaux candidats pour la section « m= ». Si cette description est une réponse, démarrer également des vérifications sur cette section média.

  • Si la valeur du champ proto de la section « m= » indique l'utilisation de RTP :

    • S'il n'y a pas de RtpTransceiver associé à cette section « m= », en trouver un et l'associer à cette section « m= » selon les étapes suivantes. Notez que cette situation ne se produit que lors de l'application d'une offre.

      • Trouver le RtpTransceiver qui correspond à cette section « m= », en utilisant la correspondance entre les transceivers et les indices de section « m= » établie lors de la création de l'offre.

      • Définir la valeur de la propriété mid de ce RtpTransceiver sur le MID de la section « m= ».

    • Si le mux RTCP est indiqué, préparer le démultiplexage de RTP et RTCP à partir du composant ICE RTP, comme spécifié dans [RFC5761], section 5.1.3.

    • Pour chaque extension d'en-tête RTP spécifiée, établir une correspondance entre l'ID d'extension et l'URI, comme décrit dans [RFC5285], section 6.

    • Si l'extension d'en-tête MID est prise en charge, préparer le démultiplexage des flux RTP destinés à cette section « m= » sur la base de l'extension d'en-tête MID, comme décrit dans [RFC8843], section 15.

    • Pour chaque format média spécifié, établir une correspondance entre le type de charge utile et le format média réel, comme décrit dans [RFC3264], section 6.1. De plus, préparer le démultiplexage des flux RTP destinés à cette section « m= » sur la base des formats média pris en charge par cette section « m= », comme décrit dans [RFC8843], section 9.2.

    • Pour chaque format média « rtx » spécifié, établir une correspondance entre le type de charge utile RTX et son type de charge utile principal associé, comme décrit dans les sections 8.6 et 8.7 de [RFC4588].

    • Si l'attribut de direction est de type « sendrecv » ou « recvonly », activer la réception et le décodage des médias.

Enfin, si cette description est de type « pranswer » ou « answer », suivre le traitement défini dans la section 5.11.