Сообщение prack в sip

Обновлено: 05.07.2024

Протокол SIP — (Session Initiation Protocol) — протокол установления сеанса связи. Данный протокол является одним из основных, используемых в IP-телефонии. Он был разработан в 1996 году Марком Хэндли, Джонатаном Розенбергом и Хеннигом Шульцринном, в 1999 году была выпущена версия 1.0 (RFC 2543), затем протокол был доработан, и в 2002 году и принят в качестве протокола […]

Протокол SIP — (Session Initiation Protocol) — протокол установления сеанса связи. Данный протокол является одним из основных, используемых в IP-телефонии. Он был разработан в 1996 году Марком Хэндли, Джонатаном Розенбергом и Хеннигом Шульцринном, в 1999 году была выпущена версия 1.0 (RFC 2543), затем протокол был доработан, и в 2002 году и принят в качестве протокола сигнализации в мобильной телефонии (RFC 3261). SIP был изначально разработан только для работы с сеансами связи (установка/завершение/изменение), но не для передачи данных.Отметим некоторые особенности работы протокола SIP:

  • SIP является протоколом прикладного уровня и может использовать в качестве транспорта протоколы UDP, TCP, SCTP;
  • SIP позволяет устанавливать как одноадресные, так и многоадресные сеансы связи;
  • SIP использует регистрацию абонентов для установления сеанса;
  • SIP расширяем, за счет передачи параметров не в бинарном виде, а в виде текста;
  • SIP масштабируем и не имеет ограничений номерной базы, т.к. использует адресацию в стиле URI;
  • SIP модифицируем и позволяет изменять параметры созданных сессий, такие как адрес, номер порта, количество абонентов и количество медиапотоков.

Расположение протокола SIP в модели OSI

Расположение протокола SIP в модели OSI

Инфраструктура сетевых агентов протокола SIP

Пример sip-сети

Пример sip-сети

Протокол SIP разработан таким образом, что два конечных пира могут устанавливать соединение без участия каких-либо дополнительных элементов, однако, из соображений эксплуатации сетей были введены следующие типы агентов, которые взаимодействуют по модели клиент-сервер:

Запросы генерируются терминалами-клиентами к серверам и инициализируют функциональность протокола. Отправка запроса подразумевает получение ответа о результате транзакции. Рассмотрим подробно возможные варианты запросов SIP клиентов:

Звонок в системе SIP

Звонок в системе SIP

  • 1XX — коды предварительного состояния сеанса. Указывают на то, что запрос был получен сервером и поступил в обработку;
  • 2XX — успешное завершение запроса;
  • 3XX — перенаправление запроса с указанием необходимости заполнения его новым адресом назначения;
  • 4XX — отклонение запроса, либо указание на ошибку в запросе;
  • 5XX — отказ в выполнении запроса;
  • 6XX — отклонение запроса по причине невозможности установить соединение.

Звонок в системе SIP с использованием B2BUA

Звонок в системе SIP с использованием B2BUA

Дополнительные возможности SIP

SIP-сжатие

Сигнализация SIP DTMF

Протокол SIP использует четыре метода для передачи цифровых сигналов между терминальными агентами:

  1. Использование аудио тональных сигналов в RTP-потоке с lossles-кодированием ( u-law, a-law).
  2. Использование именованных телефонных событий (NTE) в потоке RTP (наиболее распространенный метод).
  3. Метод SIP INFO — отправка DTMF-кодов в заголовке пакета, определенных контекстом /dtmf-relay.
  4. Метод SIP NOTIFY — передача кодов DTMF в запросе NOTIFY (уведомление о произошедшем событии).

SIP Perfomance Tester

Security SIP разработан для обеспечения безопасной передачи информации путем шифрования данных, передаваемых по протоколу SIP. SIPS использует TLS для обеспечения защищенного канала связи между клиентом и сервером с использованием механизма рукопожатия. Данные же упаковываются по протоколу SRTP в шифрованные IP-пакеты и их передача начинается только после того, как устанавливается SSL-туннель между клиентом и сервером. Важной особенностью использования SSIP является необходимость его поддержки всеми используемыми устройствами в сети, если хотя бы один узел не поддерживает SRTP/TLS, то установить защищенное соединение будет невозможно.

SIP ALG

SIP ALG это механизм маршрутизации SIP-трафика, несколько похожий на SIP Proxy. ALG является программным шлюзом и используется в прослойке между устройствами SIP и сетью. SIP ALG анализирует поступающий трафик и может управлять им разрешая, запрещая, либо перенаправляя его другим узлам сети. Данный программный шлюз позволяет синхронизировать входящие потоки либо сессии между клиентами и серверами. Также в число его возможностей входит использование динамических портов транспортных протоколов для взаимодействия с устройствами NAT. Этот механизм позволяет SIP-трафику беспрепятственно транслировать адреса назначения и отправителя через таблицы NAT. При использовании данной технологии маскарадинг адресов происходит на уровне самого шлюза ALG.

