Цель лекции: ознакомление с сообщениями протокола SIP.
Согласно архитектуре «клиент-сервер» все сообщения делятся на запросы, передаваемые от клиента к серверу, и на ответы сервера клиенту. Например, чтобы инициировать установление соединения, вызывающий пользователь должен сообщить серверу ряд параметров, в частности, адрес вызываемого пользователя, параметры информационных каналов и др. Эти параметры передаются в специальном SIP-запросе. От вызываемого пользователя к вызывающему передается ответ на запрос, также содержащий ряд параметров.
Все сообщения протокола SIP (запросы и ответы), представляют собой последовательности текстовых строк. Структура и синтаксис сообщений SIP идентичны используемым в протоколе HTTP. На рисунке 8.1 представлена структура сообщений протокола SIP.
Рисунок 8.1 – Структура сообщений протокола SIP
Стартовая строка представляет собой начальную строку любого SIP-сообщения. Если сообщение является запросом, в этой строке указываются тип запроса, адресат и номер версии протокола. Если сообщение является ответом на запрос, в стартовой строке указываются номер версии протокола, тип ответа и его короткая расшифровка, предназначенная только для пользователя.
Заголовки сообщений содержат сведения об отправителе, адресате, пути следования и др., в общем, переносят информацию, необходимую для обслуживания данного сообщения. О типе заголовка можно узнать по его имени. Оно не зависит от регистра (т.е. буквы могут быть прописные и строчные), но обычно имя пишут с большой буквы, за которой идут строчные.
Сообщения протокола SIP могут содержать так называемое тело сообщения. В запросах АСК, INVITE и OPTIONS тело сообщения содержит описание сеансов связи, например, в формате протокола SDP. Запрос BYE тела сообщения не содержит. Любые ответы могут содержать тело сообщения, но содержимое тела в них бывает разным.
В протоколе SIP определено четыре вида заголовков:
- общие заголовки, присутствующие в запросах и ответах;
- заголовки содержания, переносят информацию о размере тела сообщения или об источнике запроса (начинаются со слова);
- заголовки запросов, передающие дополнительную информацию о запросе;
- заголовки ответов, передающие дополнительную информацию об ответе.
Заголовок содержит название, за которым, отделенное двоеточием, следует значение заголовка. В поле значения содержатся передаваемые данные. Следует отметить, что если сервер принимает сообщения, заголовки которых ему не известны, то эти заголовки игнорируются.
С помощью запросов клиент сообщает о текущем местоположении, приглашает пользователей принять участие в сеансах связи, модифицирует уже установленные сеансы, завершает их и т.д. Сервер определяет тип принятого запроса по названию, указанному в стартовой строке.
В протоколе SIP версии 2.0 существует 6 типов запросов, которыми обмениваются терминалы и серверы:
- INVITE – приглашает пользователя принять участие в сеансе. Он обычно содержит описание сеанса связи, в котором указывается вид принимаемой информации и параметры (список возможных вариантов параметров), необходимые для приема информации, а также может указываться вид информации, которую вызываемый пользователь желает передавать. В ответе на запрос типа INVITE указывается вид информации, которая будет приниматься вызываемым пользователем, и, кроме того, может указываться вид информации, которую вызываемый пользователь собирается передавать (возможные параметры передачи информации). В этом сообщении могут содержаться также данные, необходимые для аутентификации абонента, и, следовательно, доступа клиентов к SIP-серверу. При необходимости изменить характеристики уже организованных каналов передается запрос INVITE с новым описанием сеанса связи. Для приглашения нового участника к уже установленному соединению также используется сообщение INVITE;
- ACK подтверждает прием ответа на запрос INVITE. Следует отметить, что запрос АСК используется только совместно с запросом INVITE, т.е. этим сообщением оборудование вызывающего пользователя показывает, что оно получило окончательный ответ на свой запрос INVITE. В сообщении ACK может содержаться окончательное описание сеанса связи, передаваемое вызывающим пользователем;
- запрос CANCEL отменяет обработку ранее переданных запросов (используется в случае если необходимости в них больше нет). Например, запрос CANCEL применяется тогда, когда прокси-сервер размножает запросы для поиска пользователя по нескольким направлениям и в одном из них его находит. Обработку запросов, разосланных во всех остальных направлениях, сервер от, меняет при помощи сообщения CANCEL;
- запрос BYE осуществляет завершение соединения;
- запрос REGISTER пользователь сообщает свое текущее местоположение;
- запросом OPTIONS вызываемый пользователь запрашивает информацию о функциональных возможностях терминального оборудования вызываемого пользователя. В ответ на этот запрос оборудование вызываемого пользователя сообщает требуемые сведения. Применение запроса OPTIONS ограничено теми случаями, когда необходимо узнать о функциональных возможностях оборудования до установления соединения. Для установления соединения запрос этого типа не используется.
После приема и интерпретации запроса, адресат (прокси-сервер) передает ответ на этот запрос. Содержание ответов бывает разным:
- подтверждение установления соединения;
- передача запрошенной информации;
- сведения о неисправностях и т.д.
Структуру ответов и их виды протокол SIP унаследовал от протокола НТТР. Определено шесть типов ответов, несущих разную функциональную нагрузку. Тип ответа кодируется трехзначным числом. Первая цифра определяет класс ответа, остальные две цифры дополняют первую. В некоторых случаях оборудование даже может не знать все коды ответов, но оно обязательно должно интерпретировать первую цифру ответа. Два вида ответов – информационные и финальные. Информационные ответы показывают, что запрос находится в стадии обработки. Они кодируются трехзначным числом, начинающимся с единицы, – 1хх. Некоторые информационные ответы, например, 100 Trying, предназначены для установки на нуль таймеров, которые запускаются в оборудовании, передавшем запрос. Если к моменту срабатывания таймера ответ на запрос не получен, то считается, что этот запрос потерян и может быть передан повторно. Один из распространенных ответов – 180 Ringing; по назначению он идентичен сигналу «Контроль посылки вызова» в СТОП и означает, что вызываемый пользователь получает сигнал о входящем вызове.
Финальные ответы кодируются трехзначными числами, начинающимися с цифр 2, 3, 4, 5 и 6. Они означают завершение обработки запроса и содержат, когда это нужно, результат обработки запроса:
- «1» – информационные ответы;
- «2» – успешное окончание запроса;
- «3» – информация об изменения местоположения вызываемого абонента;
- «4» – информация об ошибке;
- «5» – информация об ошибке сервера;
- «6» – информация о невозможности вызова абонента (пользователя с таким адресом не существует, или пользователь отказывается принять вызов).
Информационные ответы сообщают о стадии выполнения запроса, они не являются завершением запроса. Остальные же классы ответов завершают выполнение запроса. Протоколом SIP предусмотрены 3 основных сценария установления соединения: с участием прокси-сервера, с участием сервера переадресации и непосредственно между пользователями. Различие между перечисленными сценариями заключается в том, что по-разному осуществляется поиск и приглашение вызываемого пользователя. Рассмотрим сценарий установления соединения через сервер переадресации.Администратор сети сообщает пользователям адрес сервера переадресации. Вызывающий пользователь передает запрос INVITE на известный ему адрес сервера переадресации. В запросе вызывающий пользователь указывает адрес вызываемого пользователя. Сервер переадресации запрашивает текущий адрес нужного пользователя у сервера определения местоположения, который сообщает ему этот адрес. Сервер переадресации в ответе 302 передает вызывающей стороне текущий адрес вызываемого пользователя, или он может сообщить список зарегистрированных адресов вызываемого пользователя и предложить вызывающему пользователю самому выбрать один из них. Вызывающая сторона подтверждает прием ответа 302 посылкой сообщения АСК(см. рисунок 8.2).
Рисунок 8.2 – Установления соединения через сервер переадресации
Дата добавления: 2015-10-09; просмотров: 1036;