4.1.8. createOffer
4.1.8. createOffer
Il metodo createOffer genera un blob di SDP che contiene un'offerta secondo [RFC3264] con le configurazioni supportate per la sessione, incluse le descrizioni dei media aggiunti a questa PeerConnection, le opzioni codec, RTP e RTCP supportate da questa implementazione e tutti i candidati raccolti dall'agente ICE. Può essere fornito un parametro di opzioni per offrire un controllo aggiuntivo sull'offerta generata. Questo parametro di opzioni consente a un'applicazione di attivare un riavvio ICE, allo scopo di ristabilire la connettività.
Nell'offerta iniziale, l'SDP generato conterrà tutte le funzionalità desiderate per la sessione (le funzionalità che sono supportate ma non desiderate per impostazione predefinita possono essere omesse); per ogni riga SDP, la generazione dell'SDP seguirà il processo definito per generare un'offerta iniziale dalla specifica che definisce la riga SDP data. La gestione esatta della generazione dell'offerta iniziale è dettagliata nella Sezione 5.2.1 di seguito.
Nel caso in cui createOffer venga chiamato dopo l'stabilimento della sessione, createOffer genererà un'offerta per modificare la sessione corrente in base a qualsiasi modifica apportata alla sessione, ad esempio, aggiungendo o arrestando RtpTransceiver o richiedendo un riavvio ICE. Per ogni flusso esistente, la generazione di ogni riga SDP DEVE seguire il processo definito per generare un'offerta aggiornata dall'RFC che specifica la riga SDP data. Per ogni nuovo flusso, la generazione dell'SDP DEVE seguire il processo di generazione di un'offerta iniziale, come menzionato sopra. Se non sono state apportate modifiche o per le righe SDP che non sono interessate dalle modifiche richieste, l'offerta conterrà solo i parametri negoziati dall'ultimo scambio offerta/risposta. La gestione esatta della generazione di offerte successive è dettagliata nella Sezione 5.2.2 di seguito.
Le descrizioni di sessione generate da createOffer DEVONO essere immediatamente utilizzabili da setLocalDescription; se un sistema ha risorse limitate (ad es., un numero finito di decodificatori), createOffer DOVREBBE restituire un'offerta che riflette lo stato corrente del sistema, in modo che setLocalDescription abbia successo quando tenta di acquisire quelle risorse.
La chiamata di questo metodo può fare cose come generare nuove credenziali ICE, ma non modifica lo stato della PeerConnection, non attiva la raccolta di candidati e non fa sì che i media inizino o smettano di fluire. In particolare, l'offerta non viene applicata e non diventa la descrizione locale in sospeso finché non viene chiamato setLocalDescription.