Открывающая строка запроса содержит метод, который определяет запрос, и Request-URI, который определяет, куда должен быть отправлен запрос.

Аналогично, открывающая строка ответа содержит код ответа.

Открывающая строка запроса содержит метод, который определяет запрос, и Request-URI, который определяет, куда должен быть отправлен запрос.

Аналогично, открывающая строка ответа содержит код ответа.

Методы запроса

SIP-запросы — это коды, используемые для установления связи. Чтобы дополнить их, существуют ответы SIP, которые обычно указывают, был ли запрос успешным или неудачным.

МЕТОДЫ можно рассматривать как запросы SIP, поскольку они запрашивают конкретное действие, которое должен выполнить другой пользовательский агент или сервер.

МЕТОДЫ различают на два типа —

МЕТОДЫ можно рассматривать как запросы SIP, поскольку они запрашивают конкретное действие, которое должен выполнить другой пользовательский агент или сервер.

МЕТОДЫ различают на два типа —

Основные методы

Существует шесть основных методов, которые обсуждаются ниже.

ПРИГЛАШЕНИЕ

INVITE используется для запуска сеанса с пользовательским агентом. Другими словами, метод INVITE используется для установления мультимедийного сеанса между пользовательскими агентами.

приглашение

Успешный запрос INVITE устанавливает диалог между двумя пользовательскими агентами, который продолжается до тех пор, пока не будет отправлен BYE для завершения сеанса.

ПРИГЛАШЕНИЕ, отправленное в установленном диалоге, называется повторным ПРИГЛАШЕНИЕМ .

Re-INVITE используется для изменения характеристик сеанса или обновления состояния диалога.

Успешный запрос INVITE устанавливает диалог между двумя пользовательскими агентами, который продолжается до тех пор, пока не будет отправлен BYE для завершения сеанса.

ПРИГЛАШЕНИЕ, отправленное в установленном диалоге, называется повторным ПРИГЛАШЕНИЕМ .

Re-INVITE используется для изменения характеристик сеанса или обновления состояния диалога.

ПРИМЕР ПРИМЕР

Следующий код показывает, как используется INVITE.

ДО СВИДАНИЯ

BYE — метод, используемый для завершения установленного сеанса. Это SIP-запрос, который может быть отправлен вызывающим или вызывающим абонентом для завершения сеанса.

Он не может быть отправлен прокси-сервером.

BYE-запрос обычно проходит сквозной маршрут, минуя прокси-сервер.

BYE не может быть отправлено в ожидании INVITE или неустановленного сеанса.

Он не может быть отправлен прокси-сервером.

BYE-запрос обычно проходит сквозной маршрут, минуя прокси-сервер.

BYE не может быть отправлено в ожидании INVITE или неустановленного сеанса.

РЕГИСТР

Запрос REGISTER выполняет регистрацию агента пользователя. Этот запрос отправляется пользовательским агентом на сервер регистратора.

Запрос REGISTER может быть переадресован или проксирован до тех пор, пока не достигнет авторитетного регистратора указанного домена.

Запрос REGISTER содержит период времени (3600сек).

Запрос REGISTER может быть переадресован или проксирован до тех пор, пока не достигнет авторитетного регистратора указанного домена.

Запрос REGISTER содержит период времени (3600сек).

ОТМЕНИТЬ

CANCEL используется для завершения сеанса, который не установлен. Пользовательские агенты используют этот запрос для отмены ожидающей попытки вызова, инициированной ранее.

Он может быть отправлен либо пользовательским агентом, либо прокси-сервером.

CANCEL — это запрос переход за переходом , то есть он проходит через элементы между пользовательским агентом и получает ответ, сгенерированный следующим элементом с состоянием.

Он может быть отправлен либо пользовательским агентом, либо прокси-сервером.

CANCEL — это запрос переход за переходом , то есть он проходит через элементы между пользовательским агентом и получает ответ, сгенерированный следующим элементом с состоянием.

Тем, кто соберётся делать собственную реализацию протокола SIP, пригодится список RFC, описывающих протокол и его дополнения:

SIP- запросы

INVITE — Приглашает пользователя к сеансу связи. Обычно содержит Протокол SDP -описание сеанса. Запрос INVITE, который отправлен для уже установленного сеанса связи, называется методом re-INVITE. re-INVITE позволяет менять адреса или порты сеансов, может добавлять поток медиаданных, удалять поток медиаданных, и т.д.

CANCEL — Отменяет обработку ранее переданных запросов, но не влияет на запросы, которые уже закончили обрабатываться.

REGISTER — Переносит адресную информацию для регистрации пользователя на сервере определения местоположения.

OPTIONS — Запрашивает информацию о функциональных возможностях терминала. Передача информации о возможностях вызывающего и вызываемого SIP телефонов.

Но в процессе развития, в протокол было добавлено еще несколько типов запросов, которые дополнили его функциональность:

