Passa al contenuto principale

5.8.2. Media Section Parsing (Analisi della sezione media)

5.8.2. Media Section Parsing (Analisi della sezione media)

Come le righe a livello di sessione, le righe della sezione media (Media Section) DEVONO comparire nell'ordine specifico e con la sintassi specifica definita in [RFC4566], sezione 5.

La riga m= stessa DEVE essere analizzata come descritto in [RFC4566], sezione 5.14, e i valori <media>, <port>, <proto> e <fmt> memorizzati.

Dopo la riga m=, DEVE essere applicata elaborazione specifica per le seguenti righe non-attributo:

  • Come per la riga c= a livello di sessione, la riga c= DEVE essere analizzata secondo [RFC4566], sezione 5.7, ma il suo valore non è usato.

  • La riga b=, se presente, DEVE essere analizzata come specificato in [RFC4566], sezione 5.8, e i valori bwtype e bandwidth memorizzati.

DEVE essere applicata elaborazione specifica anche per le seguenti righe attributo:

  • Se presente, una singola riga a=ice-ufrag è analizzata come specificato in [RFC8839], sezione 5.4, e il valore ufrag è memorizzato.

  • Se presente, una singola riga a=ice-pwd è analizzata come specificato in [RFC8839], sezione 5.4, e il valore della password è memorizzato.

  • Se presente, una singola riga a=ice-options è analizzata come specificato in [RFC8839], sezione 5.6, e l'insieme delle opzioni specificate è memorizzato.

  • Qualsiasi attributo a=candidate DEVE essere analizzato come specificato in [RFC8839], sezione 5.1, e i suoi valori memorizzati.

  • Qualsiasi attributo a=remote-candidates DEVE essere analizzato come specificato in [RFC8839], sezione 5.2, ma i suoi valori sono ignorati.

  • Se presente, un singolo attributo a=end-of-candidates DEVE essere analizzato come specificato in [RFC8840], sezione 8.1, e la sua presenza o assenza è segnata e memorizzata.

  • Qualsiasi riga a=fingerprint è analizzata come specificato in [RFC8122], sezione 5, e l'insieme dei valori di impronta e algoritmo è memorizzato.

Se il valore <proto> di m= indica l'uso di RTP, come descritto nella sezione 5.1.2, le seguenti righe attributo DEVONO essere elaborate:

  • Il valore <fmt> di m= DEVE essere analizzato come specificato in [RFC4566], sezione 5.14, e i singoli valori memorizzati.

  • Qualsiasi riga a=rtpmap o a=fmtp DEVE essere analizzata come specificato in [RFC4566], sezione 6, e i suoi valori memorizzati.

  • Se presente, una singola riga a=ptime DEVE essere analizzata come descritto in [RFC4566], sezione 6, e il suo valore memorizzato.

  • Se presente, una singola riga a=maxptime DEVE essere analizzata come descritto in [RFC4566], sezione 6, e il suo valore memorizzato.

  • Se presente, una singola riga attributo di direzione (ad es. a=sendrecv) DEVE essere analizzata come descritto in [RFC4566], sezione 6, e il suo valore memorizzato.

  • Qualsiasi attributo a=ssrc DEVE essere analizzato come specificato in [RFC5576], sezione 4.1, e i suoi valori memorizzati.

  • Qualsiasi attributo a=extmap DEVE essere analizzato come specificato in [RFC5285], sezione 5, e i suoi valori memorizzati.

  • Qualsiasi attributo a=rtcp-fb DEVE essere analizzato come specificato in [RFC4585], sezione 4.2, e i suoi valori memorizzati.

  • Se presente, un singolo attributo a=rtcp-mux DEVE essere analizzato come specificato in [RFC5761], sezione 5.1.3, e la sua presenza o assenza è segnata e memorizzata.

  • Se presente, un singolo attributo a=rtcp-mux-only DEVE essere analizzato come specificato in [RFC8858], sezione 3, e la sua presenza o assenza è segnata e memorizzata.

  • Se presente, un singolo attributo a=rtcp-rsize DEVE essere analizzato come specificato in [RFC5506], sezione 5, e la sua presenza o assenza è segnata e memorizzata.

  • Se presente, un singolo attributo a=rtcp DEVE essere analizzato come specificato in [RFC3605], sezione 2.1, ma il suo valore è ignorato, poiché questa informazione è superflua quando si usa ICE.

  • Se presenti, gli attributi a=msid DEVONO essere analizzati come specificato in [RFC8830], sezione 3.2, e i loro valori memorizzati, ignorando qualsiasi campo appdata. Se non sono presenti attributi a=msid, viene generato un valore msid-id casuale per un MediaStream default della sessione, se non già presente, e questo valore è memorizzato.

  • Qualsiasi attributo a=imageattr DEVE essere analizzato come specificato in [RFC6236], sezione 3, e i suoi valori memorizzati.

  • Qualsiasi riga a=rid DEVE essere analizzata come specificato in [RFC8851], sezione 10, e i suoi valori memorizzati.

  • Se presente, una singola riga a=simulcast DEVE essere analizzata come specificato in [RFC8853], e i suoi valori memorizzati.

Altrimenti, se il valore <proto> di m= indica l'uso di SCTP, le seguenti righe attributo DEVONO essere elaborate:

  • Il valore <fmt> di m= DEVE essere analizzato come specificato in [RFC8841], sezione 4.3, e il valore del protocollo applicativo memorizzato.

  • Un attributo a=sctp-port DEVE essere presente, e DEVE essere analizzato come specificato in [RFC8841], sezione 5.2, e il valore memorizzato.

  • Se presente, un singolo attributo a=max-message-size DEVE essere analizzato come specificato in [RFC8841], sezione 6, e il valore memorizzato. Altrimenti usare il valore predefinito specificato.

Altri attributi non rilevanti per JSEP possono essere presenti, e le implementazioni DOVREBBERO elaborare quelli che riconoscono. Come richiesto da [RFC4566], sezione 5.13, le righe attributo sconosciute DEVONO essere ignorate.