Documentation technique
VOIP
Codes de réponses SIP
Les codes de réponse SIP reprennent et étendent les codes de réponse HTTP/1.1. Certains codes HTTP/1.1 sont cependant inappropriés et seuls ceux qui sont utiles sont décrits. Une nouvelle classe de codes (6xx) est apportée par SIP.
Provisional (1xx)
Requêtes reçues et en cours de traitement
100 Trying
180 Ringing
181 Call Is Being Forwarded
Un serveur peut utiliser ce code de réponse pour indiquer que l’appel a fait l’objet d’un renvoi vers une ou plusieurs destinations.
182 Queued
L’appelé est temporairement indisponible mais le serveur a décidé de placer l’appel en file d’attente plutôt que de le rejeter. Lorsque l’appelé est à nouveau disponible, une indication de l’état est communiquée. Il est possible de fournir des informations plus précises telles que le nombre d’appels en attente et le temps estimé avant réponse. Plusieurs messages 182 Queued peuvent se succéder pour un même appel de façon à informer l’appelant de la progression de son appel.
183 Session Progress
La réponse 183 Session Progress est utilisée pour communiquer des informations sur l’avancement de la session non couvertes par les autres codes 1xx. Un texte explicatif, les champs d’en-tête et le corps du message peuvent être utilisés pour fournir ces informations.
Success (2xx)
La requête a été traitée avec succès.
200 OK
La réponse 200 OK confirme que le traitement de la requête est effectué avec succès. Les informations accompagnant la réponse dépendent de la méthode utilisée pour la requête.
Redirection (3xx)
Les réponses 3xx fournissent des informations relatives à la nouvelle localisation de l'utilisateur appelé ou à des services alternatifs à même de satisfaire la demande.
300 Multiple choices
La résolution de l’adresse présente dans la requête a fourni plusieurs choix à des localisations différentes et le client peut sélectionner l’une d’elles en redirigeant sa demande au bon endroit. La réponse peut inclure un corps de messages contenant une liste de caractéristiques de ressources et de localisations parmi lesquelles le client choisira la plus appropriée.
301 Moved Permanently
302 Moved Temporarily
305 Use Proxy
380 Alternative Service
Request Failure (4xx)
Les réponses de la classe 4xx caractérise un échec de la tentative de réalisation de la requête. La requête ne devrait pas être renvoyée sans modification (par exemple l'authentification ou la modification de la période d'expiration de la session). Il est néanmoins possible que la même requête puisse être traitée avec succès par un autre serveur.
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
407 Proxy Authentication Required
408 Request Timeout
410 Gone
La ressource requise n’est plus disponible sur le serveur et aucun adresse de renvoi n’est connue.
Cette condition est supposée permanente. Si le serveur ne sait pas ou n’a aucun moyen de déterminer si la condition est permanente, le code de retour 404 Not Found devrait être utilisé à la place.
413 Request Entity Too Large
Le serveur refuse de traiter la requête car le corps de l’entité est plus grand que ce que le serveur veut bien ou est capable de traiter. Le serveur devrait fermer la connexion afin d’empêcher le client de continuer la demande.
Si la condition est temporaire, le serveur devrait inclure un champ Retry-After dans l’entête pour indiquer que c’est temporaire et après quel délai le client pourrait essayer à nouveau.
414 Request-URI Too Long
415 Unsupported Media Type
416 Unsupported URI Scheme
420 Bad Extension
421 Extension Required
423 Interval Too Brief
480 Temporarily Unavailable
481 Call/Transaction Does Not Exist
482 Loop Detected
483 Too Many Hops
484 Address Incomplete
485 Ambiguous
486 Busy Here
487 Request Terminated
488 Not Acceptable Here
491 Request Pending
493 Undecipherable
Server Failure (5xx)
Les réponses de classe 5xx sont renvoyées lorsque le serveur rencontre un problème pour traiter la requête.
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
Le serveur est temporairement dans l’incapacité de traiter la requête par suite d’une surcharge ou d’une opération de maintenance. Le serveur peut indiquer au client un délai dans le champ d’entête Retry-After pour renouveler sa demande. Si aucun champ Retry-After n’est fourni, le client doit considérer qu’il a reçu une réponse 500 Internal Server Error.
Un client ayant reçu une réponse 503 Service Unavailable devrait tenter d’envoyer la requête à un serveur alternatif. Il ne doit pas renvoyer la requête au serveur initial avant la durée spécifiée dans le champ d’entête Retry-After, s’il est présent.
504 Server Time-out
505 Version Not Supported
513 Message Too Large
Global Failures (6xx)
Les réponses de la classe 6xx indiquent que le serveur a des informations définitives pour un utilisateur particulier et pas seulement pour une instance particulière identifiée par le Request-URI.
600 Busy Everywhere
Le système final où se trouve l’appelé a bien été contacté mais l’appelé est occupé et ne souhaite pas prendre l’appel à cet instant. La réponse peut indiquer un meilleur moment pour appeler dans le champ d’entête Retry-After. Si l’appelé ne souhaite pas révéler la raison du rejet de l’appel, le code de retour 603 Decline doit être utilisé à la place.
Ce code de réponse doit seulement être retourné si le client ne connait pas d’autre point de terminaison (tel qu’une messagerie vocale) qui pourrait répondre. Dans le cas contraire, la réponse 486 Busy Here devrait être retournée.
603 Decline
604 Does Not Exist Anywhere
606 Not Acceptable
L’utilisateur a été contacté avec succès mais certains aspects de la description de session tels que le média, la bande passante ou le mode d’adressage n’étaient pas acceptables.
Une réponse 606 Not Accetable signifie que l’utilisateur souhaite effectivement communiquer mais pas en supportant la session décrite. La réponse 606 Not Acceptable peut contenir une liste de raisons dans le champs d’entête Warning dévrivant les raisons pour lesquelles la session décrite ne peut être supportée.
Un corps de message contenant la description des capacités media peut être présente dans la réponse qui est formatée selon le champ d’entête Accept de l’INVITE.
Il est supposé que la négociation ne sera pas fréquemment nécessaire et que lorsqu’un nouvel utilisateur sera invité à joindre une conférence existante, la négociation pourrait ne pas être possible. Ce sera à l’initiateur de la conférence de décider d’agir ou non sur une réponse 606 Not Acceptable.
Ce code de réponse est retourné seulement lorsque le client sait qu’aucune autre terminaison ne peut répondre à la requête.