Код ответа
Код ответа, Код причины завершения или Код возврата (в англоязычной литературе также Cause code, Reason code, Status code, Disconnect code и т. д.) — в телекоммуникациях и программном обеспечении — цифровой код, сформированный узлом в результате выполнения запроса, который характеризует то или иное событие протокола или технологии, произошедшее на отвечающей стороне: успешное или неуспешное выполнение и т. д. Нередко коды ответа сопровождаются лаконичным комментарием на английском языке, а в ответном сообщении вместе с цифровым кодом и его расшифровкой может передаваться другая необходимая информация (например, запрошенные данные).
Получив код ответа, автор запроса может сделать выводы о характере события и продолжить работу или завершить её, согласно ситуации. Коды ответа очень часто используется в архитектуре клиент-сервер, однако применение не ограничивается только ей и могут использоваться для взаимодействия равнозначных узлов/приложений в рамках соответствующего протокола.
В зависимости от сферы применения коды завершения могут быть общепринятыми и узкоспециальными. Однако в подавляющем большинстве случаев разработчики стандартизируют коды ответов своих проектов и предоставляют полноценные описания причины каждого события, в результате которого может быть получен тот или иной ответ с цифровым кодом. В протоколах, сходных по назначению, могут применяться одинаковые коды, хотя в большинстве случаев, цифровые коды возврата уникальны для каждой технологии или протокола.
Знание кодов ответа и ошибок позволяет пользователям, разработчикам и обслуживающему персоналу системы эффективно заниматься анализом проблем (при условии, что возможно сохранение лога работы протокола). Также для отладки может пригодиться анализатор трафика (например, Wireshark).
Коды ответов станций в телефонной связи
В телефонной сигнализации, обеспечивающей коммутацию вызова и все процедуры, связанные с его установлением, изменением состояния и завершением, применяются общепринятые стандартные коды ответов на запросы.
Традиционная телефония ТФОП
Код завершения вызова и/или окончательного ответа станции на запрос сохраняется в подробную запись о вызове (CDR). Коды ответов узлов, станций и абонентского оборудования в традиционной телефонии описываются в стандарте Q.850 для ISUP сети ОКС-7 и в Q.931 для ISDN.
Обычно на коммутаторе можно настроить, какой звук (голосовое уведомление, СИТ-тон) будет проигрываться абоненту для каждого кода завершения, когда абонент недоступен, абонент занят, сеть перегружена и т. п.
Примеры кодов ответов:
Код | Значение | Пояснение |
---|---|---|
16 | Normal call clearing | Нормальное завершение вызова |
17 | User busy | Абонент занят |
22 | Number changed | Номер изменён |
28 | Invalid Number Format (address incomplete). | Вызываемый номер не соответствует принятому формату или не полон. |
101 | The Message is Not Compatible with the Call State. | Полученное сообщение несовместимо с состоянием вызова. |
Сотовая связь
На мобильных коммутаторах кроме технического цифрового кода ответа по завершении попытки вызова, применяются голосовые уведомления, информирующие абонента о том, что вызов не может быть совершён по любой из ряда причин, начиная от локальной перегрузки, заканчивая недоступностью или отключением устройства абонента, ошибками набора номера или неполадками сотовой сети.
Некоторые называют это явление автоответчиком. Это не совсем корректно, так как автооответчик — это возможность или услуга реализуемая на уровне пользовательского номера (вызываемого номера), а не функция коммутатора для уведомления о недоступности номера.
IP-телефония
Код завершения вызова и/или окончательного ответа станции на запрос так же, как и в традиционной телефонии, сохраняется в подробную запись о вызове (CDR). Так как коды разных протоколов могут различаться, в мультипротокольных продуктах NGN операторам связи нередко приходится решать задачу адекватного сопоставления кодов ответа станции одного протокола кодам соответствия другого (сообщения из SIP в H.323 или ISDN и наоборот), это называется трансляцией кодов (или mapping).
H.323
Оборудование и программное обеспечение H.323 завершает вызовы с кодами ответов, соответствующие стандарту Q.931, так как данный стек протоколов разрабатывался для максимального соответствия ISDN и многие моменты организации взаимодействия сторон унаследованы из цифровой телефонии. (Примеры смотри выше)
SIP
SIP — Протокол установления сеанса, следуя принципу упрощения запросов и ответов в рамках телефонного вызова, унаследовал структуру ответов и их виды от протокола HTTP.
Примеры кодов ответов:
Код | Значение | Пояснение |
---|---|---|
180 | Ringing | Уведомление о начале вызова на стороне вызываемого оборудования, соответствует длинному звуковому сигналу (КПВ) в телефонии |
200 | OK | Стандартный ответ, подтверждающий согласие на действие по запросу |
404 | Not found | Вызываемый абонент не найден |
487 | Request terminated | Инициатор вызова завершил попытку установить связь до соединения с вызываемым абонентом |
603 | Decline | Означает, что вызываемая сторона отклонила входящий вызов |
Коды ответов в сетевых приложениях
В приложениях код ответа является частью взаимодействия администратора и системы.
Передача файлов (FTP)
FTP является одним из старейших прикладных клиент-серверных протоколов, предназначенным для передачи файлов в компьютерных сетях, в котором команды и коды ответа сервера являются стандартизированными и популярными.
Примеры кодов ответов:
Код | Значение | Пояснение |
---|---|---|
220 | FTP server ready | Сервер готов обрабатывать запросы |
230 | Login successful | Пользователь успешно подключился |
150 | Ok to send data | Согласие принимать данные от пользователя |
226 | File receive OK | Файл передан успешно |
Взаимодействие с веб-сервером (HTTP)
Код состояния HTTP является частью первой строки ответа веб-сервера на действия пользователя. Клиент узнаёт по коду ответа о результатах его запроса и определяет, какие действия ему предпринимать дальше. Набор кодов состояния является стандартом, и они описаны в соответствующих документах (один из последних RFC 2616).
Примеры кодов ответов:
Код | Значение | Пояснение |
---|---|---|
202 | Accepted | Запрос был принят на обработку, но обработка не завершена. |
400 | Bad Request | Сервер обнаружил в запросе клиента синтаксическую ошибку. |
401 | Unauthorized | Запрос требует идентификации пользователя. |
403 | Forbidden | Сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе со стороны клиента к указанному ресурсу. |
404 | Not Found | Сервер понял запрос, но не нашёл соответствующего ресурса по указанному адресу. |
Отправка сообщений электронной почты (SMTP)
Почта по протоколу SMTP посылается от клиента к серверу. Клиент запрашивает соединение с сервером и выполняет различные команды. Почтовый сервер (MTA) реагирует на запросы и выдаёт соответствующие ответы.
Примеры кодов ответов:
Код | Значение | Пояснение |
---|---|---|
220 | Service Ready | Почтовый сервер готов к обслуживанию (может отправляться вместе с доменным именем сервера и версией ПО) |
250 | OK | Команда принята и обработана |
550 | No such user here | Ошибка: указанный почтовый ящик (пользователь) отсутствует |