Groupe de travail Réseau	J. Polk, Cisco Systems	
Request for Comments : 4411	février 2006	
Catégorie : En cours de normalisation	Traduction Claude Brière de L'Isle	

Extension de l'en-tête Raison du protocole d'initalisation de session (SIP) pour les événements de préemption

Statut du présent mémoire
Le présent document spécifie un protocole de normalisation Internet pour la communauté Internet, et appelle à des discussions et suggestions en vue de son amélioration. Prière de s'en rapporter à l’édition en cours des "normes officielles du protocole Internet" (STD  1) pour connaître l’état de la normalisation et le statut du présent protocole. La distribution du présent mémoire n’est soumise à aucune restriction.

Déclaration de copyright
Copyright (C) The Internet Society (2006)

Résumé
Le présent document propose une extension d'enregistrement par l'IANA à l'en-tête Raison du protocole d'initialisation de session (SIP, Session Initiation Protocol ) à inclure dans une demande de méthode BYE par suite d'un événement de préemption de session, soit chez un agent d’utilisateur (UA, user agent) soit quelque part dans le réseau impliquant un protocole fondé sur la réservation comme le protocole de réservation de ressource (RSVP, Resource Reservation Protocol) ou dans les nouvelles étapes de signalisation (NSIS, Next Steps in Signaling). Le présent document ne tente pas de traiter des échecs de routeurs sur le chemin du paquet ; il vise plutôt une suppression délibérée d'un flux entre les UA, et informe le ou les UA terminés avec une indication de ce qui s'est passé.
Table des matières
1. Introduction	2
1.1 Conventions utilisée dans le document	2
2. Événements de préemption d'accès	3
2.1 Effets de la préemption chez l'agent d'utilisateur	4
2.2 Exigences de l'en-tête Raison pour les événements de préemption d'accès	4
3. Événement de préemption du réseau	4
3.1 Exigences de l'en-tête Raison pour les événements de préemption du réseau	6
4. Inclusion d'une Infrastructure hybride	6
4.1 Exigences d'une infrastructure hybride	6
5. Codes de cause et sémantique de l'en-tête Raison de préemption	7
5.1 Code de raison d'événement de préemption d'accès	7
5.2 Code de raison d'événement de préemption de réseau	8
5.3 Code générique de raison d'événement de préemption	9
5.4 Code de raison d'événement de préemption non IP	9
6. Considérations sur la sécurité	10
7. Considérations relatives à l'IANA	10
7.1 Registre d'espace de noms "Preemption"	10
7.2 Registre IANA de texte de raison par défaut pour l'en-tête Raison SIP	11
8. Contributions	11
9. Remerciements	11
10. Références	12
10.1 Références normatives	12
10.2 Références pour information	12
Adresse de l'auteur	12
Déclaration complète de droits de reproduction	12

 	1.	Introduction

Avec l'introduction de l'en-tête SIP Priorité de ressource (R-P, Resource-Priority) [RFC4412], s’est fait jour la possibilité que des sessions soient supprimées pour des raisons de ressources (rares) ce qui signifie qu'il n'y a pas assez de ressources pour qu'une session particulière se poursuive. Certains domaines vont mettre en œuvre ce mécanisme où les ressources peuvent devenir contraintes soit chez l'agent d'utilisateur (UA) soit à des interfaces de routeur encombrées où des sessions plus importantes doivent être achevées au dépens des sessions moins importantes. Quelles sessions sont plus ou moins importantes que d'autres ne sera pas discuté ici. Ce qui est proposé ici est une extension à SIP [RFC3261] pour synchroniser les éléments SIP quant à la raison pour laquelle un événement de préemption s'est produit et quel type d'événement de préemption s'est produit, tel que vu par l'élément qui a effectué la préemption d'une session.

L'en-tête SIP Raison est un mécanisme de retour de couche application pour synchroniser les événements d'éléments SIP ; l'événement particulier expliqué ici traite de la préemption d'une session. La Recommandation UIT-T Q.850 [Q.850] donne une indication pour la préemption (cause = 8) et pour la préemption "circuit réservé pour réutilisation" (cause = 9). La cause = 9 de Q.850 ne s'applique pas à IP, car IP n'a pas de concept de circuits. Certains domaines souhaitent différencier les raisons IP appropriées pour la préemption de sessions et pour indiquer topologiquement où l'événement de préemption s'est produit. Aucun autre moyen n'existe aujourd'hui pour donner un retour sur la raison pour laquelle une session a été supprimée sur la base de la préemption.

Si une session est terminée pour une raison spécifique qui peut (ou devrait) être partagée avec les serveurs et UA SIP parties à un dialogue, l'en-tête Raison [RFC3326] a été créé pour être inclus dans la demande BYE. Ce n'est pas la seule méthode pour ce nouvel en-tête ; la [RFC3326] discute aussi de l'utilisation de la méthode CANCEL.

Le présent document définit deux cas d'utilisation dans lesquels de nouvelles valeurs de raison de préemption sont nécessaires :

Événement de préemption d'accès - c'est quand un UA reçoit un nouveau message de demande de session SIP avec une valeur valide de R-P qui est supérieure à celle associée à la session actuellement active chez l'UA. L'UA doit arrêter la session existante afin d'accepter la nouvelle (conformément à la politique locale de certains domaines).

