4.1.10. SessionDescriptionType
4.1.10. SessionDescriptionType
Gli oggetti di descrizione della sessione (RTCSessionDescription) possono essere di tipo "offer", "pranswer", "answer" o "rollback". Questi tipi forniscono informazioni su come deve essere analizzato il parametro di descrizione e come deve essere modificato lo stato dei media.
"offer" indica che una descrizione DEVE essere analizzata come un'offerta; tale descrizione può includere molte possibili configurazioni multimediali. Una descrizione utilizzata come "offer" può essere applicata in qualsiasi momento quando la PeerConnection si trova in uno stato "stable" o applicata come aggiornamento a un'offerta precedentemente fornita ma senza risposta.
"pranswer" indica che una descrizione DEVE essere analizzata come una risposta, ma non una risposta finale, e quindi NON DEVE comportare il rilascio delle risorse allocate. Può comportare l'inizio della trasmissione multimediale, se la risposta non specifica una direzione multimediale inattiva. Una descrizione utilizzata come "pranswer" può essere applicata come risposta a un'offerta o come aggiornamento a una "pranswer" precedentemente inviata.
"answer" indica che una descrizione DEVE essere analizzata come una risposta, lo scambio offerta/risposta DEVE essere considerato completo e tutte le risorse (decodificatori, candidati) che non sono più necessarie DOVREBBERO essere rilasciate. Una descrizione utilizzata come "answer" può essere applicata come risposta a un'offerta o come aggiornamento a una "pranswer" precedentemente inviata.
L'unica differenza tra una risposta provvisoria e una risposta finale è che la risposta finale comporta il rilascio di tutte le risorse inutilizzate che sono state allocate come risultato dell'offerta. In quanto tale, l'applicazione può usare una certa discrezione sul fatto che una risposta debba essere applicata come provvisoria o finale e può cambiare il tipo della descrizione della sessione secondo necessità. Ad esempio, in uno scenario di biforcazione seriale, un'applicazione può ricevere più risposte "finali", una da ciascun endpoint remoto. L'applicazione potrebbe scegliere di accettare le risposte iniziali come risposte provvisorie e applicare una risposta come finale solo quando ne riceve una che soddisfa i suoi criteri (ad es., un utente dal vivo invece della segreteria telefonica).
"rollback" è un tipo speciale di descrizione della sessione che indica che la macchina a stati DEVE essere ripristinata allo stato "stable" precedente, come descritto nella Sezione 4.1.10.2. Il contenuto DEVE essere vuoto.