Précédent Sommaire Suivant
Pour faire appel à SIP, l’application de l’UAC appelant envoie une requête INVITE au Proxy Server (PS) auquel il est relié. Ce serveur, via d'autres PS, transmet cette requête à l'UAS auquel est relié l’appelé. Cette requête demande à l’appelé s’il veut rejoindre un forum de discussion, assister à une visioconférence ou établir simplement une communication privée avec l’appelant. Si l’appelé est d’accord, il renvoie une réponse OK (code 200) à l’appelant qui confirme alors qu’il a bien reçu la réponse de l’appelant. Pour cela, il envoie une requête ACK, acquittement (acknoledgement) à l’appelé. De la même manière, si l’utilisateur souhaite se déconnecter, l’application de l’utilisateur émet une requête BYE au lieu de ACK.
La requête INVITE contient la description de la session ouverte qui stipule quels sont les médias et formats des messages SIP utilisés (protocole SDP) . Pour une communication unicast, la requête INVITE précise les types de média et formats que l’appelant utilisera et vers où il souhaite que les données soient envoyées. Si l’appelé est d’accord avec cette description, sa réponse contiendra les mêmes paramètres(toutes les requêtes et leur réponses ont le même Call-ID) . En multicast, l’appelé répondra que si sa description est différente. Cette procédure est décrite dans le schéma suivant :
Fonctionnement d’une requête INVITE dans le cas d’un Proxy Server(PS) :
1) Le client appelant (UAC) envoie au PS une requête INVITE avec l’adresse SIP du destinataire: martin@enst.fr ;
2) Le PS contacte le Location Serveur et lui fournit toute ou une partie de l’adresse SIP du destinataire : martin ;
3) Le PS obtient alors une adresse plus précise : mart@lab ;
4) Le PS envoie une requête INVITE au serveur destinataire
dont l’adresse lui a été fournie par le service de localisation
du Location Server : lab;
5) L’UAS du destinataire avertit l'appelé;
6) Et retourne au PS de l'appelant l’accord du destinataire pour
communiquer par une réponse OK (code 200);
7) Ce PS retourne alors au client appelant l’accord du destinataire
;
8) La réception de l’accord du destinataire est acquittée
par le client appelant par une requête ACK ;
9) Cet acquittement est transmis directement à
l’appelé ;
Fonctionnement d’une requête INVITE dans le cas d’un Redirect Server :
1) Le client appelant (UAC) envoie une requête INVITE au redirect
serveur (RS) avec l’adresse destinataire ;
2) et 3) Le RS contacte le Location Server qui lui fournit l’adresse du
serveur destinataire : lab;
4) Le RS renvoie au client appelant la nouvelle adresse par une
réponse Moved (code 302) signalant que le terminal destinataire
a changé de PS ;
5) Le client appelant envoie une requête ACK au RS pour
aquitter ;
6) Puis ce client envoie une requête INVITE au serveur du
destinataire. Cette requête possède le même Call-ID
que la première mais son numéro de séquence Cseq est
plus élevé;
7) Le PS du destinataire avertit l'UAS de l'appelé ;
8) qui retourne au PS son accord pour communiquer par une
réponse OK (code 200);
9) Le PS retourne au client appelant l’accord du destinataire ;
10) La réception de l’accord du destinataire est acquittée
par le client appelant par une requête ACK ;
11) Cet acquittement est transmis directement à
l’appelé ;
Nous venons de voir, à travers ces 2 exemples que si certains paramètres de la session doivent être changés, un nouveau INVITE est émis tout en conservant le Call-ID mais un Cseq plus grand doit être utilisé.
Pour localiser un utilisateur SIP, notons d’abord qu’un terminal utilisateur peut constament se déplacer. Sa postion doit être enregistrée dynamiquement par un location server. Un tel serveur enregistre plusieurs positions pour un même terminal, qui est relié à plusieurs PS à la fois lorsqu’il se déplace (les PS les plus proches) . Lorsqu'un serveur SIP interroge son location server, il établit une liste des postions possibles de l’utilisateur à partir des résultats reçus. Cette liste contient 0 position ou plus. Pour communiquer sa nouvelle position au serveur SIP, le terminal de l’utilisateur lui envoie une requête REGISTER.
Dans le cas d’un RS, cette liste est renvoyée au client demandeur à l’aide du champ d’en-tête de Contact (voir paragraphe II.7.6 ).