Обработка запроса OPTIONS |
|
Ответ на запрос OPTIONS формируется с использованием стандартных для UAS правил формирования SIP-ответа. Код ответа должен быть выбран так же, как при поступлении запроса INVITE, т.е. - 200 (ОК), если UAS готов принять вызов, 486 (Busy Here), если UAS занят, и т.д. Это позволяет использовать запрос OPTIONS еще и для определения общего состояния UAS - результат обработки OPTIONS указывает, сможет ли UAS принять запрос INVITE. Запрос OPTIONS, полученный в ходе диалога, приводит к созданию ответа с кодом 200 (ОК), который идентичен аналогичному ответу, передаваемому вне диалога, и не оказывает влияния на состояние диалога. Несмотря на то, что так же, как INVITE, запрос OPTIONS может передаваться вне диалога, при размножении запросов прокси-сервером нанего может придти только один ответ с кодом 200 (ОК) (на INVITE их может прийти несколько - по одному с каждого направления). Это происходит потому, что только запрос INVITE обладает особым статусом при обработке прокси-серверами, запросы остальных типов обрабатываются по общему механизму. Если запрос OPTIONS предназначен прокси-серверу, то он создает ответ с кодом 200 (ОК), указывающий функциональные возможности прокси-сервера. При этом ответ не содержит тела сообщения. В ответе 200 (ОК) на OPTIONS должны присутствовать заголовки Allow, Accept, Accept-Encoding, Accept-Language и Supported. Если ответ создается прокси-сервером, заголовок Allow, указывающий поддерживаемые типы запросов, исключается за ненадобностью. Заголовок Contact может присутствовать в ответе 200 (ОК); при этом он будет иметь ту же семантику, что и ответе класса Зхх, т.е. он будет включать в себя список адресов, по которым предположительно можно связаться с требуемым пользователем. Может также присутствовать заголовок Warning. Сообщение может содержать тело сообщения, тип которого указан в заголовке Accept полученного запроса OPTIONS (в случае отсутствия заголовка Accept по умолчанию устанавливается тип application/sdp). Если среди типов тел сообщения в заголовке Accept запроса OPTIONS содержится тип, который предназначен для описания функциональных возможностей в части медиа-информации, UAS должен передать в ответе тело именного этого типа с указанными функциональными возможностями. Пример ответа UAS на запрос OPTIONS представлен ниже (тело сообщения в примере не показано).
|

