Код ответа (также: код причины завершения или код возврата), в англоязычной литературе: cause code, reason code, status code, disconnect code, disconnect reason и т. д. — в телекоммуникациях и программном обеспечении — цифровой код, сформированный узлом или процессом в результате выполнения запроса, который характеризует то или иное событие протокола или технологии, произошедшее на отвечающей стороне: успешное или неуспешное выполнение и т. д. Нередко коды ответа сопровождаются лаконичным комментарием на английском языке, а в ответном сообщении вместе с цифровым кодом и его расшифровкой может передаваться другая необходимая информация (например, запрошенные данные).
Получив код ответа, автор запроса может сделать выводы о характере события и продолжить работу или завершить её, согласно ситуации. Коды ответа очень часто используется в архитектуре клиент-сервер, однако применение не ограничивается только ей и могут использоваться для взаимодействия равнозначных узлов/приложений в рамках соответствующего протокола.
В зависимости от сферы применения коды завершения могут быть общепринятыми и узкоспециальными. Однако в подавляющем большинстве случаев разработчики стандартизируют коды ответов своих проектов и предоставляют полноценные описания причины каждого события, в результате которого может быть получен тот или иной ответ с цифровым кодом. В протоколах, сходных по назначению, могут применяться одинаковые коды, хотя в большинстве случаев, цифровые коды возврата уникальны для каждой технологии или протокола.
Знание кодов ответа и ошибок позволяет пользователям, разработчикам и обслуживающему персоналу системы эффективно заниматься анализом проблем (при условии, что возможно сохранение лога работы протокола). Также для отладки может пригодиться анализатор трафика (например, Wireshark).
Коды ответов станций в телефонной связи В телефонной сигнализации, обеспечивающей коммутацию вызова и все процедуры, связанные с его установлением, изменением состояния и завершением, применяются общепринятые стандартные коды ответов на запросы. В профессиональной речи используется также выражение «код отбоя».
Традиционная телефония ТФОП
Код завершения вызова и/или окончательного ответа станции на запрос сохраняется в подробную запись о вызове (CDR). Коды ответов узлов, станций и абонентского оборудования в традиционной телефонии описываются в стандарте Q.850 для абонентской сигнализации DSS1 и ISUP сети ОКС-7 и в Q.931 для ISDN.
Обычно на коммутаторе можно настроить, какой звук (голосовое уведомление, СИТ-тон) будет проигрываться абоненту для каждого кода завершения, когда абонент недоступен, абонент занят, сеть перегружена и т. п. Если направлений (маршрутов или по другой терминологии транк-групп) к абоненту больше одного, то станцию обычно настраивают так, что если при попытке установления соединения с абонентом получен код о недоступности запрашиваемого направления (например из-за перегрузки — No circuit/channel available, № 34), то она не отобьёт вызов, но запросит альтернативное направление, и если оно доступно, то соединение будет установлено через него.
Примеры кодов ответов: КодЗначениеПояснение16Normal call clearingНормальное завершение вызова17User busyАбонент занят22Number changedНомер изменён28Invalid Number Format (address incomplete).Вызываемый номер не соответствует принятому формату или не полон.34No circuit/channel availableНет доступного канала101The 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.
Примеры кодов ответов: КодЗначениеПояснение180RingingУведомление о начале вызова на стороне вызываемого оборудования, соответствует длинному звуковому сигналу (КПВ) в телефонии200OKСтандартный ответ, подтверждающий согласие на действие по запросу404Not foundВызываемый абонент не найден487Request terminatedИнициатор вызова завершил попытку установить связь до соединения с вызываемым абонентом603DeclineОзначает, что вызываемая сторона отклонила входящий вызов
Межсетевое взаимодействие Отдельным вопросом является взаимодействие сетей с разными протоколами и, как правило, отличающимися причинами отбоя, например между SIP и ISDN: при отбое вызова на стороне ISDN каким-либо кодом Q.850 на стороне SIP должен быть получен релевантный SIP-ответ и то же самое в обратном направлении.
Коды ответов в сетевых приложениях В приложениях код ответа является частью взаимодействия администратора и системы; в общем плане — между как минимум двумя процессами согласно предварительно разработанной процедуре, называемой протоколом.
Передача файлов (FTP)
FTP является одним из старейших прикладных клиент-серверных протоколов, предназначенным для передачи файлов в компьютерных сетях, в котором команды и коды ответа сервера являются стандартизированными и популярными.
Примеры кодов ответов: КодЗначениеПояснение220FTP server readyСервер готов обрабатывать запросы230Login successfulПользователь успешно подключился150Ok to send dataСогласие принимать данные от пользователя226File receive OKФайл передан успешно
Взаимодействие с веб-сервером (HTTP)
Код состояния HTTP является частью первой строки ответа веб-сервера на действия пользователя. Клиент узнаёт по коду ответа о результатах его запроса и определяет, какие действия ему предпринимать дальше. Набор кодов состояния является стандартом, и они описаны в соответствующих документах (один из последних RFC 2616).
Примеры кодов ответов: КодЗначениеПояснение202AcceptedЗапрос был принят на обработку, но обработка не завершена.400Bad RequestСервер обнаружил в запросе клиента синтаксическую ошибку.401UnauthorizedЗапрос требует идентификации пользователя.403ForbiddenСервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе со стороны клиента к указанному ресурсу.404Not FoundСервер понял запрос, но не нашёл соответствующего ресурса по указанному адресу.
Отправка сообщений электронной почты (SMTP)
Почта по протоколу SMTP посылается от клиента к серверу. Клиент запрашивает соединение с сервером и выполняет различные команды. Почтовый сервер (MTA) реагирует на запросы и выдаёт соответствующие ответы.
Примеры кодов ответов: КодЗначениеПояснение220Service ReadyПочтовый сервер готов к обслуживанию (может отправляться вместе с доменным именем сервера и версией ПО)250OKКоманда принята и обработана550No such user hereОшибка: указанный почтовый ящик (пользователь) отсутствует
Литература
Ссылки О кодах причин разъединения в ISDN Q.931; Причины отбоя в ISUP (на англ. яз.) Настройка и тонкости соответствий Q.850-cause и SIP-reply
Примечания
См. также Телефонная сигнализация Контроль посылки вызова Call Detail Record Лог-анализатор Код ошибки
Категория:Сетевые стандарты Категория:Компьютерные ошибки Категория:Отладка программ Категория:Телефонная_сигнализация