Événement de préemption de réseau - c'est quand un élément de réseau - comme un routeur - atteint une capacité sur une certaine interface et a la capacité de choisir quelles sessions vont rester actives quand une nouvelle session/réservation est signalée sous les paramètres mentionnés dans les préconditions SIP selon la [RFC3312] qui autrement surchargeraient cette interface (affectant peut-être de façon contraire toutes les sessions). Dans ce cas, le routeur doit terminer une ou plusieurs réservations de moindre priorité afin de permettre à cette réservation de priorité supérieure d'accéder à la quantité de bande passante demandée (conformément à la politique locale de certains domaines).

Le présent document couvre la sémantique de ces deux cas et demande à l'IANA l'enregistrement de la nouvelle valeur de protocole "Preemption" pour le champ d'en-tête Raison, avec quatre valeurs de cause pour les conditions de préemption ci-dessus. De plus, le présent document crée un nouveau registre de l'IANA pour les chaînes de texte de raison qui ne sont actuellement pas définies dans les codes de réponse existants de SIP ou les codes de cause Q.850. Ce nouveau registre sera utile pour les futurs protocoles utilisés par l'en-tête SIP Raison.

Le présent document mentionne une RFC SIP existante [RFC3312] comme point de départ des événements de préemption de réseau. La RFC 3312 établit des règles concernant l'interaction de SIP en utilisant un protocole de réservation pour les préconditions de qualité de service, en utilisant RSVP comme exemple de protocole. Le présent effort n'empêche pas d'autres préconditions ou de futurs protocoles de devenir un moyen de préconditions. NSIS est un nouveau protocole de réservation qui spécifie une opération de préemption similaire au message RSVP ResvErr impliquant le message NSIS NOTIFY dans la [RFC5974] avec un code d'erreur temporaire de 0x04000005 (Ressources préemptées).

Noter que SIP lui-même ne cause pas de début ou de fin de signalisation de réservation RSVP ou NSIS. Cette opération fait partie d'une API séparée au sein de chaque UA.

 	1.1	Conventions utilisée dans le document
Les mots clés "DOIT", "NE DOIT PAS", "EXIGE", "DEVRA", "NE DEVRA PAS", "DEVRAIT", "NE DEVRAIT PAS", "RECOMMANDE", "PEUT", et "FACULTATIF" dans ce document sont à interpréter comme décrit dans le BCP 14, [RFC2119], et indiquent les niveaux d'exigence pour les mises en œuvre conformes.

 	2.	Événements de préemption d'accès

