Appendix A: RTSP Protocol State Machines (Machines à états du protocole RTSP)
Appendix A: RTSP Protocol State Machines (Machines à états du protocole RTSP)
Les machines à états client et serveur RTSP décrivent le comportement du protocole de l'initialisation à la fin de session RTSP.
L'état est défini par objet. Un objet est identifié de façon unique par l'URL du flux et l'identifiant de session RTSP. Toute requête/réponse utilisant des URL agrégées désignant des présentations RTSP multi-flux affecte l'état de chaque flux. Par exemple, si la présentation /movie contient /movie/audio et /movie/video, la commande suivante affecte les deux états.
PLAY rtsp://foo.com/movie RTSP/1.0 CSeq: 559 Session: 12345678
Cet exemple n'implique pas de représentation standard des flux dans les URL ni de lien avec le système de fichiers. Voir la section 3.2.
Les requêtes OPTIONS, ANNOUNCE, DESCRIBE, GET_PARAMETER, SET_PARAMETER n'affectent pas l'état client ou serveur et ne figurent donc pas dans les tableaux.
A.1 Client State Machine
Le client peut être dans les états suivants :
Init : SETUP envoyé, attente de réponse.
Ready : réponse SETUP reçue, ou réponse PAUSE reçue en état Playing.
Playing : réponse PLAY reçue.
Recording : réponse RECORD reçue.
En général, le client change d'état à la réception des réponses. Certaines requêtes (ex. PAUSE) prennent effet plus tard ; l'état suit. Sans SETUP explicite (ex. via groupe multicast), l'état commence à Ready ; seuls Ready et Playing existent. Passage de Playing/Recording à Ready en fin de plage demandée.
La colonne « next state » : état après réponse 2xx. Code 3xx → Init ; 4xx → pas de changement. Les messages non listés pour un état NE DOIVENT PAS être émis, sauf ceux sans effet d'état ci-dessus. REDIRECT du serveur équivaut à une redirection 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
États serveur :
Init : aucun SETUP valide reçu.
Ready : dernier SETUP réussi, réponse envoyée, ou après lecture, dernier PAUSE réussi.
Playing : dernier PLAY réussi, données en cours d'envoi.
Recording : enregistrement en cours.
En Playing ou Recording en unicast, le serveur PEUT revenir à Init et fermer la session sans signes de vie du client pendant l'intervalle défini (défaut une minute). Délai possible dans l'en-tête Session (12.37). En Ready, PEUT revenir à Init après plus d'une minute sans requête RTSP. PAUSE peut être différé. Fin de plage : passage de Playing/Recording à Ready.
REDIRECT : immédiat sauf si Range indique le moment.
Sans SETUP explicite : départ à Ready, seulement Ready et Playing.
« next state » après envoi 2xx ; 3xx → Init ; 4xx inchangé.
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