Код ответа

Код ответа (также: код причины завершения или код возврата), в англоязычной литературе: cause code, reason code, status code, disconnect code, disconnect reason и т. д. — в телекоммуникациях и программном обеспечении — цифровой код, сформированный узлом или процессом в результате выполнения запроса, который характеризует то или иное событие протокола или технологии, произошедшее на отвечающей стороне: успешное или неуспешное выполнение и т. д. Нередко коды ответа сопровождаются лаконичным комментарием на английском языке, а в ответном сообщении вместе с цифровым кодом и его расшифровкой может передаваться другая необходимая информация (например, запрошенные данные).

Получив код ответа, автор запроса может сделать выводы о характере события и продолжить работу или завершить её, согласно ситуации. Коды ответа очень часто используется в архитектуре клиент-сервер, однако применение не ограничивается только ей и могут использоваться для взаимодействия равнозначных узлов/приложений в рамках соответствующего протокола.

В зависимости от сферы применения коды завершения могут быть общепринятыми и узкоспециальными. Однако в подавляющем большинстве случаев разработчики стандартизируют коды ответов своих проектов и предоставляют полноценные описания причины каждого события, в результате которого может быть получен тот или иной ответ с цифровым кодом. В протоколах, сходных по назначению, могут применяться одинаковые коды, хотя в большинстве случаев, цифровые коды возврата уникальны для каждой технологии или протокола.

Знание кодов ответа и ошибок позволяет пользователям, разработчикам и обслуживающему персоналу системы эффективно заниматься анализом проблем (при условии, что возможно сохранение лога работы протокола). Также для отладки может пригодиться анализатор трафика (например, Wireshark).

Коды ответов станций в телефонной связи

В телефонной сигнализации, обеспечивающей коммутацию вызова и все процедуры, связанные с его установлением, изменением состояния и завершением, применяются общепринятые стандартные коды ответов на запросы. В профессиональной речи используется также выражение «код отбоя».

Традиционная телефония ТФОП

Код завершения вызова и/или окончательного ответа станции на запрос сохраняется в подробную запись о вызове (CDR). Коды ответов узлов, станций и абонентского оборудования в традиционной телефонии описываются в стандарте Q.850 для абонентской сигнализации DSS1 и ISUP сети ОКС-7[1] и в Q.931 для ISDN.

Обычно на коммутаторе можно настроить, какой звук (голосовое уведомление, СИТ-тон) будет проигрываться абоненту для каждого кода завершения, когда абонент недоступен, абонент занят, сеть перегружена и т. п. Если направлений (маршрутов или по другой терминологии транк-групп) к абоненту больше одного, то станцию обычно настраивают так, что если при попытке установления соединения с абонентом получен код о недоступности запрашиваемого направления (например из-за перегрузки — No circuit/channel available, № 34), то она не отобьёт вызов, но запросит альтернативное направление, и если оно доступно, то соединение будет установлено через него[2].

Примеры кодов ответов[1]:

Код Значение Пояснение
16 Normal call clearing Нормальное завершение вызова
17 User busy Абонент занят
22 Number changed Номер изменён
28 Invalid Number Format (address incomplete). Вызываемый номер не соответствует принятому формату или не полон.
34 No circuit/channel available Нет доступного канала
101 The Message is Not Compatible with the Call State. Полученное сообщение несовместимо с состоянием вызова.

Сотовая связь

На мобильных коммутаторах кроме технического цифрового кода ответа по завершении попытки вызова, применяются голосовые уведомления, информирующие абонента о том, что вызов не может быть совершён по любой из ряда причин, начиная от локальной перегрузки, заканчивая недоступностью или отключением устройства абонента, ошибками набора номера или неполадками сотовой сети.

Некоторые называют это явление автоответчиком. Это не совсем корректно, так как автоответчик — это возможность или услуга реализуемая на уровне пользовательского номера (вызываемого номера), а не функция коммутатора для уведомления о недоступности номера.

