Запросы и ответы SIP могут быть сгенерированы любым пользовательским агентом SIP ; пользовательские агенты делятся на клиентов (UAC), которые инициируют запросы, и серверы (UAS), которые отвечают на них. [1] : §8 Один пользовательский агент может действовать как UAC и UAS для различных транзакций: [1] : стр. 26 например, SIP-телефон является пользовательским агентом, который будет UAC при совершении звонка и UAS при его получении. Кроме того, некоторые устройства будут действовать как UAC и UAS для одной транзакции; они называются Back-to-Back User Agents (B2BUAs). [1] : стр. 20
Ответы SIP указывают трехзначный целочисленный код ответа, который является одним из ряда определенных кодов, которые детализируют статус запроса. Эти коды группируются в соответствии с их первой цифрой как коды «предварительный», «успех», «перенаправление», «ошибка клиента», «ошибка сервера» или «глобальный сбой», соответствующие первой цифре от 1 до 6; они выражаются как, например, «1xx» для предварительных ответов с кодом от 100 до 199. [1] : §7.2 Коды ответов SIP соответствуют кодам ответов HTTP , хотя не все коды ответов HTTP действительны в SIP. [1] : §21
Ответы SIP также указывают «фразу причины», а фраза причины по умолчанию определяется для каждого кода ответа. [1] : §7.2 Однако эти фразы причины могут изменяться, например, для предоставления дополнительной информации [1] : §21.4.18 или для предоставления текста на другом языке. [1] : §20.3
Коды ответов SIP и соответствующие фразы причин были первоначально определены в RFC 3261. [1] Этот RFC также определяет реестр SIP-параметров IANA ( Internet Assigned Numbers Authority ), чтобы позволить другим RFC предоставлять больше кодов ответов. [1] : §27 [2]
В этот список включены все коды ответов SIP, определенные в документах IETF RFC и зарегистрированные в реестре параметров SIP IANA по состоянию на 27 января 2023 г. [обновлять]В этот список также включены коды ответов SIP, определенные в устаревших документах SIP RFC (в частности, RFC 2543), которые, следовательно, не зарегистрированы в IANA; они явно отмечены как таковые.
Ответы SIP могут также включать необязательный заголовок Warning, содержащий дополнительные сведения об ответе. Warning содержит отдельный трехзначный код, за которым следует текст с более подробной информацией о предупреждении. [1] : §20.43 Текущий список официальных предупреждений зарегистрирован в реестре IANA параметров SIP.
1xx — Предварительные ответы
100 Попытка
Выполнение расширенного поиска может занять значительное время, поэтому ответвляющийся прокси-сервер должен отправить ответ 100 Trying. [1] : §21.1.1
180 Звонок
Агент пользователя назначения получил INVITE и оповещает пользователя о вызове. [1] : §21.1.2
181 Вызов переадресуется
Серверы могут по желанию отправлять этот ответ, чтобы указать, что вызов переадресуется. [1] : §21.1.3
182 В очереди
Указывает, что пункт назначения был временно недоступен, поэтому сервер поставил вызов в очередь, пока пункт назначения не станет доступен. Сервер может отправлять несколько ответов 182 для обновления хода очереди. [1] : §21.1.4
183 Прогресс сеанса
Этот ответ может быть использован для отправки дополнительной информации для вызова, который все еще устанавливается. [1] : §21.1.5
199 Ранний диалог прекращен
Может использоваться сервером User Agent для уведомления вышестоящих SIP-сущностей (включая клиент User Agent (UAC)) о том, что ранний диалог был завершен. [3]
2xx — успешные ответы
200 ОК
Указывает, что запрос был успешным. [1] : §21.2.1
202 Принято
Указывает, что запрос принят к обработке, но обработка не завершена. [4] : §7.3.1 [5] Устарело. [6] : §8.3.1 [2]
204 Нет уведомления
Указывает, что запрос был успешным, но соответствующий ответ не будет получен. [7]
3xx — ответы на перенаправление
300 вариантов ответа
Адрес преобразуется в один из нескольких вариантов, которые пользователь или клиент может выбрать, перечисленных в тексте сообщения или в полях «Контакты» сообщения. [1] : §21.3.1
301 Перемещено навсегда
Исходный Request-URI больше недействителен, новый адрес указан в поле заголовка Contact, и клиент должен обновить все записи исходного Request-URI новым значением. [1] : §21.3.2
302 Временно перемещено
Клиент должен попробовать адрес в поле «Контакт». Если поле «Истекает» присутствует, клиент может кэшировать результат на этот период времени. [1] : §21.3.3
305 Использовать прокси
В поле «Контакт» указывается прокси-сервер, который необходимо использовать для доступа к запрошенному месту назначения. [1] : §21.3.4
380 Альтернативная служба
Вызов не удался, но альтернативы подробно описаны в тексте сообщения. [1] : §21.3.5
4xx — Ответы на отказы клиентов
400 Неверный запрос
Запрос не может быть понят из-за неправильного синтаксиса. [1] : §21.4.1
401 Несанкционированный
Запрос требует аутентификации пользователя. Этот ответ выдается UAS и регистраторами. [1] : §21.4.2
402 Требуется оплата
Зарезервировано для будущего использования. [1] : §21.4.3
403 Запрещено
Сервер понял запрос, но отказывается его выполнять. [1] : §21.4.4 Иногда (но не всегда) это означает, что вызов был отклонен получателем.
404 Не найдено
Сервер имеет окончательную информацию о том, что пользователь не существует в домене, указанном в Request-URI. Этот статус также возвращается, если домен в Request-URI не совпадает ни с одним из доменов, обрабатываемых получателем запроса. [1] : §21.4.5
405 Метод не разрешен
Метод, указанный в строке запроса, понятен, но не разрешен для адреса, идентифицированного в запросе URI. [1] : §21.4.6
406 Неприемлемо
Ресурс, идентифицированный запросом, способен генерировать только те сущности ответа, которые имеют характеристики содержимого, но не являются приемлемыми в соответствии с полем заголовка Accept, отправленным в запросе. [1] : §21.4.7
407 Требуется аутентификация прокси-сервера
Запрос требует аутентификации пользователя. Этот ответ выдается прокси-серверами. [1] : §21.4.8
408 Тайм-аут запроса
Не удалось найти пользователя вовремя. Сервер не смог выдать ответ в течение подходящего периода времени, например, если он не смог вовремя определить местоположение пользователя. Клиент МОЖЕТ повторить запрос без изменений в любое более позднее время. [1] : §21.4.9
409 Конфликт
Пользователь уже зарегистрирован. [8] : §7.4.10 Устаревший из-за отсутствия в более поздних RFC [1] и из-за отсутствия регистрации в IANA. [2]
410 Ушел
Пользователь существовал когда-то, но больше не доступен здесь. [1] : §21.4.10
411 Требуемая длина
Сервер не примет запрос без допустимого Content-Length. [8] : §7.4.12 Устарело из-за отсутствия в более поздних RFC [1] и из-за отсутствия регистрации в IANA. [2]
412 Условный запрос не выполнен
Данное предварительное условие не было выполнено. [9]
413 Запрос сущности слишком большой
Текст запроса слишком большой. [1] : §21.4.11
414 Запрос-URI слишком длинный
Сервер отказывается обслуживать запрос, поскольку Request-URI длиннее, чем сервер готов интерпретировать. [1] : §21.4.12
415 Неподдерживаемый тип носителя
Формат тела запроса не поддерживается. [1] : §21.4.13
416 Неподдерживаемая схема URI
Запрос-URI неизвестен серверу. [1] : §21.4.14
417 Неизвестный ресурс-приоритет
Был тег параметра приоритета ресурсов, но не было заголовка Resource-Priority. [10]
420 Неправильное расширение
Используется неверное расширение протокола SIP, не понимаемое сервером. [1] : §21.4.15
421 Требуется расширение
Серверу требуется определенное расширение, не указанное в заголовке «Поддерживается». [1] : §21.4.16
422 Интервал сеанса слишком мал
Полученный запрос содержит поле заголовка Session-Expires с длительностью ниже минимального таймера. [11]
423 Интервал Слишком Короткий
Срок действия ресурса слишком короткий. [1] : §21.4.17
424 Неверная информация о местоположении
Содержимое запроса о местоположении было неправильно сформировано или иным образом неудовлетворительно. [12]
425 Плохое оповещение
Сервер отклонил неинтерактивный экстренный вызов, указав, что запрос был настолько искажен, что невозможно определить разумный экстренный ответ на оповещение. [13]
428 Использовать заголовок идентификатора
Политика сервера требует заголовок Identity, но он не был предоставлен. [14] : стр. 11
429 Укажите идентификатор реферера
Сервер не получил действительный токен Referred-By по запросу. [15]
430 Поток не пройден
Определенный поток к пользовательскому агенту не прошел, хотя другие потоки могут быть успешными. Этот ответ предназначен для использования между прокси-устройствами и не должен быть виден конечной точке (а если он виден, то должен рассматриваться как ответ 400 Bad Request). [16] : §11.5
433 Анонимность запрещена
Запрос был отклонен, поскольку он был анонимным. [17]
436 Неверная идентификационная информация
Запрос имеет заголовок Identity-Info, и схема URI в этом заголовке не может быть разыменована. [14] : стр. 11
437 Неподдерживаемый сертификат
Сервер не смог проверить сертификат для домена, подписавшего запрос. [14] : стр. 11
438 Неверный заголовок идентификатора
Сервер получил действительный сертификат, который, как утверждалось в запросе, использовался для подписи запроса, но не смог проверить эту подпись. [14] : стр. 12
439 Первый прыжок не имеет исходящей поддержки
Первый исходящий прокси-сервер, через который пользователь пытается зарегистрироваться, не поддерживает функцию «исходящего» RFC 5626, хотя регистратор ее поддерживает. [16] : §11.6
440 Превышена максимальная ширина
Если SIP-прокси определяет, что контекст ответа имеет недостаточную входящую максимальную ширину для выполнения желаемого параллельного разветвления, и прокси не желает/не может компенсировать это путем последовательного разветвления или отправки перенаправления, этот прокси ДОЛЖЕН вернуть ответ 440. Клиент, получающий ответ 440, может сделать вывод, что его запрос не достиг всех возможных адресатов. [18]
469 Пакет Неверной Информации
Если SIP UA получает запрос INFO, связанный с информационным пакетом, который UA не указал на готовность получать, UA ДОЛЖЕН отправить ответ 469, содержащий поле заголовка Recv-Info с информационными пакетами, для которых UA готов получать запросы INFO. [19]
470 Требуется согласие
Источник запроса не имел разрешения получателя на подачу такого запроса. [20]
480 Временно недоступно
Вызываемый в настоящее время недоступен. [1] : §21.4.18
481 Вызов/Транзакция не существует
Сервер получил запрос, который не соответствует ни одному диалогу или транзакции. [1] : §21.4.19
482 Обнаружена петля
Сервер обнаружил петлю. [1] : §21.4.20
483 Слишком много прыжков
Заголовок Max-Forwards достиг значения «0». [1] : §21.4.21
484 Адрес неполный
Запрос-URI неполный. [1] : §21.4.22
485 Неоднозначный
Запрос-URI неоднозначен. [1] : §21.4.23
486 Здесь Занято
Колли занят. [1] : §21.4.24
487 Запрос прекращен
Запрос был завершен путем прощания или отмены. [1] : §21.4.25
488 Здесь Не Приемлемо
Некоторые аспекты описания сеанса или Request-URI неприемлемы. [1] : §21.4.26
489 Плохое Событие
Сервер не распознал пакет событий, указанный в поле заголовка события. [4] : §7.3.2 [6] : §8.3.2
491 Запрос в ожидании
На сервере есть ожидающий запрос из того же диалога. [1] : §21.4.27
493 Неразборчиво
Запрос содержит зашифрованное тело MIME, которое получатель не может расшифровать. [1] : §21.4.28
494 Требуется соглашение о безопасности
Сервер получил запрос, требующий согласованного механизма безопасности, и ответ содержит список подходящих механизмов безопасности, из которых запрашивающая сторона может выбрать [21] : §§2.3.1–2.3.2 или дайджест-аутентификацию . [21] : §2.4
5xx — Ответы об ошибках сервера
500 Внутренняя ошибка сервера
Сервер не смог выполнить запрос из-за непредвиденных обстоятельств. [1] : §21.5.1
501 Не реализовано
Сервер не имеет возможности выполнить запрос, например, потому что он не распознает метод запроса. (Сравните с 405 Метод не разрешен, когда сервер распознает метод, но не разрешает или не поддерживает его.) [1] : §21.5.2
502 Неверный шлюз
Сервер действует как шлюз или прокси-сервер и получил недопустимый ответ от нижестоящего сервера при попытке выполнить запрос. [1] : §21.5.3
503 Служба недоступна
Сервер находится на обслуживании или временно перегружен и поэтому не может обработать запрос. Поле заголовка "Retry-After" может указывать, когда клиент может повторить свой запрос. [1] : §21.5.4
504 Истекло время ожидания сервера
Сервер попытался получить доступ к другому серверу, пытаясь обработать запрос, и не получил быстрого ответа. [1] : §21.5.5
505 Версия не поддерживается
Версия протокола SIP в запросе не поддерживается сервером. [1] : §21.5.6
513 Сообщение слишком большое
Длина сообщения запроса больше, чем сервер может обработать. [1] : §21.5.7
555 Служба push-уведомлений не поддерживается
Сервер не поддерживает службу push-уведомлений, указанную в параметре SIP URI «pn-provider» [22] : §14.2.1
580 Ошибка предварительного условия
Сервер не может или не желает соблюдать некоторые ограничения, указанные в предложении. [23]
6xx — Глобальные меры реагирования на сбои
600 Занят Везде
Все возможные пункты назначения заняты. В отличие от ответа 486, этот ответ указывает, что пункт назначения знает, что нет альтернативных пунктов назначения (например, сервера голосовой почты), способных принять вызов. [1] : §21.6.1
603 Отклонить
Адресат не желает участвовать в вызове или не может этого сделать, и, кроме того, адресат знает, что нет альтернативных адресатов (например, сервера голосовой почты), готовых принять вызов. [1] : §21.6.2 В ответе может быть указано лучшее время для вызова в поле заголовка Retry-After.
604 нигде не существует
Сервер имеет достоверную информацию о том, что запрошенный пользователь нигде не существует. [1] : §21.6.3
606 Неприемлемо
Связь с агентом пользователя была успешно установлена, но некоторые аспекты описания сеанса, такие как запрошенный носитель, пропускная способность или стиль адресации, оказались неприемлемыми. [1] : §21.6.4
607 Нежелательный
Вызываемая сторона не хотела этого звонка от вызывающей стороны. Последующие попытки вызывающей стороны, вероятно, будут также отклонены. [24]
608 Отклонено
Посредническая машина или процесс отклонили попытку вызова. [25] Это контрастирует с кодом ответа SIP 607 (нежелательный), в котором человек, вызываемая сторона, отклонил вызов. Посредник, отклоняющий вызов, должен включить заголовок Call-Info со значением «цель» «jwscard» с jCard [26] с контактными данными. Вызывающая сторона может использовать эту jCard, если хочет оспорить отклонение.
Ссылки
^ abcdefghijklmnopqrstu vwxyz aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av aw ax ay az ba bb bc bd be bf bg bh bi bj bk bl Розенберг, Джонатан; Шульцринне, Хеннинг ; Камарильо, Гонсало; Джонстон, Алан; Петерсон, Джон; Спаркс, Роберт; Хэндли, Марк ; Скулер, Ив (июнь 2002 г.). SIP: Протокол инициации сеанса. IETF . doi : 10.17487/RFC3261 . RFC 3261.
^ abcd Роач, Адам; Дженнингс, Каллен; Петерсон, Джон; Барнс, Мэри (17 апреля 2013 г.) [Создано в январе 2002 г.]. "Коды ответов". Параметры протокола SIP . IANA .
^ Холмберг, Кристер (май 2011 г.). Код ответа протокола SIP для указания завершенного диалога. IETF . стр. 1. Аннотация. doi : 10.17487/RFC6228 . RFC 6228.
^ ab Roach, Adam B. (июнь 2002 г.). Уведомление о событиях, специфичных для протокола SIP. IETF . doi : 10.17487/RFC3265 . RFC 3265.
^ Филдинг, Рой Т .; Геттис, Джеймс; Могул, Джеффри К.; Нильсен, Хенрик Фристик ; Масинтер, Ларри; Лич, Пол; Бернерс-Ли, Тим (июнь 1999 г.). "202 Accepted". Протокол передачи гипертекста -- HTTP/1.1. IETF . раздел 10.2.3. doi : 10.17487/RFC2616 . RFC 2616.
^ ab Roach, Adam (июль 2012 г.). Уведомление о событиях, специфичных для SIP. IETF . doi : 10.17487/RFC6665 . RFC 6665.
^ Ниеми, Аки (май 2010 г.). "Код ответа 204 (нет уведомления)". В Уиллис, Дин (ред.). Расширение событий протокола SIP для уведомления об условных событиях. IETF . раздел 7.1. doi : 10.17487/RFC5839 . RFC 5839.
^ ab Handley, Mark ; Schulzrinne, Henning ; Schooler, Eve; Rosenberg, Jonathan (март 1999 г.). SIP: протокол инициирования сеанса. IETF . doi : 10.17487/RFC2543 . RFC 2543.
^ Niemi, Aki, ред. (2004). ""412 Conditional Requset Failed" Код ответа". Расширение протокола SIP для публикации состояния события. IETF . раздел 11.2.1. doi : 10.17487/RFC3903 . RFC 3903.
^ Шульцринне, Хеннинг ; Полк, Джеймс (февраль 2006 г.). «Нет известного пространства имен или значения приоритета». Приоритет ресурсов связи для протокола инициирования сеанса (SIP). IETF . раздел 4.6.2. doi : 10.17487/RFC4412 . RFC 4412.
^ Донован, Стив; Розенберг, Джонатан (апрель 2005 г.). "Определение кода ответа 422". Таймеры сеансов в протоколе инициализации сеанса (SIP). IETF . раздел 6. doi : 10.17487/RFC4028 . RFC 4028.
^ Полк, Джеймс; Розен, Брайан; Петерсон, Джон (декабрь 2011 г.). "424 (Bad Location Information) Response Code". Передача местоположения для протокола инициации сеанса. IETF . раздел 4.3. doi : 10.17487/RFC6442 . RFC 6442.
^ abcd Петерсон, Джон; Дженнингс, Каллен (август 2006 г.). Улучшения для управления аутентифицированной идентификацией в протоколе инициации сеанса (SIP). IETF . doi : 10.17487/RFC4474 . RFC 4474.
^ Sparks, Robert J. (сентябрь 2004 г.). "Ответ на ошибку 429 Provide Referrer Identity Error". Механизм SIP (Session Initiation Protocol). IETF . Раздел 5. DOI : 10.17487/RFC3892 . RFC 3892.
^ ab Jennings, Cullen; Mahy, Rohan; Audet, Francois, ред. (октябрь 2009 г.). Управление клиентскими соединениями в протоколе SIP. IETF . doi : 10.17487/RFC5626 . RFC 5626.
^ Розенберг, Джонатан (декабрь 2007 г.). "433 (Анонимность запрещена) Определение". Отклонение анонимных запросов в протоколе инициализации сеанса (SIP). IETF . раздел 5. doi : 10.17487/RFC5079 . RFC 5079.
^ Устранение уязвимости усиления в прокси-серверах разветвления протокола SIP. IETF . Декабрь 2008 г. doi : 10.17487/RFC5393 . RFC 5393.
^ Метод и структура пакета INFO протокола SIP. IETF . Январь 2011 г. doi : 10.17487/RFC6086 . RFC 6086.
^ Розенберг, Джонатан; Уиллис, Дин (октябрь 2008 г.). «Определение кода ответа 470». В Камарильо, Гонсало (ред.). Структура для коммуникаций на основе согласия в протоколе инициирования сеанса (SIP). IETF . раздел 5.9.2. doi : 10.17487/RFC5360 . RFC 5360.
^ аб Аркко, Яри; Торвинен, Веса; Камарильо, Гонсало; Ниеми, Аки; Хаукка, Тао (январь 2003 г.). Соглашение о механизме безопасности для протокола инициирования сеанса (SIP). IETF . дои : 10.17487/RFC3329 . РФК 3329.
^ Push-уведомление с протоколом инициации сеанса (SIP). IETF . Май 2019. doi : 10.17487/RFC8599 . RFC 8599.
^ Розенберг, Джонатан (октябрь 2002 г.). «Отказ от предложения». В Камарильо, Гонсало; Маршалл, Билл (ред.). Интеграция управления ресурсами и протокола инициирования сеанса (SIP). IETF . раздел 8. doi : 10.17487/RFC3312 . RFC 3312.
^ Код ответа SIP для нежелательных вызовов. IETF . Июль 2017 г. doi : 10.17487/RFC8197 . RFC 8197.
^ Код ответа протокола SIP для отклоненных вызовов. IETF . Декабрь 2019 г. doi : 10.17487/RFC8688 . RFC 8688.