Aller au contenu principal

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.