Comme mentionné précédemment, les événements de préemption d'accès (ACE, Access Preemption Event) se produisent chez l'agent d'utilisateur. Il n'importe pas, dans une session en envoi individuel ou en diffusion groupée, que cela arrive chez un UA particulier (l'UAC ou l'UAS d'une session). Si la politique locale dicte des règles dans un domaine particulier concernant la fonction d'un UA, il doit y avoir un moyen pour que cet UA (pas l'utilisateur) informe le ou les autres UA de la raison pour laquelle une session a juste été supprimée prématurément. Le mécanisme approprié est la méthode BYE. L'UA utilisateur de l'autre extrémité distante ne va pas comprendre pourquoi cette session "s'est juste terminée" sans qu'il y ait un moyen de l'informer de ce qui s'est produit (si l'événement était délibéré). Par ce type d'indication à l'UA préempté, il peut l'indiquer à l'utilisateur de cet appareil de façon appropriée.

Les règles au sein d'un domaine entourant l'UA à informer peuvent être différentes des règles pour informer l'utilisateur.  La politique locale devrait déterminer si l'utilisateur devrait être informé de la raison spécifique. Cette indication dans SIP va fournir à l'UA un moyen de réagir d'une façon déterminée localement, si c'est approprié (exécuter une certaine tonalité ou une séquence de tonalités, pointer sur un URI d'annonce spécial, causer l'affichage visuel par l'UA de faire quelque chose , etc.).

La Figure 1 illustre le scénario. L'UA1 invite l'UA2 à une session avec le niveau de priorité de ressource de 3 (les niveaux 1 et 2 sont supérieurs dans ce domaine, et l'élément espace de noms n'est pas nécessaire pour cette discussion).

      UA1                      UA2                       UA3
       |                               |                               |
       |  INVITE (R-P:3)   |                               |
       |--------------------->|                                |
       |         200 OK          |                               |
       |<----------------------|                               |
       |           ACK            |                               |
       |---------------------->|                               |
       |            RTP             |                              |
       |<============>|                               |
       |                                |   INVITE (R-P:2) |
       |                                |<---------------------|
       |  BYE (Reason : ?)  |                              |
       |<-----------------------|                              |
       |                                 |         200 OK        |
       |                                 |--------------------->|
       |         200 OK           |                              |
       |----------------------->|                              |
       |                                 |          ACK            |
       |                                 |<---------------------|
       |                                 |          RTP             |
       |                                 |<===========>|
       |                                 |                              |

Figure 1 : Préemption d'accès avec raison obscure

Après l'établissement de la session entre UA1 et UA2, UA3 invite UA2 à une nouvelle session avec un R-P de 2 (priorité supérieure à celle de la session en cours entre UA1 et UA2). La politique locale au sein de ce domaine dit que UA2 doit préempter tous les appels existants de priorité inférieure afin d'accepter un appel de priorité supérieure.

Quelle valeur de raison pourrait être insérée ci-dessus pour signifier "préemption" chez un UA ?  Il y a un choix entre plusieurs solutions : 410 "Parti", 480 "Temporairement indisponible", 486 "Occupé", et 503 "Service indisponible". L'utilisation de l'un de ces codes ici est discutable parce que la session est déjà établie. C'est plus compliqué si on doit faire une différence dans la valeur de raison entre un événement de préemption d'accès et un de réseau (ce qui est ici une exigence). Les limitations de la Recommandation UIT-T Q.850 [Q.850] ont été mentionnées précédemment dans le présent document.

Il devrait être possible de configurer les UA qui reçoivent une indication de préemption à indiquer à l'utilisateur qu'aucun type particulier de préemption ne s'est produit. Il y a des domaines qui pourraient préférer que leurs utilisateurs restent dans l'ignorance des spécificités du comportement du réseau. Ceci ne devrait pas toujours empêcher une indication de préemption connue d'être envoyée dans un BYE d'un UA.

 	2.1	Effets de la préemption chez l'agent d'utilisateur
Si deux UA sont dans une session et qu'un UA doit préempter cette session pour accepter une autre session, un message de méthode BYE est le mécanisme approprié pour effectuer cette tâche. Cependant, en allant un peu plus loin, si un UA est le point commun d'une conférence ad hoc à trois (ou plus) et doit préempter toutes les sessions dans cette conférence à cause de la réception d'une demande de session de priorité supérieure (que cet UA doit accepter) un message BYE doit être envoyé à tous les UA de cette conférence ad hoc.

 	2.2	Exigences de l'en-tête Raison pour les événements de préemption d'accès
Voici une liste d'exigences pour ajouter une valeur de raison appropriée pour un APE comme décrit ci-dessus et montré à la Figure 1 :

APE_REQ#1 - crée un moyen par lequel un UA peut informer un autre UA (au sein de la même session active) que la session active entre les deux appareils est délibérément préemptée à un UA pour une demande de session de priorité supérieure provenant d'un autre UA.

APE_REQ#2 - crée un moyen par lequel tous les éléments SIP pertinents peuvent être informés de cet APE à une session spécifique. Par exemple, peut-être que les serveurs SIP qui ont un en-tête Record-Route incorporé dans l'établissement de cette session doivent être informés de cette occurrence.

APE_REQ#3 - crée un moyen d'informer tous les participants à une conférence ad hoc que l'UA principal (le mixeur) a préempté la conférence en acceptant une demande de session de priorité supérieure.

APE_REQ#4 - crée une indication séparée pour l'événement de préemption d'accès de celle utilisée pour un événement de préemption de réseau (décrite dans la section suivante) dans le message BYE de session.

APE_REQ#5 - crée un moyen pour générer une indication spécifique d'un événement de préemption chez l'agent d'utilisateur pour informer toutes les entités SIP pertinentes, tout en ayant la capacité de généraliser cette indication (sur la base de la politique locale) à l'UA receveur de telle sorte que cet UA ne puisse pas afficher plus d'informations que ce que le domaine veut que l'utilisateur voit.

 	3.	Événement de préemption du réseau

Les événements de préemption du réseau (NPE, Network Preemption Event) sont des instances dans lesquelles un routeur intermédiaire entre les agents d'utilisateur SIP préempte une ou plusieurs sessions à une de ses interfaces pour placer une session de priorité supérieure à travers cette interface. Au sein de RSVP, il existe un moyen d'exécuter cette fonctionnalité selon la [RFC2205] : les messages ResvErr, qui voyagent vers l'aval jusqu' aux receveurs appropriés. Le message ResvErr a la capacité de porter un code indiquant pourquoi une réservation est supprimée. Le présent document propose qu'un message SIP soit généré pour synchroniser tous les éléments SIP pertinents à cet événement de préemption, incluant l'UA vers l'amont. Créer une autre valeur de raison qui décrive qu'un élément de réseau a préempté la session est nécessaire dans certains domaines.

Les Figures 2 et 3 illustrent un scénario de préemption de réseau avec RSVP. NSIS, qui n'est pas montré dans ces exemples, peut être imaginé à partir de la [RFC5974] avec un message d'erreur NOTIFY indiquant qu'une réservation a été préemptée avec la spécification d'erreur transitoire ERROR_SPEC 0x04000005. Le comportement SIP sera identique en utilisant l'un ou l'autre des protocoles de réservation.

UA1 invite UA2 à une session avec le niveau de priorité de ressource de 3 (les niveaux 1 et 2 sont supérieurs dans ce domaine) et c'est accepté. Cette signalisation SIP traduisait la valeur de priorité de ressource en un niveau de priorité RSVP approprié pour ce flux. La liaison entre Routeur 1 et Routeur 2 est devenue saturée avec cette réservation de session entre UA1 et UA2 (dans cet exemple).

             UA1                                  UA2
                \                                /
                 \                              /
                  +--------+          +--------+
                  |        |          |        |
                  | RTR1   |          |  RTR2  |
                  |       Int7-------Int5      |
                  |        |          |        |
                  +--------+          +--------+
                 /                              \
                /                                \
             UA3                                  UA4

Figure 2. Diagramme réseau, scénario A

Après l'établissement de la session entre UA1 et UA2, UA3 invite UA4 à une nouvelle session avec un niveau de priorité de ressource de 2 (priorité supérieure à celle de la réservation en cours entre UA1 et UA2). Là encore, la valeur de priorité au sein de l'en-tête "Resource-Priority" de cet INVITE est traduite en une priorité RSVP appropriée (qui est aussi plus haute en priorité relative que le flux de session/RSVP UA1_UA2). Quand cette seconde session, de priorité plus élevée, est signalée, un message Path vient de UA3 à UA4, résultant en le message RESV qui revient de l'UA4 à l'UA3. Parce que cette liaison entre les deux routeurs est en capacité (à Int7 dans la Figure 5), Routeur 1 va (dans cet exemple) prendre la décision, ou va communiquer avec une autre entité réseau qui va prendre la décision, de préempter la bande passante de priorité inférieure pour assurer le bon achèvement de cette réservation de session de priorité supérieure. Un message ResvErr est envoyé à UA2. Le résultat est que UA2 va savoir qu'il y a eu un événement de préemption dans un routeur (parce que le message ResvErr a un code d'erreur qui déclare "préemption"). À ce point, UA1 ne va rien savoir de cette préemption. Si il y a des mandataires SIP entre les UA 1 et 2 (qui ont peut-être inséré un en-tête Record-Route) chacun va aussi devoir être informé de la raison pour laquelle cette réservation a été supprimée.

