First some clarifications. From [RFC3261 Section 6][1]:
SIP Transaction: A SIP transaction occurs between a client and a
server and comprises all messages from the first request sent
from the client to the server up to a final (non-1xx) response
sent from the server to the client. If the request is INVITE
and the final response is a non-2xx, the transaction also
includes an ACK to the response. The ACK for a 2xx response to
an INVITE request is a separate transaction
So an ACK to a non-2xx is part of the same transaction as the INVITE, any 1xx responses and the final response. In particular it has the same CSeq and the same branch tag. ACKs to non-2xx responses are hop-by-hop.
An ACK to a 2xx is a new transaction (although this is a special ACK transaction, and there are no responses). It has the same CSeq, but a different branch tag. ACKs to 2xx responses go all the way from the client to the server.
On your specific point, section 17 is about the transaction Layer. Here ACKs are only ever re-transmitted in response to a re-transmitted final response. When the Transaction Layer decides it needs to send an ACK, it sends it to the Transport Layer, and it is the Transport Layers job to deliver it.
Section 18 is about the Transport Layer. An ICMP error or a TCP reset are Transport Layer errors, they are not covered by the SIP transaction model. If the Transport Layer needs to promote a message from UDP to TCP, or to fall-back from TCP to UDP, that is separate from the Transaction Layers model. In fact, if the TCP socket cannot be established, the ACK has not been transmitted yet. In this case the Transport Layer isn’t retransmitting it, it is attempting to transmit it for the first time, by a different protocol.
In practise, this case is going to be rare. For the size of the ACK to be a problem for UDP, it has to be larger then both the INVITE and the final response — these have already succeeded via UDP. In the usual case the INVITE and final response contain an SDP body; in every success case the 2xx contains a body. The only case where the ACK is going to be larger is if there was no SDP in the INVITE and the ACK adds to the headers or body.
If you hit this case — TCP not supported and ACKs too big for UDP, you may be heading for failure anyway.
[1]: https://www.rfc-editor.org/rfc/rfc3261#section-6
SIP ошибки и их значение
SIP/2.0 400 Bad Request — ошибка в сигнализации, скорее всего что-то с настройками оборудования
SIP/2.0 401 Unauthorized — нормальный ответ сервера о том, что пользователь еще неавторизировался, обычно после этого на абонентское оборудование отправляет на сервер логин и пароль
SIP/2.0 401 Expired Authorization — время регистрации истекло
SIP/2.0 403 No Such User — нет такого пользователя, ошибка в номере, логине или пароле
SIP/2.0 403 User Disabled — пользователь отключен
SIP/2.0 403 Wrong Guess — ошибка в пароле
SIP/2.0 403 Forbidden — абонент не зарегистрирован
SIP/2.0 403 Empty Route Set — нет ни одного шлюза в роутинге
SIP/2.0 403 Caller Not Registered — нет такого пользователя
SIP/2.0 403 Out of Look-Ahead Retries — перебор узлов закончен
SIP/2.0 403 Invalid Phone Number — нет такого направления
SIP/2.0 404 Not found — вызываемый абонент не найден, нет такого SIP-номера
SIP/2.0 404 Undefined Reason — неопределенное направление
SIP/2.0 404 Unknown user account — логин и пароль не найдены
SIP/2.0 405 Method Not Allowed — метод не поддерживается, может возникать если пользователь пытается отправлять голосовую почту и т.п.
SIP/2.0 406 No codecs match — неправильная конфигурация кодеков
SIP/2.0 406 Not Acceptable
SIP/2.0 407 Proxy Authentication Required — что-то с регистрацией
SIP/2.0 408 Request Timeout — превышение ожижание ответа на запрос
SIP/2.0 408 Login timed out — за отведенное время не получен ответ от сервера на запрос авторизации
SIP/2.0 410 No Route — вариант SIP/2.0 403 Empty Route Set
SIP/2.0 415 No Media — несоответствие кодеков
SIP/2.0 480 Invalid Phone Number — неправильный номер телефона
SIP/2.0 480 Destination Not Found In Client Plan — направления не существует
SIP/2.0 480 Codec Mismatch — несоответствие кодеков
SIP/2.0 480 Empty Route Set — что-то с маршрутизацией
SIP/2.0 480 No money left — недостаточно денег на счете
SIP/2.0 480 Temporarily Unavailable — временно недоступное направление — попробуйте позвонить позже
SIP/2.0 481 Call Leg/Transaction Does Not Exist — действие не выполнено, нормальный ответ при поступлении дублирующего пакета
SIP/2.0 487 Request Terminated — запрос отменен, обычно приходит при отмене вызова
SIP/2.0 486 Busy Here — абонент занят
SIP/2.0 488 Codec Mismatch — нет шлюзов с поддержкой заказанного кодека
SIP/2.0 488 Private IP Address — адрес RTP media из сетей RFC1918
SIP/2.0 499 Codec Mismatch — отсутствует кодек
SIP/2.0 500 Internal Server Error — внутренняя ошибка сервера
SIP/2.0 500 DB Timeout — нет ответа от базы данных
SIP/2.0 500 Database Error — то же самое, но в другой момент
SIP/2.0 500 Wrong DB Response — неправильный ответ базы данных
SIP/2.0 500 Undefined Reason — неопределенная причина
SIP/2.0 500 account has been moved to a remote system — аккаунт перенесен в удаленную систему (дословно)
SIP/2.0 5хх — проблемы с SoftSwitch-ом
SIP/2.0 603 Decline — отказ в обслуживании звонка
Читайте другие страницы сайта.
1xx – информационные ответы
SIP/2.0 100 Trying
Запрос обрабатывается.
SIP/2.0 180 Ringing
Местоположение вызываемого пользователя определено. Выдан сигнал о входящем вызове.
SIP/2.0 181 Call is Being Forwarded
Прокси-сервер переадресует вызов к другому пользователю.
SIP/2.0 182 Call is Queued
Вызываемый абонент временно недоступен. Вызов поставлен в очередь.
SIP/2.0 183 Session Progress
Используется для того, чтобы заранее получить описание сеанса информационного обмена от шлюзов на пути к вызываемому пользователю.
2xx – ответы о завершении запроса
SIP/2.0 200 OK
Успешное завершение.
SIP/2.0 202 Accepted
Запрос принят для обработки. Используется для справки о состоянии обработки.
3xx – сообщения о переадресации
SIP/2.0 300 Multiple Choices
Указывает несколько SIP-адресов, по которым можно найти вызываемого пользователя.
SIP/2.0 301 Moved Permanently
Вызываемый пользователь больше не находится по адресу, указанному в запросе.
SIP/2.0 302 Moved Temporarily
Пользователь временно сменил местоположение (настроена переадресация по SIPUA в т.ч. с VOIP-телефона).
SIP/2.0 305 Use Proxy
Вызываемый пользователь недоступен непосредственно. Входящий вызов должен пройти через прокси-сервер.
SIP/2.0 380 Alternative Service
Запрошенная услуга недоступна, но доступны альтернативные услуги.
4xx – невозможность обработать запрос
SIP/2.0 400 Bad Request
Запрос не распознан из-за синтаксических ошибок или ошибок в сигнализации.
SIP/2.0 401 Unauthorized
Нормальный ответ сервера о том, что пользователь еще не авторизовался. Обычно после этого абонентское оборудование отправляет на сервер новый запрос, содержащий логин и пароль.
SIP/2.0 401 AUTH Error: Stall nonce
1.Разные данные в поле NONCE (шифр пароля), проверить дату/время или проблема с протоколом шифрования
2. Проверить на клиентской стороне не заблокирован ли sipnet.ru (212.53.40.40)
3. Проверить в ВАТС статус присутствия. Должен быть «нет».
SIP/2.0 401 Expired Authorization
Время регистрации истекло.
SIP/2.0 402 Payment Required
Требуется оплата (зарезервирован для использования в будущем).
SIP/2.0 403 No Such User
Нет такого пользователя. Ошибка в номере, логине или пароле.
SIP/2.0 403 No license available
Кончились лицензия на SIP
SIP/2.0 403 You
Нет такого пользователя. Ошибка в номере, логине или пароле.
SIP/2.0 403 User Disabled
Пользователь отключен.
SIP/2.0 403 You do not have the required right
Неверный логин в поле «From»
SIP/2.0 403 Wrong Guess
Ошибка в пароле.
SIP/2.0 403 Conflict
Такой SIP-номер уже используется.
SIP/2.0 403 Forbidden
Абонент не зарегистрирован.
SIP/2.0 403 Empty Route Set
Нет ни одного шлюза в роутинге.
SIP/2.0 403 Caller Not Registered
Нет такого пользователя.
SIP/2.0 403 Out of Look-Ahead Retries
Перебор узлов закончен.
SIP/2.0 403 Invalid Phone Number
Нет такого направления.
SIP/2.0 403 No Money Left on RFC Account
На счету недостаточно денежных средств для совершения вызова.
SIP/2.0 404 Not found
Вызываемый абонент не найден, нет такого SIP-номера.
SIP/2.0 404 Undefined Reason
Неопределенное направление.
SIP/2.0 404 Unknown user account
Логин и пароль не найдены.
SIP/2.0 404 Out of Order
В заявке на маршрутизацию по этому направлению нет принимающих шлюзов.
SIP/2.0 405 Method Not Allowed
Метод не поддерживается. Может возникать если пользователь пытается отправлять голосовую почту и т.п.
SIP/2.0 406 No codecs match
Неправильная конфигурация кодеков.
SIP/2.0 406 Not Acceptable
Пользователь недоступен.
SIP/2.0 407 Proxy Authentication Required
Необходима аутентификация на прокси-сервере.
SIP/2.0 407 User not found
Проверить ID на CGP
SIP/2.0 408 Request Timeout
Время обработки запроса истекло. Абонента не удалось найти за отведенное время. (Проблема с firewall, нет ответа на Invite от сервера)
SIP/2.0 408 Login timed out
За отведенное время не получен ответ от сервера на запрос авторизации.
SIP/2.0 410 No Route
Вариант «SIP/2.0 403 Empty Route Set». Нет доступа к ресурсу или ресурс по указанному адресу больше не существует.
SIP/2.0 413 Request Entity Too Large
Размер запроса слишком велик для обработки на сервере.
SIP/2.0 415 No Media
Звонок совершается неподдерживаемым кодеком.
SIP/2.0 416 Unsupported Scheme
Сервер не может обработать запрос из-за того, что схема адреса не распознана.
SIP/2.0 420 Bad extension
Неизвестное расширение. Сервер не распознал расширение протокола SIP.
SIP/2.0 421 Extension Required
В заголовке запроса не указано, какое расширение сервер должен применить для его обработки.
SIP/2.0 423 Interval Too Brief
Сервер отклоняет запрос, так как время действия ресурса короткое.
SIP/2.0 480 Invalid Phone Number
Неправильный номер телефона, не соответствует количеству цифр или неправильный код страны или города.
SIP/2.0 480 Destination Not Found In Client Plan
Нет направления в тарифном плане абонента.
SIP/2.0 480 Wrong DB Response
Проблемы с центральной базой данных.
SIP/2.0 480 DB Timeout
Проблемы с центральной базой данных.
SIP/2.0 480 Database Error
Проблемы с центральной базой данных.
SIP/2.0 480 Codec Mismatch
Несоответствие кодеков.
SIP/2.0 480 No Money Left on RFC Account
Недостаточно денежных средств на счету.
SIP/2.0 480 Empty Route Set
Пустое направление. Нет принимающих шлюзов.
SIP/2.0 480 No money left
Недостаточно денежных средств на счету.
SIP/2.0 480 Temporarily Unavailable
Временно недоступное направление. (Возможно статус DND)
SIP/2.0 481 Call Leg/Transaction Does Not Exist
Действие не выполнено. Нормальный ответ при поступлении дублирующего пакета.
SIP/2.0 482 Loop Detected
Обнаружен замкнутый маршрут передачи запроса.
SIP/2.0 483 Too Many Hops
Запрос на своем пути прошел через большее число прокси-серверов, чем разрешено.
SIP/2.0 484 Address Incomplete
Принят запрос с неполным адресом.
SIP/2.0 485 Ambiguous
Адрес вызываемого пользователя неоднозначен.
SIP/2.0 486 Busy Here
Абонент занят.
SIP/2.0 487 Request Terminated
Запрос отменен. Обычно приходит при отмене вызова.
SIP/2.0 488 Codec Mismatch
Нет шлюзов с поддержкой заказанного кодека.
SIP/2.0 488 Private IP Address
Адрес RTP media из сетей RFC1918.
SIP/2.0 488 Not acceptable here
Не совпадают кодеки
SIP/2.0 491 Request Pending
Запрос поступил в то время, когда сервер еще не закончил обработку другого запроса, относящегося к тому же диалогу.
SIP/2.0 493 Undeciperable
Сервер не в состоянии подобрать ключ дешифрования. Невозможно декодировать тело S/MIME сообщения.
SIP/2.0 499 Codec Mismatch
Отсутствует кодек.
5xx – ошибки сервера
SIP/2.0 500 Internal Server Error
Внутренняя ошибка сервера.
SIP/2.0 500 DB Timeout
Нет ответа от базы данных.
SIP/2.0 500 Database Error
То же самое, но в другой момент.
SIP/2.0 500 Wrong DB Response
Неправильный ответ базы данных.
SIP/2.0 500 Undefined Reason
Неопределенная причина.
SIP/2.0 500 account has been moved to a remote system
Аккаунт перенесен в удаленную систему (дословно).
SIP/2.0 500 Call placing quota exceeded
Превышен CPS.
SIP/2.0 501 Method Not Supported Here
В сервере не реализованы какие-либо функции, необходимые для обслуживания запроса. Метод запроса SIP не поддерживается.
SIP/2.0 502 Bad Gateway
Сервер, функционирующий в качестве шлюза или прокси-сервера, принимает некорректный ответ от сервера, к которому он направил запрос.
SIP/2.0 503 Service Unavailable
Сервер не может в данный момент обслужить вызов вследствие перегрузки или проведения технического обслуживания.
SIP/2.0 504 Server time-out
Сервер не получил ответа в течение установленного промежутка времени от сервера, к которому он обратился для завершения вызова.
SIP/2.0 505 SIP Version not supported
Версия не поддерживается. Сервер не поддерживает эту версию протокола SIP.
SIP/2.0 513 Message too big
Сервер не в состоянии обработать запрос из-за большой длины сообщения.
6xx – глобальная ошибка
SIP/2.0 600 Busy everywhere
Вызываемый пользователь занят и не желает принимать вызов в данный момент.
SIP/2.0 603 Decline
Вызываемый пользователь не желает принимать входящие вызовы, не указывая причину отказа.
SIP/2.0 604 Does Not Exist Anywhere
Вызываемого пользователя не существует.
SIP/2.0 606 Not Acceptable
Соединение с сервером было установлено. Отдельные параметры, такие как тип запрашиваемой информации, полоса пропускания, вид адресации не доступны.
Introduction[]
This article displays SIP error codes and a definition of such codes
Categories of SIP messages[]
- 1xx is ‘Informational’
- 2xx is ‘Success’
- 3xx is a ‘Redirection’
- 4xx is a ‘Client Error’
- 5xx is a ‘Server Error’
- 6xx is a ‘Global Failure’
1xx—Provisional Responses[]
- As mentioned earlier, a 1xx SIP response code can be sent at anytime while a connection is being established. Some of the regularly received codes are
Message Id | Description | ||
---|---|---|---|
100 Trying | This response indicates that the request has been received by the next-hop server and that some unspecified action is being taken on behalf of this call (for example, a database is being consulted). This response, like all other provisional responses, stops retransmissions of an INVITE by a UAC. The 100 (Trying) response is different from other provisional responses, in that it is never forwarded upstream by a stateful proxy. | ||
180 Ringing | Destination user agent received INVITE, and is alerting user of call. | ||
181 Call is being forwarded | Servers can optionally send this response to indicate a call is being forwarded. | ||
182 QUeued | The called party is temporarily unavailable, but the server has decided to queue the call rather than reject it. When the callee becomes available, it will return the appropriate final status response. The reason phrase MAY give further details about the status of the call, for example, «5 calls queued; expected waiting time is 15 minutes». The server MAY issue several 182 (Queued) responses to update the caller about the status of the queued call. | ||
183 Session Progress | The 183 (Session Progress) response is used to convey information about the progress of the call that is not otherwise classified. The Reason-Phrase, header fields, or message body MAY be used to convey more details about the call progress. | ||
199 Early Dialog Terminated | Can be used by User Agent Server to indicate to upstream SIP entities (including the User Agent Client (UAC)) that an early dialog has been terminated. |
2xx—Successful Responses[]
The 2xx response codes are used to indicate that a SIP request has been successfully processed. You’ll typically see the following versions:
Message Id | Description | ||
---|---|---|---|
200 OK | Indicates the request was successful. | ||
202 Accepted | Indicates that the request has been accepted for processing, but the processing has not been completed. | ||
204 No Notification | Indicates the request was successful, but the corresponding response will not be received. |
3xx—Redirection Responses[]
3xx responses give information about the user’s new location, or about alternative services that might be able to satisfy the call.
Message Id | Description | ||
---|---|---|---|
300 Multiple Choices | The address in the request resolved to several choices, each with its own specific location, and the user (or UA) can select a preferred communication end point and redirect its request to that location.
The response MAY include a message body containing a list of resource characteristics and location(s) from which the user or UA can choose the one most appropriate, if allowed by the Accept request header field. However, no MIME types have been defined for this message body. |
||
301 Moved Permanently | The user can no longer be found at the address in the Request-URI, and the requesting client SHOULD retry at the new address given by the Contact header field. The requester SHOULD update any local directories, address books, and user location caches with this new value and redirect future requests to the address(es) listed. | ||
302 Moved Temporarily | The requesting client SHOULD retry the request at the new address(es) given by the Contact header field. The Request-URI of the new request uses the value of the Contact header field in the response.
The duration of the validity of the Contact URI can be indicated through an Expires header field or an expires parameter in the Contact header field. Both proxies and UAs MAY cache this URI for the duration of the expiration time. If there is no explicit expiration time, the address is only valid once for recursing, and MUST NOT be cached for future transactions. |
||
305 Use Proxy | The requested resource MUST be accessed through the proxy given by the Contact field. The Contact field gives the URI of the proxy. The recipient is expected to repeat this single request via the proxy. 305 (Use Proxy) responses MUST only be generated by UASs. | ||
380 Alternative Service | The call was not successful, but alternative services are possible.
The alternative services are described in the message body of the response. Formats for such bodies are not defined here, and may be the subject of future standardization. |
4xx—Client Failure Responses[]
4xx responses are definite failure responses from a particular server. The client SHOULD NOT retry the same request without modification (for example, adding appropriate authorization). However, the same request to a different server might be successful.
Message Id | Description | ||
---|---|---|---|
400 Bad Request | The request could not be understood due to malformed syntax. The Reason-Phrase SHOULD identify the syntax problem in more detail, for example, «Missing Call-ID header field». | ||
401 Unauthorized | The request requires user authentication. This response is issued by UASs and registrars. | ||
402 Payment Required | Reserved for future use. | ||
403 Forbidden | The server understood the request, but is refusing to fulfill it. Sometimes (but not always) this means the call has been rejected by the receiver. | ||
404 Not Found | The server has definitive information that the user does not exist at the domain specified in the Request-URI. This status is also returned if the domain in the Request-URI does not match any of the domains handled by the recipient of the request. | ||
405 Method Not Allowed | The method specified in the Request-Line is understood, but not allowed for the address identified by the Request-URI. | ||
406 Not Acceptable | The resource identified by the request is only capable of generating response entities that have content characteristics but not acceptable according to the Accept header field sent in the request. | ||
407 Proxy Authentication Required | The request requires user authentication. This response is issued by proxys. | ||
408 Request Timeout | Couldn’t find the user in time. The server could not produce a response within a suitable amount of time, for example, if it could not determine the location of the user in time. The client MAY repeat the request without modifications at any later time. | ||
409 Conflict | User already registered. | ||
410 Gone | The user existed once, but is not available here any more. | ||
411 Length Required | The server will not accept the request without a valid Content-Length. | ||
412 Conditional Request Failed | The given precondition has not been met. | ||
413 Request Entity Too Large | The server is refusing to process a request because the request entity-body is larger than the server is willing or able to process. The server MAY close the connection to prevent the client from continuing the request.
If the condition is temporary, the server SHOULD include a Retry-After header field to indicate that it is temporary and after what time the client MAY try again. |
||
414 Request-URI Too Long | The server is refusing to service the request because the Request-URI is longer than the server is willing to interpret. | ||
415 Unsupported Media Type | The server is refusing to service the request because the message body of the request is in a format not supported by the server for the requested method. The server MUST return a list of acceptable formats using the Accept, Accept-Encoding, or Accept-Language header field, depending on the specific problem with the content. | ||
416 Unsupported URI Scheme | The server cannot process the request because the scheme of the URI in the Request-URI is unknown to the server. | ||
417 Unknown Resource-Priority | There was a resource-priority option tag, but no Resource-Priority header. | ||
420 Bad Extension | The server did not understand the protocol extension specified in a Proxy-Require or Require header field. The server MUST include a list of the unsupported extensions in an Unsupported header field in the response. | ||
421 Extension Required | The UAS needs a particular extension to process the request, but this extension is not listed in a Supported header field in the request. Responses with this status code MUST contain a Require header field listing the required extensions.
A UAS SHOULD NOT use this response unless it truly cannot provide any useful service to the client. Instead, if a desirable extension is not listed in the Supported header field, servers SHOULD process the request using baseline SIP capabilities and any extensions supported by the client. |
||
422 Session Interval Too Small | The received request contains a Session-Expires header field with a duration below the minimum timer. | ||
423 Interval Too Brief | The server is rejecting the request because the expiration time of the resource refreshed by the request is too short. This response can be used by a registrar to reject a registration whose Contact header field expiration time was too small. | ||
424 Bad Location Information | The request’s location content was malformed or otherwise unsatisfactory. | ||
428 Use Identity Header | The server policy requires an Identity header, and one has not been provided. | ||
429 Provide Referrer Identity | The server did not receive a valid Referred-By token on the request.
A specific flow to a user agent has failed, although other flows may succeed. This response is intended for use between proxy devices, and should not be seen by an endpoint (and if it is seen by one, should be treated as a 400 Bad Request response). |
||
433 Anonymity Disallowed | The request has been rejected because it was anonymous. | ||
436 Bad Identity-Info | The request has an Identity-Info header, and the URI scheme in that header cannot be dereferenced. | ||
437 Unsupported Certificate | The server was unable to validate a certificate for the domain that signed the request. | ||
438 Invalid Identity Header | The server obtained a valid certificate that the request claimed was used to sign the request, but was unable to verify that signature. | ||
439 First Hop Lacks Outbound Support | The first outbound proxy the user is attempting to register through does not support the «outbound» feature of RFC 5626, although the registrar does. | ||
440 Max-Breadth Exceeded | If a SIP proxy determines a response context has insufficient Incoming Max-Breadth to carry out a desired parallel fork, and the proxy is unwilling/unable to compensate by forking serially or sending a redirect, that proxy MUST return a 440 response. A client receiving a 440 response can infer that its request did not reach all possible destinations. | ||
469 Bad Info Package | If a SIP UA receives an INFO request associated with an Info Package that the UA has not indicated willingness to receive, the UA MUST send a 469 response, which contains a Recv-Info header field with Info Packages for which the UA is willing to receive INFO requests. | ||
470 Consent Needed | The source of the request did not have the permission of the recipient to make such a request. | ||
480 Temporarily Unavailable | The callee’s end system was contacted successfully but the callee is currently unavailable (for example, is not logged in, logged in but in a state that precludes communication with the callee, or has activated the «do not disturb» feature). The response MAY indicate a better time to call in the Retry-After header field. The user could also be available elsewhere (unbeknownst to this server). The reason phrase SHOULD indicate a more precise cause as to why the callee is unavailable. This value SHOULD be settable by the UA. Status 486 (Busy Here) MAY be used to more precisely indicate a particular reason for the call failure.
This status is also returned by a redirect or proxy server that recognizes the user identified by the Request-URI, but does not currently have a valid forwarding location for that user. |
||
481 Call/Transaction Does Not Exist | Server received a request that does not match any dialog or transaction. | ||
482 Loop Detected | Server has detected a loop. | ||
483 Too Many Hops | Max-Forwards header has reached the value ‘0’. | ||
484 Address Incomplete | The server received a request with a Request-URI that was incomplete. Additional information SHOULD be provided in the reason phrase.
This status code allows overlapped dialing. With overlapped dialing, the client does not know the length of the dialing string. It sends strings of increasing lengths, prompting the user for more input, until it no longer receives a 484 (Address Incomplete) status response. |
||
485 Ambiguous | The Request-URI was ambiguous. The response MAY contain a listing of possible unambiguous addresses in Contact header fields. Revealing alternatives can infringe on privacy of the user or the organization. It MUST be possible to configure a server to respond with status 404 (Not Found) or to suppress the listing of possible choices for ambiguous Request-URIs.
Some email and voice mail systems provide this functionality. A status code separate from 3xx is used since the semantics are different: for 300, it is assumed that the same person or service will be reached by the choices provided. While an automated choice or sequential search makes sense for a 3xx response, user intervention is required for a 485 (Ambiguous) response. |
||
486 Busy Here | The callee’s end system was contacted successfully, but the callee is currently not willing or able to take additional calls at this end system. The response MAY indicate a better time to call in the Retry-After header field. The user could also be available elsewhere, such as through a voice mail service. Status 600 (Busy Everywhere) SHOULD be used if the client knows that no other end system will be able to accept this call. | ||
487 Request Terminated | The request was terminated by a BYE or CANCEL request. This response is never returned for a CANCEL request itself. | ||
488 Not Acceptable Here | The response has the same meaning as 606 (Not Acceptable), but only applies to the specific resource addressed by the Request-URI and the request may succeed elsewhere.
A message body containing a description of media capabilities MAY be present in the response, which is formatted according to the Accept header field in the INVITE (or application/sdp if not present), the same as a message body in a 200 (OK) response to an OPTIONS request. |
||
489 Bad Event | The server did not understand an event package specified in an Event header field. | ||
491 Request Pending | Server has some pending request from the same dialog. | ||
493 Undecipherable | The request was received by a UAS that contained an encrypted MIME body for which the recipient does not possess or will not provide an appropriate decryption key. This response MAY have a single body containing an appropriate public key that should be used to encrypt MIME bodies sent to this UA. | ||
494 Security Agreement Required | The server has received a request that requires a negotiated security mechanism, and the response contains a list of suitable security mechanisms for the requester to choose between, or a digest authentication challenge. |
5xx—Server Failure Responses[]
5xx responses relate to server error issues and are mostly generated by the likes of proxy servers, location servers, and redirect servers. You’ll be familiar with some of these: — 500 Server Internal Error — 501 Not Implemented — 502 Bad Gateway — 503 Service Unavailable — 504 Server Time-Out
Message Id | Description | ||
---|---|---|---|
500 Server Internal Error | The server encountered an unexpected condition that prevented it from fulfilling the request. The client MAY display the specific error condition and MAY retry the request after several seconds.
If the condition is temporary, the server MAY indicate when the client may retry the request using the Retry-After header field. |
||
501 Not Implemented | The server does not support the functionality required to fulfill the request. This is the appropriate response when a UAS does not recognize the request method and is not capable of supporting it for any user. (Proxies forward all requests regardless of method.)
Note that a 405 (Method Not Allowed) is sent when the server recognizes the request method, but that method is not allowed or supported. |
||
502 Bad Gateway | The server is acting as a gateway or proxy, and received an invalid response from a downstream server while attempting to fulfill the request. | ||
503 Service Unavailable | The server is temporarily unable to process the request due to a temporary overloading or maintenance of the server. The server MAY indicate when the client should retry the request in a Retry-After header field. If no Retry-After is given, the client MUST act as if it had received a 500 (Server Internal Error) response.
A client (proxy or UAC) receiving a 503 (Service Unavailable) SHOULD attempt to forward the request to an alternate server. It SHOULD NOT forward any other requests to that server for the duration specified in the Retry-After header field, if present. |
||
504 Server Time-out | The server did not receive a timely response from an external server it accessed in attempting to process the request. 408 (Request Timeout) should be used instead if there was no response within the period specified in the Expires header field from the upstream server. | ||
505 Version Not Supported | The server does not support, or refuses to support, the SIP protocol version that was used in the request. The server is indicating that it is unable or unwilling to complete the request using the same major version as the client, other than with this error message. | ||
513 Message Too Large | The server was unable to process the request since the message length exceeded its capabilities. | ||
580 Precondition Failure | The server is unable or unwilling to meet some constraints specified in the offer. |
6xx—Global Failure Responses[]
Finally, the 6xx response codes relate to Global Error issues. They include: — 600 Busy Everywhere — 603 Decline — 604 Does Not Exist Anywhere — 606 Not Acceptable
Message Id | Description | ||
---|---|---|---|
600 Busy Everywhere | The callee’s end system was contacted successfully but the callee is busy and does not wish to take the call at this time. The response MAY indicate a better time to call in the Retry-After header field.
If the callee does not wish to reveal the reason for declining the call, the callee uses status code 603 (Decline) instead. This status response is returned only if the client knows that no other end point (such as a voice mail system) will answer the request. Otherwise, 486 (Busy Here) should be returned. |
||
603 Decline | The callee’s machine was successfully contacted but the user explicitly does not wish to or cannot participate. The response MAY indicate a better time to call in the Retry-After header field. This status response is returned only if the client knows that no other end point will answer the request. | ||
604 Does Not Exist Anywhere | The server has authoritative information that the requested user does not exist anywhere. | ||
606 Not Acceptable | The user’s agent was contacted successfully but some aspects of the session description such as the requested media, bandwidth, or addressing style were not acceptable.
A 606 (Not Acceptable) response means that the user wishes to communicate, but cannot adequately support the session described. The 606 (Not Acceptable) response MAY contain a list of reasons in a Warning header field describing why the session described cannot be supported. |
||
607 Unwanted | The called party did not want this call from the calling party. Future attempts from the calling party are likely to be similarly rejected. |