Passa al contenuto principale

5.9. Applying a Local Description (Applicazione di una descrizione locale)

5.9. Applying a Local Description (Applicazione di una descrizione locale)

I seguenti passaggi sono eseguiti a livello del motore multimediale per applicare una descrizione locale (local description). Se viene restituito un errore, la sessione DEVE essere ripristinata allo stato precedente l'esecuzione di questi passaggi.

Per prima cosa vengono elaborate le sezioni "m=". Per ogni sezione "m=", DEVONO essere eseguiti i passaggi seguenti; se un parametro è fuori intervallo o non può essere applicato, l'elaborazione DEVE arrestarsi e DEVE essere restituito un errore.

  • Se questa sezione "m=" è nuova, iniziare a raccogliere candidati per essa, come definito in [RFC8445], sezione 5.1.1, a meno che non sia definitivamente in bundle (sia (1) questa è un'offerta e la sezione "m=" è marcata bundle-only, sia (2) questa è una risposta e la sezione "m=" è aggregata in un'altra sezione "m=").

  • Oppure, se i valori ICE ufrag e password sono cambiati, attivare l'agente ICE per avviare un riavvio ICE come descritto in [RFC8445], sezione 9, e iniziare a raccogliere nuovi candidati per la sezione "m=". Se questa descrizione è una risposta, avviare anche i controlli su quella sezione multimediale.

  • Se il valore del campo proto della sezione "m=" indica l'uso di RTP:

    • Se non è associato alcun RtpTransceiver a questa sezione "m=", trovarne uno e associarlo a questa sezione "m=" secondo i passaggi seguenti. Questa situazione si verifica solo quando si applica un'offerta.

      • Trovare il RtpTransceiver corrispondente a questa sezione "m=", usando la mappatura tra transceiver e indici di sezione "m=" stabilita durante la creazione dell'offerta.

      • Impostare il valore della proprietà mid di questo RtpTransceiver sul MID della sezione "m=".

    • Se è indicato il mux RTCP, preparare la demultiplazione di RTP e RTCP dal componente ICE RTP, come specificato in [RFC5761], sezione 5.1.3.

    • Per ogni estensione di intestazione RTP specificata, stabilire una mappatura tra ID estensione e URI, come descritto in [RFC5285], sezione 6.

    • Se l'estensione di intestazione MID è supportata, preparare la demultiplazione dei flussi RTP destinati a questa sezione "m=" in base all'estensione di intestazione MID, come descritto in [RFC8843], sezione 15.

    • Per ogni formato multimediale specificato, stabilire una mappatura tra tipo di payload e formato multimediale effettivo, come descritto in [RFC3264], sezione 6.1. Inoltre, preparare la demultiplazione dei flussi RTP destinati a questa sezione "m=" in base ai formati multimediali supportati da questa sezione "m=", come descritto in [RFC8843], sezione 9.2.

    • Per ogni formato multimediale "rtx" specificato, stabilire una mappatura tra il tipo di payload RTX e il tipo di payload primario associato, come descritto nelle sezioni 8.6 e 8.7 di [RFC4588].

    • Se l'attributo di direzione è di tipo "sendrecv" o "recvonly", abilitare la ricezione e la decodifica dei media.

Infine, se questa descrizione è di tipo "pranswer" o "answer", seguire l'elaborazione definita nella sezione 5.11.