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.