Код завершения вызова и/или окончательного ответа станции на запрос так же, как и в традиционной телефонии, сохраняется в подробную запись о вызове (CDR). Так как коды разных протоколов могут различаться, в мультипротокольных продуктах NGN операторам связи нередко приходится решать задачу адекватного сопоставления кодов ответа станции одного протокола кодам соответствия другого (сообщения из SIP в H.323 или ISDN и наоборот), это называется трансляцией кодов (или mapping).

Оборудование и программное обеспечение H.323 завершает вызовы с кодами ответов, соответствующие стандарту Q.931, так как данный стек протоколов разрабатывался для максимального соответствия ISDN и многие моменты организации взаимодействия сторон унаследованы из цифровой телефонии. (Примеры смотри выше)

SIP — Протокол установления сеанса, следуя принципу упрощения запросов и ответов в рамках телефонного вызова, унаследовал структуру ответов и их виды от протокола HTTP.

Примеры кодов ответов[3][4]:

Код Значение Пояснение
180 Ringing Уведомление о начале вызова на стороне вызываемого оборудования, соответствует длинному звуковому сигналу (КПВ) в телефонии
200 OK Стандартный ответ, подтверждающий согласие на действие по запросу
404 Not found Вызываемый абонент не найден
487 Request terminated Инициатор вызова завершил попытку установить связь до соединения с вызываемым абонентом
603 Decline Означает, что вызываемая сторона отклонила входящий вызов

Межсетевое взаимодействие

Отдельным вопросом является взаимодействие сетей с разными протоколами и, как правило, отличающимися причинами отбоя, например между SIP и ISDN[5][3][6]: при отбое вызова на стороне ISDN каким-либо кодом Q.850 на стороне SIP должен быть получен релевантный SIP-ответ и то же самое в обратном направлении.

Коды ответов в сетевых приложениях

В приложениях код ответа является частью взаимодействия администратора и системы; в общем плане — между как минимум двумя процессами согласно предварительно разработанной процедуре, называемой протоколом[7].

Передача файлов (FTP)

FTP является одним из старейших прикладных клиент-серверных протоколов, предназначенным для передачи файлов в компьютерных сетях, в котором команды и коды ответа сервера являются стандартизированными и популярными.

Примеры кодов ответов[8]:

Код Значение Пояснение
220 FTP server ready Сервер готов обрабатывать запросы
230 Login successful Пользователь успешно подключился
150 Ok to send data Согласие принимать данные от пользователя
226 File receive OK Файл передан успешно

Взаимодействие с веб-сервером (HTTP)

Код состояния HTTP является частью первой строки ответа веб-сервера на действия пользователя. Клиент узнаёт по коду ответа о результатах его запроса и определяет, какие действия ему предпринимать дальше. Набор кодов состояния является стандартом, и они описаны в соответствующих документах (один из последних RFC 2616).

Примеры кодов ответов[9]:

Код Значение Пояснение
202 Accepted Запрос был принят на обработку, но обработка не завершена.
400 Bad Request Сервер обнаружил в запросе клиента синтаксическую ошибку.
401 Unauthorized Запрос требует идентификации пользователя.
403 Forbidden Сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе со стороны клиента к указанному ресурсу.
404 Not Found Сервер понял запрос, но не нашёл соответствующего ресурса по указанному адресу.

Отправка сообщений электронной почты (SMTP)

Почта по протоколу SMTP посылается от клиента к серверу. Клиент запрашивает соединение с сервером и выполняет различные команды. Почтовый сервер (MTA) реагирует на запросы и выдаёт соответствующие ответы.

Примеры кодов ответов[10]:

Код Значение Пояснение
220 Service Ready Почтовый сервер готов к обслуживанию (может отправляться вместе с доменным именем сервера и версией ПО)
250 OK Команда принята и обработана
550 No such user here Ошибка: указанный почтовый ящик (пользователь) отсутствует