La Figure 3 montre le flux d'appels avec l'inclusion du Routeur 2 de la Figure 2 à la couche RSVP qui envoie le message ResvErr. Un flux d'appels complet incluant tous les UA et routeurs n'est pas montré ici pour des raisons de complexité du diagramme. On n'a pas non plus inclus la signalisation complète entre UA3 et UA4.

UA1                                                   Routeur2                                                          UA2
    |                                                             |                                                                    |
    |         INVITE avec préconditions de qualité de service (R-P:3)                              |
    |------------------------------------------------------------------------------------------------>|
    |  ***************************************************************  |
    |  *  - Préconditions de QS établies UA1-UA2 * La signalisation SIP continue...*  |
    |  ***************************************************************  |
    |         200 OK                                                                                                            |
    |<------------------------------------------------------------------------------------------------|
    |          ACK                                                                                                                |
    |------------------------------------------------------------------------------------------------>|
    |          RTP                                                                                                                 |
    |<========================================================>|
    |    *************************************************************** |
    |    *  - UA3 envoie INVITE avec préconditions de QS à UA4 w/ RP:2 ;              * |
    |    *  - Établissement de réservation entre UA3 et UA4                                         * |
    |    *  - Routeur 2 de Figure 2 doit préempter la réservation entre UA1 & UA2     * |
    |    * ************************************************************** |
    |                                                             |            ResvErr                                             |
    |                                                             |--------------------------------------------------->|
    |                                                             |                                                                      |
    |                                                                                                                                    |
    |                                                            BYE (Raison : ? )                                           |
    |<-------------------------------------------------------------------------------------------------|
    |                                                                                 200 OK                                      |
    |------------------------------------------------------------------------------------------------->|
    |                                                                                                                                    |

Figure 3. Préemption réseau avec raison obscure

Quelle valeur de Raison pourrait être insérée ci-dessus pour signifier "préemption à une interface de routeur" ? Il y a le choix entre plusieurs solutions : 410 "Parti", 480 "Temporairement indisponible", 486 "Occupé", et 503 "Service indisponible". L'utilisation d'une de ces valeurs ici est discutable parce que la session est déjà établie. C'est encore plus compliqué si il est nécessaire de faire la différence entre la valeur de Raison pour un APE et un NPE. Les limitations de la Recommandation UIT-T Q.850 [Q.850] ont déjà été mentionnées précédemment, montrant qu'il n'y a rien dans cette spécification pour indiquer un problème dans un réseau IP.

Déclarer que toutes les préemptions sont égales est possible, mais ne va pas fournir des informations adéquates. Donc, une autre valeur d'en-tête Raison est nécessaire pour différencier APE de NPE.

 	3.1	Exigences de l'en-tête Raison pour les événements de préemption du réseau
Voici les exigences pour la signalisation SIP appropriée en réaction à un événement de préemption de réseau (NPE) :

NPE_REQ#1 - crée un moyen pour informer l'UA d'extrémité distante qu'un événement de préemption de réseau s'est produit à un routeur intermédiaire.

NPE_REQ#2 - crée un moyen par lequel tous les éléments SIP pertinents peuvent être informés d'un NPE à une certaine session. Par exemple, peut-être que les serveurs SIP ont incorporé un en-tête Record-Route dans cet établissement de session.

NPE_REQ#3 - crée un moyen d'informer tous les participants à une conférence ad hoc que l'UA principal (le mixeur) a été préemptée par un NPE.

NPE_REQ#4 - crée une description séparée du NPE par rapport à un APE dans SIP.

 	4.	Inclusion d'une Infrastructure hybride

Si Usager 1 est dans une portion d'infrastructure non IP (utilisant un téléphone à multiplexage temporel (MRT)) dans une session avec un UA à travers une passerelle SIP, et si la portion MRT a la capacité de préempter la session et d'indiquer à la passerelle SIP quand elle fait une telle préemption, la passerelle SIP pourrait devoir être capable de porter cet événement de préemption dans la portion SIP de cette session tout comme si Usager 1 était un UA dans la session. Voici un diagramme qui représente cela :

       **************************
       *     Réseau MRT         *
       *                    +----------+
       *   Usager 1         |Passerelle|
       *     O   ==========>|   SIP 1  |===============> UA2
       *    /|\  ^          |          |                  |
       *    / \  |          +----------+                  |
       *         |              *                         |
       **********|***************  |                      |
                 |                 |   Indication         |
             Événement  ---------> |--------------------->|
             de préemption             de préemption

