Ответы SIP — это трёхзначные коды в шести классах, повторяющие HTTP: 1xx предварительные (запрос получен, ещё обрабатывается), 2xx успех, 3xx перенаправление, 4xx сбой клиента/запроса, 5xx сбой сервера и 6xx глобальный сбой (запрос не удаётся везде). Первая цифра задаёт класс; полный код идентифицирует конкретный результат.
Шесть классов ответов
Каждый ответ SIP несёт код статуса, ведущая цифра которого определяет его класс, точно как в HTTP. Предварительные (1xx) ответы промежуточны — запрос продвигается, но окончательного результата ещё нет. 2xx — успех. 3xx перенаправляет вызывающего в другое место. 4xx означает, что запрос не удался и обычно это вина вызывающего или запроса. 5xx означает, что сервер не смог выполнить казалось бы корректный запрос. 6xx — окончательный глобальный сбой: запрос не удастся в любом расположении, поэтому прокси должны прекратить перебор альтернатив.
| Класс | Значение |
|---|---|
| 1xx | Предварительный — получен, ещё обрабатывается (не окончательный) |
| 2xx | Успех — запрос выполнен |
| 3xx | Перенаправление — попробуйте другое местоположение |
| 4xx | Ошибка клиента/запроса — запрос не может быть выполнен в отправленном виде |
| 5xx | Сбой сервера — сервер не смог выполнить действительный запрос |
| 6xx | Глобальный отказ — отказ везде; прекратить ветвление (forking) |
Предварительные коды и коды успеха
Ранний поток вызова управляется 1xx и 2xx. 100 Trying сообщает вышестоящему переходу, что запрос получен, и останавливает повторные передачи. 180 Ringing указывает, что телефон вызываемого звонит. 183 Session Progress несёт ранние медиа (гудки или объявления) до ответа на вызов. 200 OK — это окончательный успех: для INVITE он означает, что на вызов ответили, и несёт ответ SDP и должен быть подтверждён ACK.
| Код | Причина | Значение |
|---|---|---|
| 100 | Trying | Запрос получен; прекращает повторную передачу с вышестоящей стороны |
| 180 | Ringing | Вызываемому абоненту подаётся сигнал вызова |
| 181 | Call Is Being Forwarded | Запрос перенаправляется |
| 182 | Queued | Вызываемый абонент временно недоступен; звонок поставлен в очередь |
| 183 | Session Progress | Доступны ранние медиа (сигнал контроля посылки вызова/объявление) |
| 200 | OK | Успех — для INVITE вызов принят |
Сбои клиента (4xx) — те, что вы будете отлаживать
Коды 4xx доминируют в реальной диагностике. 401/407 запрашивают аутентификацию (от UAS/registrar или прокси соответственно). 403 Forbidden и 404 Not Found говорят сами за себя. 408 Request Timeout означает отсутствие ответа вовремя. 486 Busy Here — вызываемый занят; 480 Temporarily Unavailable — вызываемый недостижим. 487 Request Terminated — ответ на INVITE, который был отменён CANCEL. 488 Not Acceptable Here обычно сигнализирует о сбое согласования SDP/кодека.
| Код | Причина | Типичная причина |
|---|---|---|
| 400 | Bad Request | Некорректное сообщение |
| 401 / 407 | Unauthorized / Proxy Auth Required | Запрос аутентификации (UAS / прокси) |
| 403 | Forbidden | Аутентифицирован, но нет разрешения |
| 404 | Not Found | Неизвестный пользователь / неверный Request-URI |
| 408 | Request Timeout | Нет ответа до истечения таймера |
| 480 | Temporarily Unavailable | Зарегистрирован, но сейчас недоступен |
| 486 | Busy Here | Вызываемый абонент занят |
| 487 | Request Terminated | INVITE был отменен (CANCELled) |
| 488 | Not Acceptable Here | Не удалось согласовать медиа/кодек (SDP) |
Сбои сервера (5xx) и глобальные (6xx)
5xx и 6xx сигнализируют о сбоях за пределами самого запроса. 500 Server Internal Error и 503 Service Unavailable указывают на проблему сервера или далее по цепочке; 504 Server Time-out — это тайм-аут шлюза. Класс 6xx категоричен: 600 Busy Everywhere, 603 Decline (вызываемый активно отклонил), 604 Does Not Exist Anywhere и 606 Not Acceptable. Поскольку 6xx означает, что запрос не удаётся в любом возможном расположении, разветвляющий прокси прекращает перебор других ветвей — в отличие от 4xx, специфичного для одной цели.
| Код | Причина | Значение |
|---|---|---|
| 500 | Server Internal Error | Сервер столкнулся с непредвиденной ошибкой |
| 503 | Service Unavailable | Сервер временно перегружен/недоступен |
| 504 | Server Time-out | Нет своевременного ответа от нижестоящего сервера |
| 600 | Busy Everywhere | Вызываемый абонент занят во всех местоположениях |
| 603 | Decline | Вызываемый абонент явно отклонил вызов |
| 604 | Does Not Exist Anywhere | Пользователя нигде не существует |
| 606 | Not Acceptable | Параметры сессии неприемлемы повсюду |
Часто задаваемые вопросы
Что означает SIP 200 OK?
200 OK — это ответ об успехе. Для INVITE он означает, что на вызов ответили, и несёт ответ SDP, завершающий согласование медиа; вызывающий должен подтвердить его ACK. Для других запросов он просто подтверждает, что операция удалась.
В чём разница между 486 Busy Here и 600 Busy Everywhere?
486 Busy Here означает, что конкретно контактируемая конечная точка занята, поэтому разветвляющий прокси может ещё попробовать другие расположения. 600 Busy Everywhere — это глобальный (6xx) сбой, означающий, что вызываемый занят во всех расположениях, поэтому прокси должны прекратить разветвление и вернуть сбой.
Почему я получаю SIP 488 Not Acceptable Here?
488 почти всегда означает сбой согласования медиа — предложение и ответ SDP не имеют общего кодека, либо не удалось согласовать обязательный параметр медиа (например, набор шифрования SRTP). Проверьте, что обе стороны поддерживают общий кодек и транспорт.
Что означает 407 Proxy Authentication Required?
Прокси запрашивает у запроса учётные данные. Клиент должен переотправить запрос с заголовком Proxy-Authorization, вычисленным из вызова. Это аналог 401 Unauthorized со стороны прокси, тогда как 401 приходит от UAS или registrar.
Для чего нужен ответ SIP 100 Trying?
100 Trying — это предварительный ответ, сообщающий вышестоящему переходу, что запрос получен и обрабатывается, что останавливает повторную отправку запроса отправителем. Он от перехода к переходу и никогда не идёт из конца в конец, как 180 или 200.
Технические характеристики источника
На этой странице представлены опубликованные стандарты, на которых они основаны. (Открывается в новой вкладке)