Appendix A: RTSP Protocol State Machines (Macchine a stati del protocollo RTSP)
Appendix A: RTSP Protocol State Machines (Macchine a stati del protocollo RTSP)
Le macchine a stati client e server RTSP descrivono il comportamento del protocollo dall'inizializzazione alla terminazione della sessione RTSP.
Lo stato è definito per oggetto. Un oggetto è identificato in modo univoco dall'URL del flusso e dall'identificatore di sessione RTSP. Ogni richiesta/risposta con URL aggregati che denotano presentazioni RTSP multi-flusso influisce sugli stati di tutti i flussi. Se la presentazione /movie contiene /movie/audio e /movie/video, il comando seguente influisce su entrambi.
PLAY rtsp://foo.com/movie RTSP/1.0 CSeq: 559 Session: 12345678
L'esempio non implica un modo standard di rappresentare i flussi negli URL né un legame col filesystem. Vedere la sezione 3.2.
Le richieste OPTIONS, ANNOUNCE, DESCRIBE, GET_PARAMETER, SET_PARAMETER non influenzano lo stato client o server e non sono elencate nelle tabelle.
A.1 Client State Machine
Stati possibili del client:
Init: SETUP inviato, in attesa di risposta.
Ready: ricevuta risposta SETUP, o risposta PAUSE in stato Playing.
Playing: ricevuta risposta PLAY.
Recording: ricevuta risposta RECORD.
In genere il client cambia stato alla ricezione delle risposte. Alcune richieste (es. PAUSE) hanno effetto in un istante futuro. Senza SETUP esplicito (es. tramite gruppo multicast), lo stato inizia in Ready; esistono solo Ready e Playing. Alla fine dell'intervallo richiesto si passa da Playing/Recording a Ready.
La colonna «next state» indica lo stato dopo risposta 2xx. Codice 3xx → Init; 4xx → nessun cambiamento. I messaggi non elencati per uno stato NON DEVONO essere inviati dal client, salvo quelli che non influenzano lo stato sopra elencati. REDIRECT dal server equivale a stato di reindirizzamento 3xx.
state message sent next state after response Init SETUP Ready TEARDOWN Init Ready PLAY Playing RECORD Recording TEARDOWN Init SETUP Ready Playing PAUSE Ready TEARDOWN Init PLAY Playing SETUP Playing (changed transport) Recording PAUSE Ready TEARDOWN Init RECORD Recording SETUP Recording (changed transport)
A.2 Server State Machine
Stati del server:
Init: stato iniziale, nessun SETUP valido ricevuto.
Ready: ultimo SETUP riuscito, risposta inviata, o dopo la riproduzione ultimo PAUSE riuscito.
Playing: ultimo PLAY riuscito, risposta inviata, dati in invio.
Recording: il server sta registrando dati multimediali.
In Playing o Recording in modalità unicast, il server PUÒ tornare a Init e chiudere la sessione RTSP se non riceve informazioni di «benessere» (rapporti RTCP o comandi RTSP) per un intervallo definito (predefinito un minuto). Altro timeout nella risposta Session (12.37). In Ready PUÒ tornare a Init senza richieste RTSP per più di un minuto. PAUSE può essere efficace in un istante futuro. Alla fine dell'intervallo richiesto dal client, da Playing o Recording a Ready.
REDIRECT: effetto immediato salvo Range che specifichi quando è efficace.
Senza SETUP esplicito: stato iniziale Ready, solo Ready e Playing.
«next state» dopo risposta 2xx inviata; 3xx → Init; 4xx invariato.
state message received next state Init SETUP Ready TEARDOWN Init Ready PLAY Playing SETUP Ready TEARDOWN Init RECORD Recording Playing PLAY Playing PAUSE Ready TEARDOWN Init SETUP Playing Recording RECORD Recording PAUSE Ready TEARDOWN Init SETUP Recording