Литература

  • Рекомендация Q.1912.5 (01/2018): Взаимодействие протокола установления сеанса (SIP) и независимого от среды передачи протокола управления вызовами или пользовательской частью ISDN = Q.1912.5 Recommendation (01/2018): Interworking between session initiation protocol (SIP) and bearer independent call control protocol or ISDN user part / International Telecommunication Union (ITU), Telecommunication Standardization Sector of ITU. — Geneva: Printed in Switzerland, 2018. — 200 p. — (Series Q: Switching and Signalling, and Associated Measurements and Tests).
  • Рекомендация Q.850 (10/2018): Применение причины и локации в цифровой абонентской сигнализации №1 и в системе сигнализации №7 абонентской части ISDN = Q.850 Recommendation (10/2018): Usage of cause and location in the Digital Subscriber Signalling System No. 1 and the Signalling System No. 7 ISDN user part / International Telecommunication Union (ITU), Telecommunication Standardization Sector of ITU. — Geneva: Printed in Switzerland, 2018. — 30 p. — (Series Q: Switching and Signalling, and Associated Measurements and Tests).
  • Д. Дэвис, Д. Барбер, У. Прайс, С. Соломонидес. Протоколы и интерфейсы связи (гл. 6) // Вычислительные сети и сетевые протоколы = Computer Networks and their Protocols / Пер. с англ. под ред. д.т.н, проф. С. И. Самойленко. — М.: «Мир», 1982. — С. 224—317. — 562 с. — 10,000 экз.
  • Петер Боккер. ISDN. Цифровая связь с интеграцией служб : Понятия, методы, системы / Пер. с нем. Э. Б. Ершова, Э. В. Кордонский. — М. : Радио и связь, 1991. — 300 с. — ISBN 5-256-00677-0.
  • Б.С. Гольдштейн, А.А. Зарубин, В.В. Саморезов. Протокол SIP. Справочник. — СПб.: «БХВ-Петербург», 2014. — 456 с. — («Телекоммуникационные протоколы ВСС РФ»). — ISBN 978-5-9775-1593-1.
  • И. В. Баскаков, А. В. Пролетарский, С. А. Мельников, Р. А. Федотов. IP-телефония в компьютерных сетях: учебное пособие. — 4-е изд. — М.: Интернет-Университет Информационных Технологий (ИНТУИТ), Ай Пи Ар Медиа, 2024. — 226 с. — ISBN 978-5-4497-2404-5.

Ссылки

Примечания

  1. 1 2 Q.850, 2018.
  2. Виртуальная АТС. Маршрутизация телефонных вызовов. © 2025 ELTEX ECSS. Дата обращения: 16 ноября 2025.
  3. 1 2 Справочник по SIP, 2014.
  4. RFC 3261 "SIP: Session Initiation Protocol", авторы J. Rosenberg, H. Schulzrinne, G. Camarillo и др. (англ.). IETF. Дата обращения: 15 ноября 2025.
  5. Q.1912.5, 2018.
  6. Настройка и тонкости соответствий Q.850-cause и SIP-reply (30.03.2023). Компания Eltex. Дата обращения: 16 ноября 2025.
  7. Выч. сети и сетевые протоколы, 1982, с. 225.
  8. File transfer protocol (FTP), авторы J. Postel, J. Reynolds (англ.). datatracker.ietf.org. Дата обращения: 15 ноября 2025.
  9. HTTP response status codes. mozilla.org. Дата обращения: 11 января 2024. Архивировано 11 января 2024 года.
  10. Simple Mail Transfer Protocol, автор J. Klensin (англ.). datatracker.ietf.org. Дата обращения: 15 ноября 2025.
  11. Understanding debug isdn q931 Disconnect Cause Codes (англ.). ©2025 Cisco Systems, Inc. Дата обращения: 15 ноября 2025.

См. также