Figure 4. Événement de préemption MRT/IP

 	4.1	Exigences d'une infrastructure hybride
Voici les exigences uniques pour la topologie impliquant les infrastructures IP et MRT (ou non IP).

HYB_REQ#1 - crée un moyen d'informer l'UA de l'extrémité distante d'un dialogue à travers une passerelle SIP avec un téléphone non IP que la portion MRT de la session a indiqué à la passerelle SIP qu'un événement de préemption a terminé la session.

HYB_REQ#2 - crée un moyen pour identifier de façon univoque cet événement de préemption par rapport à un APE et un NPE.

 	5.	Codes de cause et sémantique de l'en-tête Raison de préemption

Le présent document définit la nouvelle valeur de protocole suivante pour le champ d'en-tête Raison dans la [RFC3326] :

Préemption : le paramètre de cause contient un code de cause de préemption.

On définit les codes de cause de préemption suivants :

Valeur	Texte par défaut	Description	
1	Préemption d'UA	La session a été préemptée par un UA.	
2	Ressources réservées préemptées	La préemption de session a été initiée dans le réseau via une occurrence délibérée de préemption RSVP, et non d'une erreur de liaison.	
3	Préemption générique	Indication de préemption d'usage limité sur la branche finale de l'UA préempté pour généraliser l'événement.	
4	Préemption non IP	La préemption de session s'est produite dans une portion non IP de l'infrastructure, et c'est le code de cause Raison donné par la passerelle SIP.	

La syntaxe exemplaire pour les types de préemption ci-dessus est :
Raison : préemption ; cause = 1 ; texte ="Préemption d'UA"
Raison : préemption ; cause = 2 ; texte ="Ressources réservées préemptées"
Raison : préemption ; cause = 3 ; texte ="Préemption générique"
Raison : préemption ; cause = 4 ; texte ="Préemption non IP"

Les paragraphes 5.1, 5.2, 5.3, et 5.4 donnent les cas d'utilisation et les définitions étendues pour les quatre codes de cause avec les diagrammes de flux de messages.

 	5.1	Code de raison d'événement de préemption d'accès
