SIP - Messagerie

Les messages SIP sont de deux types - requests et responses.

  • La ligne d'ouverture d'une demande contient une méthode qui définit la demande et un Request-URI qui définit où la demande doit être envoyée.

  • De même, la première ligne d'une réponse contient un code de réponse.

Méthodes de demande

SIP requestssont les codes utilisés pour établir une communication. Pour les compléter, il y aSIP responses qui indiquent généralement si une demande a réussi ou échoué.

Ces demandes SIP, connues sous le nom de METHODES, rendent le message SIP exploitable.

  • Les MÉTHODES peuvent être considérées comme des requêtes SIP, car elles demandent qu'une action spécifique soit entreprise par un autre agent utilisateur ou serveur.

  • Les MÉTHODES se distinguent en deux types -

    • Méthodes de base

    • Méthodes d'extension

Méthodes de base

Il existe six méthodes principales décrites ci-dessous.

INVITER

INVITE est utilisé pour lancer une session avec un agent utilisateur. En d'autres termes, une méthode INVITE est utilisée pour établir une session média entre les agents utilisateurs.

  • INVITE peut contenir les informations multimédias de l'appelant dans le corps du message.

  • Une session est considérée comme établie si un INVITE a reçu une réponse de succès (2xx) ou un ACK a été envoyé.

  • Une demande INVITE réussie établit un dialog entre les deux agents utilisateurs qui continue jusqu'à ce qu'un BYE soit envoyé pour terminer la session.

  • Une INVITE envoyée dans une boîte de dialogue établie est connue sous le nom de re-INVITE.

  • Re-INVITE permet de modifier les caractéristiques de session ou d'actualiser l'état d'une boîte de dialogue.

Exemple INVITE

Le code suivant montre comment INVITE est utilisé.

INVITE sips:[email protected] SIP/2.0 
   Via: SIP/2.0/TLS client.ANC.com:5061;branch = z9hG4bK74bf9 
   Max-Forwards: 70 
   From: Alice<sips:[email protected]>;tag = 1234567 
   To: Bob<sips:[email protected]>
   Call-ID: [email protected]  
   CSeq: 1 INVITE 
   Contact: <sips:[email protected]> 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY 
   Supported: replaces 
   Content-Type: application/sdp 
   Content-Length: ...  
   
   v = 0 
   o = Alice 2890844526 2890844526 IN IP4 client.ANC.com 
   s = Session SDP 
   c = IN IP4 client.ANC.com 
   t = 3034423619 0 
   m = audio 49170 RTP/AVP 0 
   a = rtpmap:0 PCMU/8000

AU REVOIR

BYE est la méthode utilisée pour mettre fin à une session établie. Il s'agit d'une demande SIP qui peut être envoyée par l'appelant ou l'appelé pour mettre fin à une session.

  • Il ne peut pas être envoyé par un serveur proxy.

  • La demande BYE achemine normalement de bout en bout, en contournant le serveur proxy.

  • BYE ne peut pas être envoyé à une session INVITE en attente ou non établie.

S'INSCRIRE

La demande REGISTER effectue l'enregistrement d'un agent utilisateur. Cette demande est envoyée par un agent utilisateur à un serveur d'enregistrement.

  • La demande REGISTER peut être transmise ou envoyée par mandataire jusqu'à ce qu'elle atteigne un bureau d'enregistrement faisant autorité du domaine spécifié.

  • Il porte l'AOR (Address of Record) dans le To en-tête de l'utilisateur en cours d'enregistrement.

  • La requête REGISTER contient la période (3600sec).

  • Un agent utilisateur peut envoyer une demande REGISTER au nom d'un autre agent utilisateur. Ceci est connu commethird-party registration. Ici leFrom La balise contient l'URI de la partie soumettant l'enregistrement au nom de la partie identifiée dans le To entête.

ANNULER

CANCEL est utilisé pour terminer une session qui n'est pas établie. Les agents utilisateurs utilisent cette demande pour annuler une tentative d'appel en attente lancée plus tôt.

  • Il peut être envoyé soit par un agent utilisateur, soit par un serveur proxy.

  • CANCEL est un hop by hop request, c'est-à-dire qu'il parcourt les éléments entre l'agent utilisateur et reçoit la réponse générée par l'élément avec état suivant.

ACK

ACK est utilisé pour accuser réception des réponses finales à une méthode INVITE. Un ACK va toujours dans le sens de INVITE.ACK peut contenir un corps SDP (caractéristiques du média), s'il n'est pas disponible dans INVITE.

  • ACK ne peut pas être utilisé pour modifier la description de média qui a déjà été envoyée dans l'invitation initiale.

  • Un proxy avec état recevant un ACK doit déterminer si le ACK doit être transmis en aval à un autre proxy ou agent utilisateur.

  • Pour les réponses 2xx, ACK est de bout en bout, mais pour toutes les autres réponses finales, il fonctionne bond par bond lorsque des proxys avec état sont impliqués.