SIP- адреса бывают четырех типов:

Во второй части адреса указывается имя домена, рабочей станции или шлюза. Для определения IP- адреса устройства необходимо обратиться к службе доменных имен - Что такое DNS. Если же во второй части SIP- адреса размещается IP- адрес, то с рабочей станцией можно связаться напрямую.

В начале SIP- адреса ставится слово "sip:", указывающее, что это именно SIP- адрес. Примеры SIP- адресов:

SIP поддерживает специальный довольно мощный язык CPL (Call Processing Language -язык обработки звонков) на основе Введение в XML, предназначенный для написания телефонных скриптов, позволяющий указать, кто кому когда и зачем звонит, что делать, если трубку не берут или берут не там, и т. д. В силу всего этого в рамках SIP легко строить самые разнообразные сервисы.

Подобные сервисы могут создавать три группы людей: производители SIP- оборудования, сервис-провайдеры и сами конечные пользователи. Язык CPL несложен, так что, видимо, многие будут способны реализовать вполне изощренную схему работы автоответчика: скажем, если позвонивший набирает цифру 1, он переключается на домашний телефон абонента, если 2 – на сотовый, если 3 – на телефон его родителей и т. д. А почему бы не написать скрипт, который, когда раздастся звонок, показывал бы вам лицо (фотографию) звонящего? Телефон ресторана мог бы, скажем, сразу выдавать на дисплей сегодняшнее меню, – короче говоря, возможности здесь ограничены только фантазией пользователя.

Поскольку все современные ERP-, CRM- и т. п. системы работают по протоколу IP, SIP без особых проблем интегрируется с ними (в отличие от H.323, которому его телефонная природа мешает взаимодействовать с большинством приложений).

между пользователями


в сети предприятия

Но такая схема абсолютно неэффективна, когда клиентов в сети не два, а два миллиарда. SIP-сетям с большим числом пользователей необходима инфраструктура, и ее создают различные серверы SIP. Сервер регистрации (registrar) занимается учетом и авторизацией пользователей, сервер локализации (allocation) ищет их и определяет их местонахождение, сервер переадресации (redirect) переводит звонки абонентам туда, где они фактически находятся в данный момент, – если меня, например, нет в Москве, потому что я уехал в Америку, сервер переведет звонок на мой американский номер. Наиболее сложные функции ложатся на прокси-сервер (SIP Proxy), обеспечивающий взаимодействие внутренней (например, учрежденческой) IP-телефонной сети с внешним миром, – именно он определяет все политики, правила общения и т. д. Существуют и другие серверы SIP (например, сервер конференций), но они менее важны. На рисунке показано, как может работать SIP в сети предприятия.


Пользователь Алиса приходит на свое рабочее место в компании Example, включает в корпоративную сеть ноутбук и активизирует имеющийся на нем программный телефон, который автоматически регистрируется на сервере регистрации. Тот, в свою очередь, запрашивает информацию о пользователе в корпоративной базе данных и сообщает о том, как с ним контактировать, серверу локализации. (Оба сервера могут интегрироваться с различными базами данных, службами каталогов типа LDAP или MS Active Directory и т. д.) Теперь, когда кто-нибудь позвонит Алисе, прокси-сервер, запросив сервер локализации, установит связь с ее рабочим местом.

Прохождение авторизации в SIP протоколе зависит от "Что такое realm sip?", различного для каждого защищаемого домена.

Последовательность действий для авторизации клиентского оборудования на сервере.

Вариант №2. Если secret указан. Сервер на запрос REGISTER присылает ответ SIP/2.0 401 Unauthorized (нормальный ответ сервера о том, что пользователь еще не авторизировался; обычно после этого абонентское оборудование отправляет на сервер новый запрос, содержащий логин и пароль).

Где параметр response - строка, состоящая из 32 шестнадцатиричных разрядов и удостоверяющая, что пользователю известен пароль. Формируется с помощью применения функции хеширования к значениям nonce, nc, cnonce, qop, uri, username, realm, типу запроса и паролю password. По умолчанию хеширование производится по алгоритму Алгоритм MD5.

Вариант №3. Если используется внешний сервер для аутентификации (процедура проверки подлинности) по протоколу RADIUS сервер. Сервер на запрос REGISTER присылает ответ SIP/2.0 407 Proxy Authentication Required - необходима аутентификация на прокси-сервере).

The call flow on the left highlights the changes when PRACK is set to enabled. Call flow on the right displays PRACK is set to disabled.


UAS and UAC are set to PRACK Supported option.


UAS and UAC are set to PRACK Require option.


UAS is PRACK Supported and UAC is PRACK Disable.


UAS is PRACK Require and UAC is PRACK Disable.


UAS is PRACK Disable and UAC is PRACK Require.


UAS is configured with PRACK Require option.



The IMG 2020 must include an SDP answer in the 200 OK to PRACK when an SDP offer is received in the PRACK request

Читайте также: