Appendix D: Minimal RTSP implementation (Implementazione RTSP minima)
Appendix D: Minimal RTSP implementation (Implementazione RTSP minima)
D.1 Client
Un'implementazione client DEVE essere in grado di:
- Generare le richieste SETUP, TEARDOWN e una tra PLAY (client di riproduzione minimo) o RECORD (client di registrazione minimo). Se RECORD è implementato, ANNOUNCE DEVE essere implementato.
- Includere negli header delle richieste: CSeq, Connection, Session, Transport. Se ANNOUNCE è implementato, poter includere Content-Language, Content-Encoding, Content-Length, Content-Type.
- Analizzare e comprendere nelle risposte: CSeq, Connection, Session, Transport, Content-Language, Content-Encoding, Content-Length, Content-Type. Se RECORD è implementato, comprendere Location. Le implementazioni conformi a RTP dovrebbero implementare anche RTP-Info.
- Comprendere la classe di ogni codice di errore ricevuto e, se presente un utente finale, notificare i codici delle classi 4xx e 5xx ; il requisito può essere attenuato se l'utente non lo desidera.
- Prevedere e rispondere a richieste asincrone dal server, come ANNOUNCE. Non significa necessariamente implementare ANNOUNCE, ma ogni richiesta ricevuta dal server DEVE ricevere risposta positiva o negativa.
Fortemente raccomandato: RTP/AVP/UDP, User-Agent, SDP come appendice C, formati di inizializzazione da stdin o riga di comando come applicazione di supporto. Per applicazioni diverse dalla visione iniziale, le raccomandazioni sono solo linee guida.
D.1.1 Basic Playback
Per la riproduzione on demand, il client DEVE inoltre: generare PAUSE ; implementare REDIRECT e l'header Location.
D.1.2 Authentication-enabled
Per accedere a presentazioni su server che richiedono autenticazione, il client DEVE inoltre: riconoscere 401 ; analizzare e includere WWW-Authenticate ; implementare Basic Authentication e Digest Authentication.
D.2 Server
Un'implementazione server minimale DEVE:
- Implementare SETUP, TEARDOWN, OPTIONS e una tra PLAY (server di riproduzione minimo) o RECORD (server di registrazione minimo). Se RECORD è implementato, ANNOUNCE dovrebbe esserlo.
- Includere nelle risposte: Connection, Content-Length, Content-Type, Content-Language, Content-Encoding, Transport, Public ; Location se RECORD ; RTP-Info se conforme RTP.
- Analizzare e rispondere appropriatamente a Connection, Session, Transport, Require nelle richieste.
Raccomandato: RTP/AVP/UDP, header Server, DESCRIBE, generazione SDP (appendice C).
D.2.1 Basic Playback
Per stream on demand, il server DEVE inoltre: riconoscere Range e restituire errore se lo seek non è supportato ; implementare PAUSE. Fortemente raccomandato: Range con unità NPT (SMPTE raccomandato), lunghezza della presentazione nell'inizializzazione, mappature da timestamp specifici dei dati a NPT (con RTP, rtptime in RTP-Info).
D.2.2 Authentication-enabled
Il server DEVE inoltre: generare 401 quando serve autenticazione ; analizzare e includere WWW-Authenticate ; implementare Basic Authentication e Digest Authentication.