OPTIONS

La méthode OPTIONS est utilisée pour interroger un agent utilisateur ou un serveur proxy sur ses capacités et découvrir sa disponibilité actuelle. La réponse à une demande répertorie les capacités de l'agent utilisateur ou du serveur. Un proxy ne génère jamais de requête OPTIONS.

Méthodes d'extension

Souscrire

SUBSCRIBE est utilisé par les agents utilisateurs pour établir un abonnement dans le but d'obtenir une notification sur un événement particulier.

  • Il contient un Expires champ d'en-tête qui indique la durée d'un abonnement.

  • Une fois la période écoulée, l'abonnement se terminera automatiquement.

  • L'abonnement établit un dialogue entre les agents utilisateurs.

  • Vous pouvez vous réinscrire à nouveau en envoyant un autre SOUSCRIPTION dans la boîte de dialogue avant l'heure d'expiration.

  • Un 200 OK sera reçu pour un abonnement de l'utilisateur.

  • Les utilisateurs peuvent se désabonner en envoyant une autre méthode SUBSCRIBE avec la valeur Expires 0 (zéro).

NOTIFIER

NOTIFY est utilisé par les agents utilisateurs pour obtenir l'occurrence d'un événement particulier. Habituellement, un NOTIFY se déclenchera dans une boîte de dialogue lorsqu'un abonnement existe entre l'abonné et le notifiant.

  • Chaque NOTIFY recevra 200 réponses OK s'il est reçu par le notificateur.

  • NOTIFY contient un Event champ d'en-tête indiquant l'événement et un subscriptionstate champ d'en-tête indiquant l'état actuel de l'abonnement.

  • Un NOTIFY est toujours envoyé au début et à la fin d'un abonnement.

PUBLIER

PUBLISH est utilisé par un agent utilisateur pour envoyer des informations sur l'état des événements à un serveur.

  • PUBLISH est surtout utile lorsqu'il existe plusieurs sources d'informations sur les événements.

  • Une demande PUBLISH est similaire à un NOTIFY, sauf qu'elle n'est pas envoyée dans une boîte de dialogue.

  • Une demande PUBLISH doit contenir un Expires champ d'en-tête et un Min-Expires champ d'en-tête.

RÉFÉRER

REFER est utilisé par un agent utilisateur pour désigner un autre agent utilisateur afin d'accéder à un URI pour la boîte de dialogue.

  • REFER doit contenir un Refer-Toentête. Il s'agit d'un en-tête obligatoire pour REFER.

  • REFER peut être envoyé à l'intérieur ou à l'extérieur d'une boîte de dialogue.

  • UNE 202 Accepted déclenchera une demande REFER qui indique qu'un autre agent utilisateur a accepté la référence.

INFO

INFO est utilisé par un agent utilisateur pour envoyer des informations de signalisation d'appel à un autre agent utilisateur avec lequel il a établi une session multimédia.

  • Il s'agit d'une demande de bout en bout.

  • Un proxy transmettra toujours une demande INFO.

METTRE À JOUR

UPDATE est utilisé pour modifier l'état d'une session si une session n'est pas établie. L'utilisateur peut changer le codec avec UPDATE.

SI une session est établie, une réinvitation est utilisée pour modifier / mettre à jour la session.

PRACK

PRACK est utilisé pour accuser réception d'un transfert fiable de réponse provisoire (1XX).

  • Généralement, PRACK est généré par un client lorsqu'il reçoit une réponse provisoire contenant un RSeq numéro de séquence fiable et un supported:100rel entête.

  • PRACK contient la valeur (RSeq + CSeq) dans le rack entête.

  • La méthode PRACK s'applique à toutes les réponses provisoires à l'exception de la réponse 100 Trying, qui n'est jamais transportée de manière fiable.

  • Un PRACK peut contenir un corps de message; il peut être utilisé pour l'échange d'offres / réponses.

MESSAGE

Il est utilisé pour envoyer un message instantané en utilisant SIP. Un MI se compose généralement de messages courts échangés en temps réel par des participants engagés dans une conversation textuelle.

  • Le MESSAGE peut être envoyé dans une boîte de dialogue ou en dehors d'une boîte de dialogue.

  • Le contenu d'un MESSAGE est transporté dans le corps du message en tant que MIME attachement.

  • UNE 200 OK une réponse est normalement reçue pour indiquer que le message a été remis à sa destination.