- •1 Назначение и принципы протокола SIP
- •Назначение и принципы протокола SIP
- •Согласно принципам семиуровневой модели Взаимодействия открытых систем OSI (Open Systems Interconnection) особенностью протокола
- •В основу протокола положены следующие принципы:
- •Масштабируемость сети
- •Персональная мобильность пользователей.
- •Расширяемость протокола
- •Интеграция в стек существующих протоколов Интернет
- •Взаимодействие с другими протоколами сигнализации
- •Протокол SDP
- •Знаком «*» обозначены необязательные поля. Поля, используемые в протоколе:
- •Описание параметров времени
- •ЗАПРОС
- •Терминал
- •Сервер
- •Прокси-сервер
- •Предусмотрено два типа прокси-серверов - с
- •Сервер переадресации
- •Сервер определения местоположения пользователей
- •ЗАПРОС
- •Request-URI
- •Существует 6 основных видов запросов:
- •3 Запрос CANCEL отменяет обработку ранее переданных запросов с теми же, что и
- •После испытаний протокола SIP в реальных сетях
- •ОТВЕТ
- •Reason-Phrase даёт краткое описание кода ответа и предназначена для визуального восприятия пользователем.
- •Определено шесть классов ответов. Все ответы делятся на два типа: информационные и окончательные.
- •Информационные или предварительные ответы (1xx)
- •Ответы успешной обработки запроса (2xx)
- •SIP-Ответы успешной обработки запроса.
- •Ответы перенаправления вызова (3xx)
- •SIP-ответы перенаправления вызова.
- •302 Moved Temporarily. Вызываемый пользователь временно изменил свое
- •Ответы ошибки в запросе (4xx)
- •Ответы отказа сервера (5xx)
- •SIP-ответы отказа сервера.
- •Ответы полной невозможности установления соединения (6xx)
- •Адресация в сетях SIP
- •Заголовки сообщений
- •Заголовок Call-ID - уникальный идентификатор сеанса связи
- •Реализация услуг телефонии на базе протокола SIP
- •Процедура управления соединением
- •Эти заголовки обязательны для всех SIP-запросов. Они являются основными частями SIP-сообщения, поскольку обеспечивают
- •Если запрос принимается , должны быть произведены любые связанные с ним изменения состояния
- •5 Обработка заголовка Require.Поле этого заголовка используется UAC, чтобы сообщить UAS о расширениях,
- •Установление соединения с участием прокси-сервера
- •1 INVITE Anton Прокси-сервер1
- •INVITE sip:vladimir@protei.ru SIP/2.0
- •Max-Forwards: 70
- •Call-ID: 3848276298220188511@niits.ru
- •Порядковый
- •Content-Type: application/sdp
- •Content-Length: 151
- •SIP/2.0 407 Proxy Authorization Required
- •Call-ID: 3848276298220188511@niits.ru
- •Запрос ACK должен содержать значения заголовков Call-ID, From, и поля Request-URI, идентичные тем,
- •Proxy1 выполняя следующие шаги: 1Создаёт копию полученного запроса.
- •Proxy2 добавляет в сообщение свой заголовок Via:
- •Местоположение вызываемого пользователя определено. Вызываемый пользователь получает сигнал о входящем вызове от своего
- •11 180 (Ringing)
- •Демонстрационная часть
- •К IP-сети подключены два абонента с sip- адресами:
- •Вызываемый пользователь временно изменил свое местоположение и может быть найден по адресу, указанному
- •INVITE
- •На этом изучение теоретического материала заканчивается.
Request-URI
Указывает на пользователя или сервис, к которому адресован данный запрос. Поле Request- URI не должно содержать пробелов и управляющих символов, а также быть заключённым в угловые скобки «<>».
Версия протокола
И запросы, и ответы содержат действующую версию SIP-протокола, принимая во внимание порядок, соответствие требованиям и изменение численного индекса версии. Приложения, посылающие SIP-сообщения, должны в поле SIP- Version указывать "SIP/2.0". Поле SIP-Version регистронезависимо, однако при разработке оборудования рекомендуется использовать верхний регистр.
Существует 6 основных видов запросов:
1 Запрос INVITE приглашает пользователя принять участие в сеансе связи. Он обычно содержит описание сеанса связи, в котором указывается вид принимаемой информации и параметры (список возможных вариантов параметров), необходимые для приема информации, а также может указываться вид информации, которую вызываемый пользователь желает передавать.
2 Запрос АСК подтверждает прием ответа на запрос INVITE. Запрос АСК используется только совместно с запросом INVITE, т.е. этим сообщением оборудование вызывающего пользователя показывает, что оно получило окончательный ответ на свой запрос INVITE. В сообщении АСК может содержаться окончательное описание сеанса связи, передаваемое вызывающим пользователем.
3 Запрос CANCEL отменяет обработку ранее переданных запросов с теми же, что и в запросе CANCEL, значениями полей Call-ID, To, From и CSeq, но не влияет на те запросы, обработка которых уже завершена.
4 Запросом BYE оборудование вызываемого или вызывающего пользователя завершает соединение. Сторона, получившая запрос BYE, должна прекратить передачу речевой (мультимедийной) информации и подтвердить его выполнение ответом 200 ОК.
5 Запрос REGISTER используется для уведомления |
||
сервера-местоположения о текущем положении |
||
пользователя. |
|
|
6 Запрос OPTIONS используется вызываемым |
||
пользователем для запроса информации о |
||
функциональных |
возможностях |
терминального |
оборудования вызываемого пользователя. |
После испытаний протокола SIP в реальных сетях
оказалось, что для решения ряда задач вышеуказанных шести типов запросов недостаточно. Поэтому были разработаны еще ряд запросов:
7 Запрос INFO предназначен для обмена дополнительной информацией прикладного уровня по сигнальному тракту в процессе установления и поддержания соединения.
8 Запрос PRACK применяется для надежной транспортировки предварительных ответов.
9 Запрос UPDATE используется для обновления параметров сеанса без воздействия на состояние диалога.
10 Запрос SUBSCRIBE используется для запроса информации о текущем состоянии и информации об обновлениях состояния удаленного ресурса.
11 Запрос NOTIFY сообщает агенту пользователя, который передал запрос SUBSCRIBE, текущее состояние ресурса и уведомляет о том, что интересующее его событие произошло.
12 Запрос REFER предписывает получателю связаться с третей стороной, используя контактную информацию, которая содержится в сообщении.
13 Запрос MESSAGE используется для переноса мгновенных текстовых сообщений.
Назад
ОТВЕТ
Отличием SIP-ответов от запросов является наличие строки Status-Line в стартовой строке.
Структура строки Status-Line.
Версия |
|
Пробел |
Status-Сode |
Пробел |
Reason- |
CTRL |
протокола |
|
Phrase |
||||
|
|
|
|
|
|
|
Status-Сode - код ответа – это целое трёхзначное число, отражающее результат обработки запроса сервером, который служит для оповещения технических устройств.
Reason-Phrase даёт краткое описание кода ответа и предназначена для визуального восприятия пользователем.
Первая цифра кода ответа определяет класс ответа. Оставшиеся две цифры носят дополнительный характер и служат для упорядочивания кодов в пределах категории. В некоторых случаях оборудование даже необязательно знать все коды ответов, но оно обязательно должно интерпретировать первую цифру ответа.
Определено шесть классов ответов. Все ответы делятся на два типа: информационные и окончательные. Информационные ответы кодируются трехзначным числом, начинающимся с единицы -1хх. Окончательные ответы кодируются трехзначными числами, начинающимися с цифр 2, 3, 4, 5 и 6. Все они означают завершение обработки запроса, а каждый из них в отдельности - результат обработки запроса.
Содержание |
Информационные или предварительные ответы (1xx)
Информационные или предварительные ответы содержат информацию о том, что запрашиваемый сервер находится на стадии выполнения действий по обработке запроса и не может в данный момент выдать окончательный ответ. Сервер посылает ответ класса 1хх, если он предполагает, что формирование окончательного запроса займёт более 200 мс.
Назад |
Таблица |
|
Информационные ответы |
|
|
|
протокола SIP . |
|
|
Код |
Назначение |
|
|
|
|||
|
|
||
100 |
Trying. Запрос обрабатывается. Например, сервер обращается к базе данных, но |
||
местоположение вызываемого пользователя в настоящий момент не определено. |
|||
|
Этот ответ так же, как и прочие предварительные ответы, пресекает повторные |
||
|
посылки сообщения INVITE клиентом. От остальных 1хх ответов, его отличает |
||
|
то, что он не может быть пропущен stateful прокси-сервером. |
Будет, вероятнее всего, передаваться от прокси-сервера или другого промежуточного SIP-сервера в сигнальном тракте соединения.
180 |
Ringing. Местоположение вызываемого пользователя определено. Вызываемый |
пользователь получает сигнал о входящем вызове от своего UA. |
181 |
Call Is Being |
Forwarded. Прокси-сервер переадресует вызов к другому |
пользователю. |
Если прокси-сервер передает этот ответ, он может также |
|
|
указывать в теле сообщения, к какому пользователю он переадресует вызов. |
182 |
Queued. Вызываемый пользователь временно не доступен, но входящий |
вызов поставлен в очередь. Когда вызываемый пользователь станет |
|
|
доступен, он передаст окончательный ответ. Reason-Phrase может дать |
|
более детальное описание текущего состояния вызова, например, «В |
|
очереди находится 5 вызовов. Предполагаемое время ожидания 15 |
|
минут». Сервер периодически будет посылать ответы 182 (Queued) для |
|
информирования вызывающего пользователя о статусе вызова, |
|
находящегося в очереди. |
183 |
Session Progress. Этот ответ используется для того, чтобы заранее |
|
получить описание сессии информационного обмена от шлюзов на пути |
||
|
к вызываемому пользователю таким образом, чтобы мог быть |
|
|
проключен речевой тракт в предответном состоянии ещё до того, как |
|
|
вызывающий |
пользователь получит сигнал КПВ. Этот ответ |
|
используется, например, при взаимодействии протокола SIP с сетью |
|
|
ТфОП, при котором передача ответа Session Progress с SDP-описанием |
|
|
шлюза ТфОП позволяет входящей АТС послать сигнал КПВ. Среди |
|
|
других вариантов использования этого ответа – воспроизведение |
|
|
приветственного объявления или музыкальной фразы при входе в |
|
|
домен перед установлением соединения. |
Назад