- •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
- •На этом изучение теоретического материала заканчивается.
5 Обработка заголовка Require.Поле этого заголовка используется UAC, чтобы сообщить UAS о расширениях, которые тот должен поддерживать для правильной обработки запроса. Если UAS не понимает какого-либо из расширений он отправляет ответ с кодом 420 и список непонятных ему опций, указанных в заголовке Require.
6 Обработка содержимого тела сообщения. Сервер изучает тело сообщения и поля заголовков, которые описывают его. Если в сообщении содержится тело с непонятным типом, языком или кодеком, и это тело является обязательным, UAS должен отбросить запрос и отправить ответ с кодом 415.
Основное правило состоит в том, что UAS должен передавать предварительные ответы только на запрос INVITE и создавать как можно быстрее окончательные ответы на все запросы, кроме INVITE.
Содержание |
Установление соединения с участием прокси-сервера
В представленном сценарии установления соединения Anton вызывает пользователя Vladimir с использованием двух прокси-серверов – Proxy1 и Proxy2. Первоначально запрос INVITE содержит в заголовке Route предустановленный маршрут с адресом Proxy1. Запрос не содержит информации аутентификации (т.е. система проверки прав или личности пользователя, необходимая для обеспечения безопасности работы сети), поэтому Proxy1 передает ответ с кодом 407, содержащий запрос подтверждения подлинности.
Затем передается новый запрос INVITE, содержащий надлежащий отклик аутентификации, и происходит установление соединения. Соединение разрушается, когда Vladimir отсоединяется и передает сообщение BAY.
Содержание |
|
|
Запрос на установление |
|
|
|
|
|
||
|
|
соединения. В теле |
|
|
|
|
Vladimir |
||
Proxy1 |
сообщения указываются |
|
|
|
|
||||
запрашивает |
возможности |
|
Запрос успешно выполнен. |
|
|
||||
аутентификаци |
Запрос на |
Ответ 200 на |
запрос INVITE |
|
|||||
|
|
означает, |
что |
вызываемый определено. |
|||||
|
|
Подтверждение |
пользователь |
|
согласен |
|
|||
2 |
|
принять |
участие |
в сеансе |
получает |
||||
|
приема ответа. |
||||||||
|
связи, |
в |
теле |
ответа |
|||||
3 |
|
|
|
вызове |
|||||
|
аутентификацииуказываются |
возможности |
|||||||
4 |
|
Запрос |
|
оборудования |
вызываемого |
|
|||
|
|
пользователя. |
|
|
|
|
|||
6 |
|
обрабатывается. |
|
|
|
|
|||
Подтверждение |
|
|
|
|
|
|
|
||
|
10 |
|
|
|
12 |
200 |
|
||
|
Подтверждение |
13 |
200 |
|
|
|
|||
завершение вызова, в |
|
|
|
|
|
||||
|
теле ответа не |
16 |
ACK |
|
|
Завершение |
|||
переносится никакой |
|
|
соединения. |
||||||
|
информации. |
|
|
|
|
|
|
|
|
|
|
Разговорная фаза |
|
|
|
|
|||
|
|
|
19 |
BYE |
|
|
18 |
BYE |
|
|
|
|
|
|
|
|
|
||
21 |
200 |
|
22 |
200 |
|
|
23 |
200 |
|
1 INVITE Anton Прокси-сервер1
Request-Line
INVITE sip:vladimir@protei.ru SIP/2.0
Via: SIP/2.0/TCP serv1.niits.ru:5060;branch=z9hG4bK74b43 Max-Forwards: 70
Route: <sip:ss1.niits.ru;lr>
From: “Anton” <sip:anton@niits.ru>;tag=9fxced76sl To: “Vladimir” <sip:vladimir@protei.ru>
Call-ID: 3848276298220188511@niits.ru CSeq: 1 INVITE
Contact: <sip:anton@serv1.niits.ru;transport=tcp> Content-Type: application/sdp
Content-Length: 151
ПУСТАЯ СТРОКА
o=anton 2890844526 2890844526 IN IP4 serv1.niits.ru s=-
c=IN IP4 192.0.2.101 t=0 0
m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000
Заголовок
сообщения
Для получения более полной информации нажмите на интересующую вас строку.
Тело
сообщения
Рисунок
INVITE sip:vladimir@protei.ru SIP/2.0
|
Request-URI |
|
Версия |
|
Указывает пользователя, |
|
протокола. |
Тип |
к которому адресован |
|
|
запрос. |
|
|
|
запроса. |
|
|
|
Anton посылает запрос INVITE для установления соединения с Vladimirом, адрес которого vladimir@protei.ru.
Назад
Via: SIP/2.0/TCP serv1.niits.ru:5060;branch=z9hG4bK74b43
Данное поле заголовка указывает один из узлов проведения транзакции [в данном примере serv1.ru] и идентифицирует место, куда должен быть отправлен ответ.
Параметр branch служит для идентификации транзакции, созданной запросом. Значение данного параметра должно быть универсально для всех запросов передаваемых UA. Для сети SIP он разделен на две части: первая всегда начинается с ‘z9hG4bK’, вторая вырабатывается каждым прокси-сервером для избежания петель.
Назад
Max-Forwards: 70
Служит для ограничения числа узлов, через которые может пройти запрос. При получении запроса сервер проверяет содержимое данного заголовка. Если содержимое равно нулю, то прокси-сервер не должен пересылать запрос.
Назад
Route: <sip:ss1.niits.ru;lr>
Служит |
для |
|
Запрос INVITE от |
|
принудительной |
|
Anton |
будет |
|
маршрутизации |
|
направлен |
на |
|
запросов. |
|
|
прокси-сервер1. |
|
|
|
|
|
|
Назад
From: “Anton” <sip:anton@niits.ru>;tag=9fxced76sl
Содержит |
|
SIP |
адрес |
|
Параметр ‘tag’ |
|
|||||
логический |
|
|
указывает один |
||
идентификатор |
|
отправителя. |
|
определенный |
|
инициатора |
|
|
|
|
из терминалов |
сообщения. |
|
|
|
|
вызывающего |
|
|
|
|
|
пользователя. |
|
|
|
|
|
|
Anton- высветится на терминалах Anton и Vladimir, как имя вызывающего абонента.
Назад
To: “Vladimir” <sip:vladimir@protei.ru>
Определяет нужного логического получателя запроса. Данное поле заполняется через интерфейс пользователя вручную или с использованием адресной книги.
SIP адрес получателя.
Vladimir-высветится на терминалах Anton и Vladimir, как имя вызываемого абонента.
Назад