Une description plus élaborée de la cause = 1 de l'événement de préemption d'accès est : un agent d'utilisateur dans une session a délibérément préempté une session et informe le ou les agents d'utilisateur distants (si ils font partie d'une conférence) et les mandataires SIP (si ils sont à états pleins des transactions de la session).

Un exemple d'usage de cette valeur d'en-tête serait :

Raison : préemption ; cause = 1 ; texte = "Préemption d'UA"

 	5.1.1	Flux d'appels d'événement de préemption d'accès
La Figure 5 reprend le flux d'appels de la Figure 1, mais avec une indication de valeur de raison appropriée qui a été proposée au paragraphe 4.1 :

UA1                                UA2                  UA3
 |                                  |                    |
 |     INVITE (R-P:3)               |                    |
 |--------------------------------->|                    |
 |           200 OK                 |                    |
 |<---------------------------------|                    |
 |            ACK                   |                    |
 |--------------------------------->|                    |
 |            RTP                   |                    |
 |<================================>|                    |
 |                                  |    INVITE (R-P:2)  |
 |                                  |<-------------------|
 |  BYE (Raison: Préemption ;       |                    |
 | cause=1 ;texte="Préemption d'UA")|                    |
 |<---------------------------------|                    |
 |                                   |        200 OK      |
 |                                   |------------------->|
 |         200 OK                    |                    |
 |---------------------------------->|                    |
 |                                   |        ACK         |
 |                                   |<-------------------|
 |                                   |        RTP         |
 |                                   |<==================>|
 |                                   |                    |

Figure 5. Préemption d'accès avec la raison Préemption d'UA

L'UA1 invite l'UA2 à une session avec le niveau de priorité de ressource de 3 (les niveaux 1 et 2 sont supérieurs dans ce domaine). Après l'établissement de la session entre UA1 et UA2, l'UA3 invite UA2 à une nouvelle session avec un R-P de 2 (priorité supérieure à celle de la session en cours avec UA1). La politique locale dans ce domaine dicte que l'UA2 doit préempter tous les appels existants de moindre priorité afin d'accepter un appel de priorité supérieure.

L'UA2 envoie un message de demande BYE avec un en-tête Raison d'une valeur de Préemption d'UA. Cela va informer l'UA distant (UA1) et tous les éléments SIP pertinents (par exemple, les mandataires SIP). Le code de cause est unique pour ce qui est proposé dans l'événement de préemption RSVP pour les besoins de différenciation.

 	5.2	Code de raison d'événement de préemption de réseau
Une description plus élaborée de la cause = 2 de l'événement Ressources réservées préemptées est : un routeur a préempté un flux de réservation et généré un message d'erreur de réservation : une ResvErr voyageant vers l'aval dans RSVP, et un NOTIFY dans NSIS. L'UA qui reçoit le message d'erreur de préemption génère une demande BYE vers l'UA distant avec un en-tête Raison de cette valeur qui indique que quelque part entre les deux UA ou plus, un routeur a préempté administrativement cette session.

Un exemple d'usage de cette valeur d'en-tête serait :

Raison : Préemption : cause = 2 ; texte = "Ressources réservées préemptées"

 	5.2.1	Flux d'appels d'événement de préemption de réseau
La Figure 6 reproduit le flux d'appel de la Figure 5, mais avec une indication de valeur de Raison appropriée qui a été proposée au paragraphe 4.2.

      UA1                       Routeur2                    UA2
       |                           |                         |
       |         INVITE avec préconditions de QS (R-P:3)     |
       |---------------------------------------------------->|
       |    *******************************************      |
       |    *  - Préconditions de QS établies UA1-UA2 *      |
       |    *  - La signalisation SIP continue...     *      |
       |    *******************************************      |
       |         200 OK                                      |
       |<----------------------------------------------------|
       |          ACK                                        |
       |---------------------------------------------------->|
       |          RTP                                        |
       |<===================================================>|
       |    ********************************************     |
       |    * -UA3 envoie INV avec préconditions de QS *     |
       |    *     à UA4 w/ RP:2 ;                      *     |
       |    * -Établissement de réservation entre UA3  *     |
       |    *     et UA4                               *     |
       |    * -Routeur 2 de la Figure 2 doit préempter *     |
       |    *  la réservation entre UA1 et UA2         *     |
       |    * ******************************************     |
       |                                                     |
       |                           |     ResvErr             |
       |                           |------------------------>|
       |                           |                         |
       |                                                     |
       |           BYE (Raison : Préemption ;cause = 2 ;     |
       |         texte = "Ressources réservées préemptées")  |
       |<----------------------------------------------------|
       |                         200 OK                      |
       |---------------------------------------------------->|
       |                                                     |

Figure 6. Préemption de réseau avec "Ressources réservées préemptées"

On voit ci-dessus le flux d'appel avec le Routeur 2 de la Figure 2 inclus à la couche RSVP qui envoie les messages Resv. On ne montre pas dans le diagramme un flux d’appels complet incluant tous les UA et routeurs pour réduire la complexité du diagramme. La signalisation entre UA3 et UA4 n'est pas incluse non plus.

À réception du message ResvErr avec le code d'erreur de préemption, l'UA2 peut maintenant informer de façon appropriée l'UA1 de la raison de cet événement. Ce message BYE va aussi informer tous les éléments SIP pertinents, en les synchronisant. La valeur de cause est identique à celle proposée au paragraphe 4.1 pour les événements de préemption d'accès pour les besoins de différenciation.

 	5.3	Code de raison d'événement générique de préemption
Une description plus élaborée de l'événement Préemption générique cause = 3 est : ce code de cause est pour des infrastructures qui ne souhaitent pas fournir à l'UA préempté une raison plus précise que juste "préemption". Il est possible que les UA auront un code qui va indiquer le type d'événement de préemption contenu dans l'en-tête Raison, et certains domaines ont jugé que ceci n'est pas optimal, et veulent rendre l'indication plus générale. Ceci NE DOIT PAS être l'indication initiale dans ces domaines, car l'analyse du trafic et d'autres applications NM seront aussi généralisées. Si cette valeur de cause doit être mise en œuvre, elle DEVRAIT n'être faite qu'au mandataire SIP final d'une façon telle que la valeur de cause indiquant quel type d'événement de préemption s’est réellement produit soit changée en cette indication de préemption généralisée à recevoir par l'UA préempté.

Un exemple d'usage de cette valeur d'en-tête serait :

Raison : préemption ; cause = 3 ; texte = "Préemption générique"

 	5.4	Code de raison d'événement de préemption non IP
Une description plus élaborée de l'événement de préemption non IP cause = 4 est : une session existe dans une infrastructure hybride IP/non IP et l'événement de préemption se produit dans la portion non IP, et il est indiqué par cette portion que cette terminaison d'appel est due à une préemption. C'est l'indication qui serait générée par une passerelle SIP à l'UA SIP qui subit la préemption, traversant tous les mandataires SIP impliqués dans la signalisation de la session (une question d'état de serveur).

Un exemple d'usage de cette valeur d'en-tête serait :

Raison : préemption ; cause = 4 ; texte = "Préemption non IP"

 	5.4.1	Flux d'appels d'événement de préemption non IP
La Figure 7 est un simple diagramme de flux d'appels de l'événement de préemption non IP.

                                                           ............
      UA1                                   SIP GW1        . Usager3  .
       |                                       |           .          .
       |         INVITE (R-P:1)                |           .          .
       |-------------------------------------->|           .  Réseau  .
       |           200 OK                      |           .          .
       |<--------------------------------------|           .  non I   .
       |            ACK                        |           .          .
       |-------------------------------------->|           .          .
       |            RTP                        |           .          .
       |<=====================================>|           .          .
       |                                       |           .          .
       |    BYE (Raison: Préemption ;          |<==Indication de préemption
       |  cause=4 ;texte="Préemption non IP")  |           .          .
       |<--------------------------------------|           .          .
       |                                       |           ............

Figure 7. Préemption d'un flux non IP

Dans ce cas, l'UA1 invite l'Usager3 à une session. Une fois établie, il y a un événement de préemption dans la portion non IP de la session/appel, et la portion MRT a la capacité d'informer la passerelle SIP de ce type d'événement. Ce signal non IP peut être traduit en signalisation SIP (dans le message BYE de terminaison de session). Dans ce BYE, il devrait y avoir un en-tête Raison indiquant un tel événement pour synchroniser tous les éléments SIP.

 	6.	Considérations sur la sécurité

L'espionnage sur ce champ d'en-tête ne devrait pas empêcher le bon fonctionnement du protocole SIP, bien que certains domaines qui utilisent ce mécanisme pour la notification et la synchronisation des éléments SIP vont probablement vouloir que l'intégrité soit assurée. Il est donc RECOMMANDÉ que la protection de l'intégrité soit appliquée quand on utilise cet en-tête pour empêcher des changements non désirés du champ et l'espionnage des messages. Les choix acceptés pour fournir la protection d'intégrité dans SIP sont TLS et S/MIME.

 	7.	Considérations relatives à l'IANA

Le présent document ajoute à un registre IANA existant et crée un nouveau registre. Le registre existant pour l'en-tête SIP Raison est comme suit :

Valeur de protocole	Cause	Référence
  SIP	Code d'état	RFC 3261
  Q.850	Valeur de cause en décimal	UIT-T Q.850

Le présent document ajoute à ce registre l'entrée suivante (incluant le commentaire '*'):

Valeur de protocole	Cause	Référence
  Preemption	Valeur de cause en décimal*	RFC 4411

* Voir le registre "Preemption" séparé pour les chaînes par défaut de texte de raison.

Les valeurs de cause créées par l'espace de noms Protocole de préemption dans le présent document sont définies au paragraphe 7.1. Chaque valeur de cause a une chaîne "Reason-text" comme description générale de ce qu'est la valeur de cause. C'est montré pour l'en-tête Raison existant à la Section 2 de la RFC 3326. Avant le présent document, le "Reason-text" était tiré de la chaîne de code de réponse SIP de tous les codes de réponse SIP, ou la description par défaut des codes de cause Q.850. Actuellement, il n'y a pas de place pour enregistrer de nouvelles chaînes de texte de raison autres que celles de ces deux sources. Parce que le présent document définit un nouvel espace de noms de protocole d'en-tête Raison, un nouveau registre de l'IANA est créée au paragraphe 7.2 juste pour cet espace de noms de protocole et de futurs en-têtes Raison (autres que les code de réponse SIP ou les valeurs de cause Q.850) pour enregistrer leurs chaînes respectives de texte descriptif général. Ces chaînes de texte ne sont pas obligatoires et sont simplement le texte par défaut pour la compréhension des personnes, mais sont réputées assez importantes pour avoir leur propre registre d'en-tête Raison existants.

 	7.1	Registre d'espace de noms "Preemption"
La RFC 4411 crée le nouvel espace de noms de protocole SIP "En-tête Raison" [RFC3326] : "Preemption", avec quatre codes de cause définis. 

Dans les instances où cet espace de noms est utilisé pour indiquer la préemption à un UA, la syntaxe suivante devra être utilisée (le texte de raison est une chaîne par défaut ; elle n'est pas obligatoire, et peut être différente) :
Raison : préemption ; cause = 1 ; texte = "Préemption d'UA"
Le paragraphe 5.1 du présent document décrit en détails la sémantique de ce code de cause.
Le texte par défaut ci dessus fait partie du nouveau registre de l'IANA pour les chaînes de texte par défaut de tout nouveau code de cause de l'espace de noms du protocole. Voir les détails au paragraphe 7.2.

Dans les instances où cet espace de noms est utilisé pour indiquer la préemption parce que un message RSVP ResvErr a été reçu à un UA SIP, la syntaxe suivante devra être utilisée (le texte de raison est une chaîne par défaut ; elle n'est pas obligatoire, et peut être différente) :
Raison : préemption ; cause = 2 ; texte = "Ressources réservées préemptées"
Le paragraphe 5.2 du présent document décrit en détails la sémantique de ce code de cause.
Le texte par défaut ci dessus fait partie du nouveau registre de l'IANA pour les chaînes de texte par défaut de tout nouveau code de cause de l'espace de noms du protocole. Voir les détails au paragraphe 7.2.

Dans les instances où cet espace de noms est utilisé pour indiquer un événement généralisé de préemption à l'UA de destination de la part d'un mandataire qui modifie la valeur de raison seulement durant ce dernier bond SIP, la syntaxe suivante devra être utilisée (le texte de raison est une chaîne par défaut ; elle n'est pas obligatoire, et peut être différente) :
Raison : préemption ; cause = 3 ; texte = "Préemption générique"
Le paragraphe 5.3 du présent document décrit en détails la sémantique de ce code de cause.
Le texte par défaut ci dessus fait partie du nouveau registre de l'IANA pour les chaînes de texte par défaut de tout nouveau code de cause de l'espace de noms du protocole. Voir les détails au paragraphe 7.2.

Dans les instances où cet espace de noms est utilisé pour indiquer la préemption provenant d'une portion non IP d'une branche d'appel, une passerelle SIP devra utiliser la syntaxe suivante pour informer l'infrastructure SIP de cet événement (le texte de raison est une chaîne par défaut ; elle n'est pas obligatoire, et peut être différente) :
Raison : préemption ; cause = 4 ; texte = "Préemption non IP"
Le paragraphe 5.4 du présent document décrit en détails la sémantique de ce code de cause.
Le texte par défaut ci dessus fait partie du nouveau registre de l'IANA pour les chaînes de texte par défaut de tout nouveau code de cause de l'espace de noms du protocole. Voir les détails au paragraphe 7.2.

Des définitions supplémentaires de l'espace de noms de préemption et ses codes de cause DOIVENT être définies dans des documents sur la voie de la normalisation.

 	7.2	Registre IANA de texte de raison par défaut pour l'en-tête Raison SIP
Voici le nouveau registre de l'IANA pour les chaînes de texte de raison de l'en-tête SIP Raison, associées à leurs valeurs respectives de type de protocole et cause du paramètre de raison. Selon la RFC 3326, la chaîne de texte de raison est une chaîne par défaut entre guillemets avec une signification seulement pour l'humain. Ces chaînes peuvent être changées par la politique locale.

Protocole	Paramètre de raison	Texte de raison	Référence
Preemption	Cause=1	Préemption d'UA	RFC 4411
Preemption	Cause=2	Ressources réservées préemptées	RFC 4411
Preemption	Cause=3	Préemption générique	RFC 4411
Preemption	Cause=4	Préemption non IP	RFC 4411

 	8.	Contributions

Les personnes suivantes ont contribué à cet effort : Subhasri Dhesikan, Gonzalo Camarillo, Dave Oran.
L'auteur les remercie chaleureusement de leur aide pour ce travail.

 	9.	Remerciements

À Haluk Keskiner pour sa précieuse relecture. À Dean Willis, Rohan Mahy, et Allison Mankin pour leur soutien dans cet effort. À Adam Roach et Arun Kumar pour leur précieux commentaires sur le document.

Merci à Mike Pierce pour ses commentaires utiles et la saisie d'une faute dans la spécification tard dans le processus (avant qu'il soit trop tard).

 	10.	Références
 	10.1	Références normatives

[Q.850]	Recommandation UIT-T Q.850 (1993)

[RFC2119]	S. Bradner, "Mots clés à utiliser dans les RFC pour indiquer les niveaux d'exigence", BCP 14, mars 1997. (MàJ par RFC8174)

[RFC2205]	R. Braden, éd., L. Zhang, S. Berson, S. Herzog, S. Jamin, "Protocole de réservation de ressource (RSVP) -- version 1, spécification fonctionnelle", septembre 1997. (MàJ par RFC2750, RFC3936, RFC4495, RFC6780)) (P.S.)

[RFC3261]	J. Rosenberg et autres, "SIP : Protocole d'initialisation de session", juin 2002. (Mise à jour par 3265, 3853, 4320, 4916, 5393, 6665, 8217, 8760)

[RFC3312]	G. Camarillo, éd., "Intégration de la gestion de ressource et du protocole d'initialisation de session (SIP)", octobre 2002. (MàJ par RFC4032, RFC5027) (P.S.)

[RFC3326]	H. Schulzrinne, D. Oran, G. Camarillo, "Champ d'en-tête Reason pour le protocole d'initialisation de session (SIP)", décembre 2002. (P.S.)

[RFC4412]	H. Schulzrinne et J. Polk, "Priorité de ressource de communications pour le protocole d'initialisation de session (SIP)", février 2006.. (P.S.)

 	10.2	Références pour information

[RFC5974]	J. Manner, G. Karagiannis, A. McDonald, " Protocole de la couche de signalisation NSIS (NSLP) pour la signalisation de la qualité de service", octobre 2010. (Expérimentale) 

 	Adresse de l'auteur

James M. Polk
Cisco Systems
2200 East President George Bush Turnpike
Richardson, Texas 75082 
USA

mél : jmpolk@cisco.com 

 	Déclaration complète de droits de reproduction

Copyright (C) The IETF Trust (2006).

Le présent document est soumis aux droits, licences et restrictions contenus dans le BCP 78, et à www.rfc-editor.org, et sauf pour ce qui est mentionné ci-après, les auteurs conservent tous leurs droits.

Le présent document et les informations contenues sont fournis sur une base "EN L’ÉTAT" et le contributeur, l’organisation qu’il ou elle représente ou qui le/la finance (s’il en est), la INTERNET SOCIETY et la INTERNET ENGINEERING TASK FORCE déclinent toutes garanties, exprimées ou implicites, y compris mais non limitées à toute garantie que l’utilisation des informations encloses ne viole aucun droit ou aucune garantie implicite de commercialisation ou d’aptitude à un objet particulier.

Propriété intellectuelle
L’IETF ne prend pas position sur la validité et la portée de tout droit de propriété intellectuelle ou autres droits qui pourrait être revendiqués au titre de la mise en œuvre ou l’utilisation de la technologie décrite dans le présent document ou sur la mesure dans laquelle toute licence sur de tels droits pourrait être ou n’être pas disponible ; pas plus qu’elle ne prétend avoir accompli aucun effort pour identifier de tels droits. Les informations sur les procédures de l’ISOC au sujet des droits dans les documents de l’ISOC figurent dans les BCP  78 et BCP 79.

Des copies des dépôts d’IPR faites au secrétariat de l’IETF et toutes assurances de disponibilité de licences, ou le résultat de tentatives faites pour obtenir une licence ou permission générale d’utilisation de tels droits de propriété par ceux qui mettent en œuvre ou utilisent la présente spécification peuvent être obtenues sur répertoire en ligne des IPR de l’IETF à http://www.ietf.org/ipr.

L’IETF invite toute partie intéressée à porter son attention sur tous copyrights, licences ou applications de licence, ou autres droits de propriété qui pourraient couvrir les technologies qui peuvent être nécessaires pour mettre en œuvre la présente norme. Prière d’adresser les informations à l’IETF à ietf- ipr@ietf.org.

Remerciement 
Le financement de la fonction d’édition des RFC est actuellement fourni par la Internet Society.