SIP - Champs d'en-tête de demande et de réponse

J'accepte

Le champ d'en-tête Accept est utilisé pour indiquer les types de média Internet de message acceptables dans le corps du message.

  • Le champ d'en-tête décrit les types de média en utilisant le type / sous-type de format couramment utilisé sur Internet.

  • S'il n'est pas présent, le format de corps de message acceptable supposé est application/sdp.

  • Une liste de types de média peut avoir des préférences définies à l'aide de q paramètres de valeur.

Accepter-encodage

Le champ d'en-tête Accept-Encoding est utilisé pour spécifier des schémas de codage de corps de message acceptables.

  • Le codage peut être utilisé pour garantir qu'un message SIP avec un corps de message volumineux tient dans un seul datagramme UDP.

  • L'utilisation de qles paramètres de valeur peuvent définir des préférences. Si aucun des schémas répertoriés n'est acceptable pour l'UAC, une réponse 406 Not Acceptable est renvoyée. S'il n'est pas inclus, le codage supposé seratext/plain.

À

Toindique le destinataire final de la demande. Toute réponse générée par un UA contiendra ce champ d'en-tête avec l'ajout d'une balise. C'est un en-tête obligatoire.

  • Toute réponse générée par un proxy doit avoir une balise ajoutée au To champ d'en-tête.

  • le To L'URI du champ d'en-tête n'est jamais utilisé pour le routage.

De

Fromle champ d'en-tête indique l'expéditeur de la demande. C'est l'une des deux adresses utilisées pour identifier une boîte de dialogue.

  • UNE From Le champ d'en-tête peut contenir une étiquette utilisée pour identifier un appel particulier.

  • Il peut contenir un nom d'affichage, auquel cas l'URI est entre <>.

  • C'est un en-tête obligatoire.

ID d'appel

Le champ d'en-tête Call-ID est obligatoire dans toutes les demandes et réponses SIP. Il est utilisé pour identifier de manière unique un appel entre deux agents utilisateurs.

  • Un identifiant d'appel doit être unique pour tous les appels.

  • Toutes les inscriptions pour un agent utilisateur doivent utiliser le même identifiant d'appel.

  • Un Call-ID est toujours créé par un agent utilisateur et n'est jamais modifié par un serveur.

  • C'est un identifiant cryptographique aléatoire.

Via

Via est utilisé pour enregistrer la route SIP prise par une requête, ce qui permet de renvoyer une réponse vers l'expéditeur.

  • Un UA générant une demande enregistre sa propre adresse dans un champ d'en-tête Via.

  • Un mandataire qui transmet la demande ajoute un champ d'en-tête Via contenant sa propre adresse en haut de la liste des champs d'en-tête Via.

  • Un mandataire ou UA générant une réponse à une demande copie tous les champs d'en-tête Via de la demande dans l'ordre dans la réponse, puis envoie la réponse à l'adresse spécifiée dans le champ d'en-tête Via supérieur.

  • Un mandataire recevant une réponse vérifie le champ d'en-tête Via supérieur et correspond à sa propre adresse.

  • S'il ne correspond pas, la réponse a été rejetée.

  • Le champ d'en-tête Via supérieur est alors supprimé et la réponse transmise à l'adresse spécifiée dans le champ d'en-tête Via suivant.

  • Via les champs d'en-tête contiennent le nom du protocole, le numéro de version et le transport (SIP / 2.0 / UDP, SIP / 2.0 / TCP, etc.) et peuvent contenir des numéros de port et des paramètres tels que reçu, rport, branch, maddr, et ttl.

  • UNE received La balise est ajoutée à un champ d'en-tête Via si un UA ou un mandataire reçoit la demande d'une adresse différente de celle spécifiée dans le champ d'en-tête Via supérieur.

  • Un paramètre de branche est ajouté aux champs d'en-tête Via par les UA et les mandataires, qui est calculé comme une fonction de hachage du Request-URI, et du numéro To, From, Call-ID et CSeq.

CSeq

Le champ d'en-tête CSeq est un champ d'en-tête obligatoire dans chaque demande. Il contient un nombre décimal qui augmente à chaque demande.

  • Habituellement, il augmente de 1 pour chaque nouvelle demande, à l'exception de CANCEL et ACK requêtes, qui utilisent le numéro CSeq de la requête INVITE à laquelle il se réfère.

  • Le compte CSeq est utilisé par les UAS pour déterminer les demandes hors séquence ou pour différencier une nouvelle demande (CSeq différent) ou une retransmission (même CSeq).

  • Le champ d'en-tête CSeq est utilisé par les UAC pour faire correspondre une réponse à la demande qu'il référence.

  • Par exemple, un UAC qui envoie une demande INVITE puis une demande CANCEL peut dire par la méthode dans le CSeq d'une réponse 200 OK s'il s'agit d'une réponse à l'invitation ou à la demande d'annulation.

