14. Modifying an Existing Session
14 Modification d'une session existante (Modifying an Existing Session)
Pour modifier une session existante, le UAC crée une nouvelle requête INVITE (re-INVITE) dans le dialogue. Le re-INVITE contient une nouvelle description de session et propose des modifications aux paramètres de médias (changement de codec, ajout d'un nouveau flux média, etc.).
Ce re-INVITE constitue une nouvelle transaction INVITE et réutilise le Call-ID, le From-tag et le To-tag du dialogue existant. Le CSeq doit être une nouvelle valeur.
Le traitement du re-INVITE est similaire à celui de l'INVITE initial, à ceci près que la session en cours est en cours d'exécution. Lorsqu'un UAS reçoit un re-INVITE, il décide de mettre à jour la session existante avec la nouvelle offre ou de la rejeter.
Lorsque le UAC reçoit une réponse 2xx au re-INVITE, il DOIT envoyer un ACK. L'échange offre/réponse suit les mêmes règles que l'INVITE initial.
En cas de situation de conflit (glare), c'est-à-dire lorsque les deux UA tentent simultanément de modifier la session, le conflit est résolu selon les procédures de la section 14.2. En général, le UAS rejette le re-INVITE avec une réponse 491 (Request Pending), et le UAC le réessaie après un délai aléatoire.
Pour mettre fin à la session, la requête BYE est utilisée (voir section 15). BYE est envoyé dans le dialogue et termine la session.