II.7.5-LES CODES D’ETAT ET " REASON PHRASES "




Précédent
Sommaire
Suivant


Une réponse à une requête est caractérisée, comme nous avons déjà pu le constater, par un code et un motif , appelés code d’état et reason phrase respectivement. Un code d’état est un entier codé sur 3 bits indiquant un résultat à l’issue de la réception d’une requête. Ce résultat est précisé par une phrase, text-based (UTF-8), expliquant le motif du refus ou de l’acceptation de la requête. Le code d’état est donc destiné à l’automate gérant l’établissement des sessions SIP et les motifs aux programmeurs.

Il existe 6 classes de réponses et donc de codes d’état, représentées par le premier bit :

· 1xx = Information : la requête a été reçue et continue à être traîtée ;

· 2xx = Succès : l’action a été reçue avec succès, comprise et acceptée ;

· 3xx = Redirection : une autre action doit être menée afin de valider la requête ;

· 4xx = Erreur du client : la requête contient une syntaxe éronnée ou ne peut pas être traîtée par ce serveur ;

· 5xx = Erreur du serveur : le serveur n’a pas réussi à traîter une requête apparemment correcte ;

· 6xx = Echec général : la requête ne peut être traitée par aucun serveur.

Récapitulatif des codes d’état et des motifs pour la version SIP/2.0 :

Information

100

180

181

182

Trying

Ringing

Call Is Being Forwarded

Queued

Succès

200

OK(1)

Redirection(2)

300

301

302

303

305

380

Multiple Choices

Moved Permanently

Moved Temporarily

See other

Use Proxy Server

Alternative Service

Erreur du client

400

401

402

403

404

405

406

407

408

409

410

411

413

414

415

420

480

481

482

483

484

485

486

Bad Request

Unauthorized

Payment Required(3)

Forbidden

Not Found

Method Not Allowed

Not Acceptable

Proxy Server Authentification Required

Request Timeout

Conflict(4)

Gone(5)

Length Required

Request Entity Too Large

Request URI Too Large

Unsupported Media Type

Bad Extension

Temporarily not available

Call Leg/Transaction Does Not Exist(6)

Loop Detected(7)

Too Many Hops

Address Incomplete

Ambiguous(8)

Busy Here

Erreur du serveur

500

501

502

503

504

505

Internal Server Error

Not Implemented

Bad Gateway

Service Unavailable

Gateway Timeout

SIP Version not supported

Echec général

600

603

604

606

Busy Everywhere

Decline(9)

Does not exist anywhere

Not Acceptable

  1. La réponse OK signale que la requête a abouti avec succès et l'information retournée avec la réponse dépend de la méthode employée:
    · CANCEL: la recherche a été annulée. Le Corps du message de la réponse est vide;
    · INVITE: l'appelé a accepté de participer à l'appel ou session. Le Corps du message contient les paramètres de l'appelé;
    · OPTIONS: l'appelé a accepté de partager ses paramètres, inclus au Corps du message;
    · REGISTER:l'enregistrement s'est fait avec succès et le client traîte le Corps du message en accord avec ses Content-Type(voir paragraphe II.7.6);
    · BYE: l'appel est bien terminé. Le Corps du message de la réponse est vide;
    · ACK: non précisé.
  2. Les réponses de redirection donnent des informations sur la nouvelle position de l'utilisateur ou sur les services annexes nécessaires pour satisfaire l'appel.
  3. La réponse Payment Required est réservée à des applications futures.
  4. La réponse Conflict est retournée si un paramètre d'une requête REGISTER s'oppose à l'enregistrement existant.
  5. La réponse Gone précise que la ressource appelée n'est plus disponible pour le server et qu'aucune adresse de retransmission n'est connue.
  6. Cette réponse est retournée dans 2 cas: soit le serveur a reçu une requête BYE ne correspondant pas aux CALL-ID existants, soit le serveur a reçu une requête CANCEL ne correspondant pas aux transactions existantes.
  7. La réponse Loop Detected est retournée lorsque le serveur a reçu une requête avec un champ d'en-tête Via dont le chemin contient le serveur lui même, ce qui crée une boucle (loop).
  8. La réponse Ambiguous est retournée lorsque l'adresse de l'appelé, fournie par la requête, est ambiguë.
  9. La réponse Decline est retournée lorsque la machine de l'appelé a été contactée avec succès mais que l'utilisateur ne souhaite pas ou ne peut pas participer à la session SIP.

L’on peut remarquer que cette version de SIP possède de nombreux codes en commun avec la version HTTP/1.1. Les nouveaux codes ajoutés par SIP commencent à x80 pour éviter tout conflit avec HTTP. De plus SIP apporte une nouvelle classe 6xx de codes d’état. Les codes d’état des réponses SIP sont donc extensibles. Les applications SIP ne doivent pas nécessairement comprendre tous ces codes mais doivent absolument comprendre les classes de ces codes, indiquées par le premier bit du code détat. Toute réponse de code inconnu doit être traîtée par l’application comme une réponse de code x00.