Contact

Le champ d'en-tête Contact est utilisé pour transmettre à l'autre utilisateur l'adresse de l'expéditeur de la demande. Une fois qu'un champ d'en-tête Contact a été reçu, l'URI peut être mis en cache et utilisé pour acheminer les demandes futures dans une boîte de dialogue.

Par exemple, un champ d'en-tête Contact dans une réponse 200 OK à une INVITE peut permettre au message d'accusé de réception ACK et à toutes les demandes futures pendant cet appel de contourner les mandataires et d'aller directement à l'appelé.

Record-Route

Le champ d'en-tête Record-Route est utilisé pour forcer le routage via un proxy pour toutes les demandes ultérieures dans une session (dialogue) entre deux UA.

Normalement, la présence d'un champ d'en-tête Contact permet aux UA d'envoyer des messages directement en contournant la chaîne proxy utilisée dans la demande initiale.

  • Un proxy insérant son adresse dans un champ d'en-tête Record-Route remplace cela et force les demandes futures à inclure un champ d'en-tête Route contenant l'adresse du proxy qui force ce proxy à être inclus.

  • Un mandataire souhaitant mettre en œuvre ceci insère le champ d'en-tête contenant son propre URI, ou ajoute son URI à un champ d'en-tête Record-Route déjà présent.

  • L'URI est construit de manière à ce que l'URI soit résolu vers le serveur proxy. L'UAS copie le champ d'en-tête Record-Route dans la réponse 200 OK à la demande.

  • Le champ d'en-tête est renvoyé tel quel par les mandataires à l'UAC. L'UAC stocke ensuite la liste de proxy Record-Route plus un champ d'en-tête Contact s'il est présent dans le 200 OK pour une utilisation dans un champ d'en-tête Route dans toutes les demandes suivantes.

Organisation

Le champ d'en-tête Organisation est utilisé pour indiquer l'organisation à laquelle appartient l'expéditeur du message.

  • Il peut également être inséré par des mandataires lorsqu'un message est transmis d'une organisation à une autre.

  • Comme tous les champs d'en-tête SIP, il peut être utilisé par des mandataires pour prendre des décisions de routage et par des agents d'utilisateur pour prendre des décisions de filtrage d'appels.

Réessayer après

Il est utilisé pour indiquer quand une ressource ou un service peut être à nouveau disponible.

  • Dans les réponses 503 Service non disponible, il indique quand le serveur sera disponible.

  • Dans les réponses 404 Not Found, 600 Busy Everywhere et 603 Decline, il indique quand l'UA appelé peut être à nouveau disponible.

  • Il contient la période en «sec».

Matière

Le champ facultatif d'en-tête Subject est utilisé pour indiquer le sujet de la session média.

Le contenu du champ d'en-tête peut également être affiché pendant l'alerte pour aider l'utilisateur à décider d'accepter ou non l'appel.

Example:
Subject: How are you?

Prise en charge

Le champ d'en-tête Supported est utilisé pour lister une ou plusieurs options implémentées par un UA ou un serveur.

  • Il est généralement inclus dans les réponses aux demandes OPTIONS.

  • Si aucune option n'est implémentée, le champ d'en-tête n'est pas inclus.

  • Si un UAC répertorie une option dans un champ d'en-tête pris en charge, les mandataires ou les UAS peuvent utiliser l'option pendant l'appel.

  • Si l'option doit être utilisée ou prise en charge, le champ d'en-tête Require est utilisé à la place.

Example:
Supported: rel100

Expire

Le champ d'en-tête Expires est utilisé pour indiquer l'intervalle de temps dans lequel le contenu de la demande ou du message est valide.

  • Lorsqu'il est présent dans une demande INVITE, le champ d'en-tête définit une limite de temps pour l'achèvement de la demande INVITE.

  • Autrement dit, l'UAC doit recevoir une réponse finale (non-1xx) dans le délai ou la demande INVITE est automatiquement annulée avec une réponse 408 Request Timeout.

  • Une fois la session établie, la valeur du champ d'en-tête Expires dans l'INVITE d'origine n'a aucun effet - le champ d'en-tête Session-Expires doit être utilisé à cette fin.

  • S'il est présent dans une demande REGISTER, le champ d'en-tête définit la limite de temps sur les URI dans les champs d'en-tête Contact qui ne contiennent pas de expires paramètre.

  • Expires est également utilisé dans les demandes SUBSCRIBE pour indiquer la durée de l'abonnement.

Example:
Expires: 30

Agent utilisateur

Ce champ d'en-tête est utilisé pour transmettre des informations sur l'UA à l'origine de la demande.