Sip протокол — описание, возможности

База знаний

SIP расшифровывается как Session Initiation Protocol — протокол инициирования сеанса, это протокол, разработанный IETF для VOIP и для других сеансов передачи текста или мультимедиа данных, например, таких как, системы обмена мгновенными сообщениями, видео, игры в реальном времени и другие сервисы.

Выдержка из SIP RFC 3261

Этот документ описывает Session Initiation Protocol (SIP), протокол контроля и сигнализации уровня приложения для создания, модификации, и завершения сеансов с одним или несколькими участниками. Эти сеансы включают в себя: телефонные вызовы через Интернет, презентация мультимедийных данных, и мультимедийные конференции. При создании сеансов, используется SIP приглашение с описанием сессии, что позволяет участникам подтвердить совместимость используемых настроек для передачи медиаданных. SIP дает возможность использования таких элементов, как прокси сервер, в функции которого входит помощь в доставке запросов к конечному пользователю, установка подлинности и разграничение доступа пользователей к различным сервисам, поддерживает правила маршрутизацию вызовов, задаваемых провайдерами, а также поддерживает различные возможности, ориентированные на конечных пользователей. Так же в протоколе SIP имеется механизм регистрации, который дает возможность пользователям подключаться из своего текущего местоположения к сервисам, через прокси сервер. Протокол SIP может использовать несколько основных протоколов различного транспортного уровня.

SIP очень похож на протокол HTTP, используемый для Web приложений, или на SMTP (обмен почтовыми сообщениями). Сообщения состоят из заголовков и тела сообщения. Содержание тела SIP сообщения для телефонных вызовов описывается в SDP: session description protocol — протокол описания сеанса.

  • SIP — это протокол, использующий текстовые сообщения, в которых используется кодировка UTF-8.
  • SIP использует номер порта 5060, как для коммуникации по протоколу UDP, так и для TCP. Для SIP могут использоваться другие способы передачи данных.

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

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

Вследствии того, что SIP — это довольно гибкий протокол, есть возможность расширения его возможностей с сохранением обратной совместимости. Также, протокол SIP может преодолевать ограничение, связанные с использованием NAT или файрволов. (Обратите внимание на раздел: NAT and VOIP)
Протокол инициирования сеансов – Session Initiation Protocol (SIP) является протоколом прикладного уровня и предназначается для организации, модификации и завершения сеансов связи: мультимедийных конференций, телефонных соединений и распределения мультимедийной информации. Пользователи могут принимать участие в существующих сеансах связи, приглашать других пользователей и быть приглашенными ими к новому сеансу связи. Приглашения могут быть адресованы определенному пользователю, группе пользователей или всем пользователям. Протокол SIP разработан группой MMUSIC (Multiparty Multimedia Session Control) комитета IETF (Internet Engineering Task Force), а спецификации протокола представлены в документе RFC 2543]. В основу протокола рабочая группа MMUSIC заложила следующие принципы:

  • Персональная мобильность пользователей. Пользователи могут перемещаться без ограничений в пределах сети, поэтому услуги связи должны предоставляться им в любом месте этой сети. Пользователю присваивается уникальный идентификатор, а сеть предоставляет ему услуги связи вне зависимости от того, где он находится. Для этого пользователь с помощью специального сообщения – REGISTER – информирует о своих перемещениях сервер определения местоположения/сервер регистраций.

  • Масштабируемость сети. Она характеризуется, в первую очередь, возможностью увеличения количества элементов сети при её расширении. Серверная структура сети, построенной на базе протокола SIP, в полной мере отвечает этому требованию.

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

В качестве примера можно привести ситуацию, когда протокол SIP используется для установления соединения между шлюзами, взаимодействующими с ТфОП при помощи сигнализации ОКС7 или DSS1. В настоящее время SIP не поддерживает прозрачную передачу сигнальной информации телефонных систем сигнализации. Вследствие этого дополнительные услуги ISDN оказываются недоступными для пользователей IP-сетей. Расширение функций протокола SIP может быть произведено за счет введения новых заголовков сообщений, которые должны быть зарегистрированы в уже упоминавшейся ранее организации IANA. При этом, если SIP,сервер принимает сообщение с неизвестными ему полями, то он просто игнорирует их и обрабатывает лишь те поля, которые он знает. Для расширения возможностей протокола SIP могут быть также добавлены и новые типы сообщений.

Интеграция в стек существующих протоколов Интернет, разработанных IETF. Протокол SIP является частью глобальной архитектуры мультимедиа, разработанной комитетом Internet Engineering Task Force IETF.

Эта архитектура включает в себя также протокол резервирования ресурсов (Resource Reservation Protocol – RSVP, RFC 2205), транспортный протокол реального времени (Real,Time Transport Pro,tocol – RTP, RFC 1889), протокол передачи потоковой информации в реальном времени (Real,Time Streaming Protocol – RTSP, RFC 2326),

протокол описания параметров связи (Session Description Protocol – SDP, RFC 2327). Однако функции протокола SIP не зависят ни от одного из этих протоколов.

Взаимодействие с другими протоколами сигнализации. Протокол SIP может быть использован совместно с протоколом Н.323. Возможно также взаимодействие протокола SIP с системами сигнализации ТфОП – DSS1 и ОКС7.

Для упрощения такого взаимодействия сигнальные сообщения протокола SIP могут переносить не только специфический SIP адрес, но и телефонный номер формата Е.164 или любого другого формата. Кроме того, протокол SIP, наравне с протоколами H.

323 и ISUP/IP, может применяться для синхронизации работы устройств управления шлюзами; в этом случае он должен взаимодействовать с протоколом MGCP.

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

В протоколе SIP определено несколько методов, используемых при коммуникации.

  • SIP method info: Расширение протокола, описанное в RFC 2976
  • SIP method notify: Расширение протокола, описанное в RFC 2848 PINT
  • SIP method subscribe: Расширение протокола, описанное в RFC 2848 PINT
  • SIP method unsubscribe: Расширение протокола, описанное в RFC 2848 PINT
  • SIP method update: Расширение протокола, описанное в RFC 3311
  • SIP method message: Расширение протокола, описанное в RFC 3428
  • SIP method refer: Расширение протокола, описанное в RFC 3515
  • SIP method prack: Расширение протокола, описанное в RFC 3262
  • SIP Specific Event Notification: Расширение протокола, описанное в RFC 3265
  • SIP Message Waiting Indication: Расширение протокола, описанное в RFC 3842
  • SIP method PUBLISH: Расширение протокола, описанное в RFC 3903

После приема и интерпретации запроса, адресат (прокси сервер) передает ответ на этот запрос. Содержание ответов бывает разным: подтверждение установления соединения, передача запрошенной информации, сведения о неисправностях и т.д. Структуру ответов и их виды протокол SIP унаследовал от протокола НТТР. Определено шесть типов ответов, несущих разную функциональную нагрузку. Тип ответа кодируется трехзначным числом. Самой важной является первая цифра, которая определяет класс ответа, остальные две цифры лишь дополняют первую. В некоторых случаях оборудование даже может не знать все коды ответов, но оно обязательно должно интерпретировать первую цифру ответа.

  • Коды ответа, используемые в SIP протоколе

  • RFC 3261 (более 250 страниц!)
  • RFC 3329: Соглашение о механизме обеспечения безопасности для SIP протокола.
  • IETF SIP Working Group — на этом сайте Вы можете найти все текущие Internet документы, RFC и стандарты.
Читайте также:  Билайн «планета ноль» - отключить, подключить, отзывы

  • SIP simple: Система мгновенных сообщений на основе SIP
  • SDP: Описание протокола описания сеанса (Session Description Protocol)
  • SIP tools
  • SIP SS7 gateways
  • RTP: Протокол передачи данных в реальном времени- этот протокол очень часто использется для передачи голоса.
  • SIP call flows: Examples of SIP call flows
  • безопасность в SIP
  • IAX против SIP
  • SIP-T: Протокол Инициирования Сеанса для Телефонии RFC3372

Источник: http://asterisk.ru/knowledgebase/SIP

Протокол инициирования сеансов связи (SIP)

Аннотация: Лекция посвящена протоколу SIP Приведены архитектура, принцип работы и рекомендации стандарта SIP. Описаны компоненты архитектуры основанной на SIP и их роль. Описана интеграция протокола с IP-сетями

Протокол инициирования сеансов (Session Initiation Protocol — SIP) является протоколом прикладного уровня и предназначается для организации, модификации и завершения сеансов связи (например, мультимедийных конференций, телефонных соединений). Пользователи могут принимать участие в существующих сеансах связи, приглашать других пользователей и быть приглашенными ими к новому сеансу связи.

Протокол SIP разработан группой MMUSIC комитета IETF, а спецификации протокола представлены в документе RFC 2543. В основу протокола заложены следующие принципы:

  1. Персональная мобильность пользователей. Пользователи могут перемещаться без ограничений в пределах сети. Пользователю присваивается уникальный идентификатор, а сеть предоставляет ему услуги связи вне зависимости от того, где он находится.
  2. Масштабируемость сети. Она характеризуется, в первую очередь, возможностью увеличения количества элементов сети при ее расширении. Серверная структура сети, построенная на базе протокола SIP, отвечает этому требованию.
  3. Расширяемость протокола. Она характеризуется возможностью дополнения протокола новыми функциями при введении новых услуг и его адаптации к работе с различными приложениями.

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

    Для расширения возможностей протокола SIP могут быть также добавлены и новые типы сообщений.

  4. Интеграция в стек существующих протоколов Интернета, разработанных IETF. Протокол SIP является частью глобальной архитектуры мультимедиа, разработанной IETF. Эта архитектура включает в себя также и другие протоколы: резервирования ресурсов (Resource Reservation Protocol — RSVP, RFC 2205), транспортный протокол реального времени (Real-Time Transport Protocol — RTP, RFC 1889), протокол передачи потоковой информации в реальном времени (Real-Time Streaming Protocol — RTSP, RFC 2326), протокол описания параметров связи (SDP, RFC 2327). Однако функции самого протокола SIP не зависят ни от одного из этих протоколов.
  5. Взаимодействие с другими протоколами сигнализации. Протокол SIP может быть использован совместно с протоколом Н.323.

Одной из важнейших особенностей протокола SIP является его независимость от транспортных технологий. Но в то же время предпочтение отдается технологии маршрутизации пакетов IP и протоколу UDP.

Следует оговориться, что для этого необходимо создать дополнительные механизмы надежной доставки сигнальной информации.

К таким механизмам относятся повторная передача информации при ее потере, подтверждение приема и др.

Сигнальные сообщения могут переноситься как протоколом транспортного уровня UDP, так и протоколом TCP.

Протокол UDP позволяет быстрее, чем TCP, доставлять сигнальную информацию (даже с учетом повторной передачи неподтвержденных сообщений), а также вести параллельный поиск местоположения пользователей и передавать приглашения к участию в сеансе связи в режиме многоадресной рассылки. В свою очередь, протокол TCP упрощает работу с межсетевыми экранами (firewall), а также гарантирует надежную доставку данных. При использовании протокола TCP разные сообщения, относящиеся к одному вызову, могут либо передаваться по одному TCP-соединению, либо для каждого запроса и ответа на него может открываться отдельное TCP-соединение. На рисунке 5.1 показано место, занимаемое протоколом SIP в стеке протоколов TCP/IP.

Рис. 5.1. Место протокола SIP в стеке протоколов TCP/IP

По сети с маршрутизацией пакетов IP может передаваться пользовательская информация практически любого вида: речь, видео и данные, а также любая их комбинация.

При организации связи между терминалами пользователей необходимо сообщить встречной стороне, какого рода информация может приниматься (передаваться), алгоритм ее кодирования и адрес, на который следует передавать информацию.

Таким образом, одним из обязательных условий организации связи при помощи протокола SIP является обмен между сторонами данными об их функциональных возможностях. Для этой цели чаще всего используется протокол описания сеансов связи — SDP (Session Description Protocol).

Поскольку в течение сеанса связи может производиться его модификация, предусмотрена передача сообщений SIP с новыми описаниями сеанса средствами SDP.

Для передачи речевой информации комитет IETF предлагает использовать протокол RTP, рассмотренный выше, но сам протокол SIP не исключает возможность применения для этих целей и других протоколов.

Протокол SIP предусматривает организацию конференций трех видов:

  • в режиме многоадресной рассылки ( multicasting ), когда информация передается на один multicast -адрес, откуда затем доставляется сетью конечным адресатам;
  • при помощи контроллера управления конференции (MCU), к которому участники конференции передают информацию в режиме «точка-точка», а контроллер обрабатывает информацию (т. е. смешивает или коммутирует) и рассылает ее участникам конференции;
  • путем соединения каждого пользователя с каждым в режиме «точка-точка».

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

Для организации взаимодействия с существующими приложениями IP-сетей и для обеспечения мобильности пользователей протокол SIP использует адрес, подобный адресу электронной почты. В качестве адресов рабочих станций используются специальные универсальные указатели ресурсов — так называемые SIP URL (Universal Resource Locators).

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

  • имя@домен;
  • имя@хост;
  • имя@IР-адрес;
  • №телефона@шлюз.

Таким образом, адрес состоит из двух частей. Первая часть — это имя пользователя, зарегистрированного в домене или на рабочей станции. Если вторая часть адреса идентифицирует какой-либо шлюз, то в первой указывается телефонный номер абонента.

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

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

Примеры SIP-адресов:

sip: als@rts.loniis.ru
sip: user1@192.168.100.152
sip: 294-75-47@gateway.ru

На рисунке 5.2 представлена упрощенная схема действия протокола.

Рис. 5.2. Архитектура «клиент-сервер»

Клиент выдает запросы, в которых указывает, что он желает получить от сервера. Сервер принимает запрос, обрабатывает его и выдает ответ, который может содержать уведомление об успешном выполнении запроса, уведомление об ошибке или информацию, затребованную клиентом.

Управление процессом обслуживания вызова распределено между разными элементами сети SIP. Основным функциональным элементом, реализующим функции управления соединением, является терминал. Остальные элементы сети отвечают за маршрутизацию вызовов, а в некоторых случаях предоставляют дополнительные услуги.

В протоколе SIP устанавливаются следующие основные компоненты:

  • Терминал.В случае, когда клиент и сервер взаимодействуют непосредственно с пользователем, они называются, соответственно, клиентом агента пользователя — User Agent Client (UAC) и сервером агента пользователя — User Agent Server (UAS).
  • Прокси-сервер.Прокси-сервер принимает запросы, обрабатывает их и, в зависимости от типа запроса, выполняет определенные действия. Это может быть поиск и вызов пользователя, маршрутизация запроса, предоставление услуг и т. д. Прокси-сервер состоит из клиентской и серверной частей, поэтому может принимать вызовы, инициировать собственные запросы и возвращать ответы. Прокси-сервер может быть физически совмещен с сервером определения местоположения или существовать отдельно от него.Предусмотрено два типа прокси-серверов — с сохранением состояний (stateful) и без сохранения состояний (stateless).Сервер первого типа хранит в памяти входящий запрос, который явился причиной генерации одного или нескольких исходящих запросов. Эти исходящие запросы сервер также запоминает. Все запросы хранятся в памяти сервера только до окончания транзакции, т. е. до получения ответов на запросы. Он позволяет предоставить большее количество услуг, но работает медленнее, чем сервер второго типа. Он может применяться для обслуживания небольшого количества клиентов, например, в локальной сети. Прокси-сервер должен сохранять информацию о состояниях, если он:
    • использует протокол TCP для передачи сигнальной информации;
    • работает в режиме многоадресной рассылки сигнальной информации;
    • размножает запросы.

    Последний случай имеет место, когда прокси-сервер ведет поиск вызываемого пользователя сразу в нескольких направлениях, т. е. один запрос, который пришел к прокси-серверу, размножается и передается одновременно по всем этим направлениям.

    Сервер без сохранения состояний просто ретранслирует запросы и ответы, которые получает.

    Он работает быстрее, чем сервер первого типа, так как ресурс процессора не тратится на запоминание состояний, вследствие чего сервер этого типа может обслужить большее количество пользователей.

    Недостатком такого сервера является то, что на его базе можно реализовать лишь наиболее простые услуги. Впрочем, прокси-сервер может функционировать как сервер с сохранением состояний для одних пользователей и как сервер без сохранения состояний — для других.

    Алгоритм работы пользователей с прокси-сервером выглядит следующим образом. Поставщик услуг IP-телефонии сообщает адрес прокси-сервера своим пользователям. Вызывающий пользователь передает к прокси-серверу запрос соединения.

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

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

  • Сервер переадресации.

    Сервер переадресации предназначен для определения текущего адреса вызываемого пользователя. Вызывающий пользователь передает серверу сообщение с известным ему адресом вызываемого пользователя, а сервер обеспечивает переадресацию вызова на текущий адрес этого пользователя. Для реализации этой функции сервер переадресации должен взаимодействовать с сервером определения местоположения.

  • Сервер определения местоположения пользователей.

    Пользователь может перемещаться в пределах сети, поэтому необходим механизм определения его местоположения в текущий момент времени.

    Для хранения текущего адреса пользователя служит сервер определения местоположения пользователей, представляющий собой базу данных адресной информации. Кроме постоянного адреса пользователя, в этой базе данных может храниться один или несколько текущих адресов.

    Этот сервер может быть совмещен с прокси-сервером или быть реализован отдельно от прокси-сервера, но иметь возможность связываться с ним.

Читайте также:  «мобильный перевод» билайн - как пользоваться

Источник: http://www.intuit.ru/studies/courses/8/8/lecture/247

Взаимодействие клиентов SIP. Часть 1

Месяц назад я начал свое знакомство с IP-телефонией, а именно с Lync и Asterisk. И заметил следующую картину: в сети очень много интересных статей по практической стороне вопроса (как и что делать) и очень мало внимания уделено теории (в конце статьи приведены ссылки).

Если Вы хотите разобраться с SIP, то извольте либо читать RFC 3261, либо одну из «этих толстых книг». Это, естественно, полезно, но многим хочется в начале изучить некую выжимку, а уж потом бросаться в омут с головой. Эта статья как раз для таких людей. Чтобы не перегружать читателя, я решил разбить статью на две части.

В первой части мы рассмотрим работы протокола SIP при взаимодействии двух клиентов.

Простое взаимодействие клиентов

Взаимодействие клиентов в рамках SIP чаще всего осуществляется в виде диалога. Диалог – это равноправное взаимодействие двух User Agent (UA) в виде последовательности SIP-сообщений между ними. При этом, существуют запросы, не образующие диалогов. Однако обо всем по-порядку.

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

Сообщения имеют следующий формат: стартовая строка, одно или несколько полей заголовка, пустая строка, обозначающая конец полей заголовка и необязательное тело сообщения.Стартовая строка содержит метод, Request-URI и версию SIP (актуальная – 2.0).

Request-URI – это SIP-адрес ресурса, которому посылается запрос.

Поля заголовков имеют следующий формат: :

Первая строка начинается с заголовка Via. Каждое SIP-устройство, создающее или пересылающее сообщение, добавляет свой адрес в поле Via (как это происходит, я планирую показать в следующей части статьи). Обычно адрес представляет собой имя хоста, которое может быть разрешено с помощью DNS-запроса.

Поле Via содержит версию SIP, знак “/”, пробел, транспортный протокол (UDP, TCP, TLS, SCTP), двоеточие, номер порта и branch – идентификатор транзакции. Ответы на этот запрос будут содержать такой же номер транзакции.Чаще всего, значение branch начинается с “z9hG4bK”.

Это значит, что запрос был сгенерирован клиентом, поддерживающим RFC 3261 и параметр уникален для каждой транзакции этого клиента. Следующее поле, Max-Forwards, содержит относительно большое целое число. Каждый сервер SIP, который пересылает сообщение, уменьшает это число на единицу. Данное поле обеспечивает простой механизм обнаружение петель (loop).

Следом идут поля From и To, которые описывают отправителя и получателя запроса. Важно, что SIP-запросы маршрутизируются исходя из Request-URI, указанного в стартовой строке (см. выше). Это объясняется тем, что поля From и To могут быть изменены при пересылке. Если используется отображаемое имя (например, Ivan Ivanov), то SIP URI помещается внутрь пары угловых скобок.

Параметр tag в поле From генерирует отправляющая сторона. В свою очередь принимающая сторона поместит свой tag в поле To. Поле Call-ID – идентификатор вызова. Совокупность tag’ов из полей From и To и Call-ID однозначно идентифицируют данный диалог. Это необходимо, так как между клиентами может идти сразу несколько диалогов.

Следующее поле, Cseq, содержит порядковый номер запроса и название метода. В данном случае – INVTITE. Номер увеличивается с каждым новым запросом. Поля Via, Max-Forwards, To, From, Call-ID и CSeq составляют минимальный необходимый набор полей заголовков SIP-сообщения.

Для сообщения INVITE также необходимо поле заголовка Contact, в котором содержится SIP URI, относящийся к коммуникационному устройству отправляющей стороны. Это поле используется, чтобы из всех устройств, которыми одновременно может пользоваться Петр, ответ был отправлен именно на данное устройство. Обратите внимание на значения полей From и Contact. Первый раз я не заметил разницу:

В сообщении присутствует опциональное поле Subject, то есть тема сообщения. Некоторые SIP-клиенты могут выводить значение этого поля на экран. Для маршрутизации и идентификации диалога поле не используется и может быть произвольным.

Поля Content-Type и Content-Length отвечают за описание тела сообщения. В данном случае будет использоваться Session Description Protocol (SDP).

Размер сообщения вычисляется с учетом символов перевода строки:Детальное описание работы протокола SDP заслуживает отдельной статьи, поэтому ниже приведена только краткая расшифровка:В ответ на INVITE SIP-клиент Ивана отправляет два сообщения: 180 Ringing и 200 OK.

Первое сообщает, что на стороне Ивана SIP-клиент подает звуковой сигнал звонка, второе – подтверждает установку диалога. Разберемся с каждым из них. Так будет выглядеть сообщение 180 Ringing:Бледным выделен текст, который не изменился по сравнению с сообщением INVITE.

Обратите внимание на поля заголовков To и From. Несмотря на то, что данное сообщение идет со стороны Ивана, значения полей остаются такими же, как были в первоначальном запросе (от Петра к Ивану). Это объясняется тем, что данные поля определяют направление запроса, а не сообщения.

Читайте также:  Sms на номера банков на билайне станут платными

Строка Via также перекочевала из исходного запроса, в конце строки добавлен параметр received этот параметр содержит IP-адрес, с которого пришел запрос. Обычно это адрес, который может быть получен путем разрешения URI, содержащегося в Via. Как я и обещал, в поле To добавился tag, идентифицирующий диалог.

Все последующие сообщения в рамках диалога будут содержать неизменные значения tag. Наконец, в поле Contact содержится актуальный адрес Ивана. Так выглядит сообщение 200 ОК, которое отправил SIP-клиент Ивана:Думаю, смысл всех полей, относящихся к протоколу SIP теперь ясен.

В ответ на 200 ОК клиент Петра отправляет подтверждение:Данное сообщение подтверждает, что клиента Петра успешно получил ответ от клиента Ивана. Оба клиента договорились о параметрах меди-сессии, которая будет осуществляться по протоколу RTP.

Обратите внимание, что номер последовательности CSeq все еще равен единице, но в качестве метода уже стоит ACK. Параметр Branch в поле Via содержит новый идентификатор транзакции, так как ACK, отправляемый в ответ на 200 OK считает новой транзакцией. Теперь давайте рассмотрим, как происходит завершение медиа-сессии.

Клиент Петра посылает BYE-запрос для завершение сессии:Получив запрос на завершение сессии, клиент Ивана посылает подтверждение:Сессия завершена. Мы рассмотрели простой вариант работы протокола SIP.

Обратите внимание, что в разные моменты времени клиенты Ивана и Петра выступали то в роли сервера, то в роли клиента, поэтому во всех SIP-клиентах должна функционировать как серверная (User Agent Server или UAS), так и клиентская часть (User Agent Client или UAC). В следующей статье я планирую рассмотреть взаимодействие клиентов SIP с использованием Proxy-сервера и регистрацию клиентов на Proxy-сервере.

Что почитать по теме

Источник: https://habr.com/post/188352/

SIP-телефония России от SipOut

SIP (Session Initiat Protocol, протокол установки соединения) не является первопроходцем в области IP-телефонии. Протокол H.323 уже давно используется для целей IP-телефонии, однако изначально он не разрабатывался для IP-сетей, что снижает «оптимальность» их совместной работы. За годы работы с протоколом H.

323 накоплен большой опыт использования, который позволил выявить как его положительные черты, так и недостатки, которые были учтены при разработке протокола SIP. pПротокол H.323 использует двоичный формат.

Одним из следствий этого является необходимость стандартизации всех возможностей данного протокола, так как в случае если определенная возможность не поддерживается устройством, то такие устройства из-за двоичного формата не смогут работать друг с другом.

SIP-протокол использует текстовый формат сообщений, если одному из устройств не знаком определенный тип сообщения или заголовка, то оно просто игнорируется (как и в HTTP, который по своему формату очень похож формат протокола SIP). К тому же сам протокол SIP значительно проще H.323.

Возможности протокола SIP

Основные преимущества протокола SIP:

  • Масштабируемость — возможность увеличения количества клиентов при расширении сети.
  • Мобильность — возможность получения сервиса вне зависимости от местоположения (как например электронная почта), а каждому пользователю выдается персональный идентификатор, по которому он может быть найден.
  • Расширяемость — возможность дополнения протокола новыми функциями (за счет введения новых заголовков и сообщений). Как уже говорилось выше, если устройству встречается неизвестное ему расширение протокола, оно попросту игнорируется. Так как протокол H.323 использует сообщения двоичного формата, то неизвестные функции могут привести к невозможности предоставления сервиса.

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

Так как телефония с использованием протокола SIP позволяет использовать большое количество разнообразных сервисов (помимо передачи голоса, возможна передача видео, текстовых сообщений, факсов и др.

), необходим механизм обмена информацией о том, какие сервисы может использовать вызываемаявызывающая стороны. Для этой цели используется протокол SDP (Session Description Protocol) — протокол описания сессии.

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

Источник: https://www.sipout.net/stati/sip-telefoniya/

SIP-телефония, SIP-протокол, ключевые возможности

Протокол H.323 появился в 1996 году и объединил многие приложения для VoIP-телефонии, до сих пор имеющие собственные сигнальные протоколы, поскольку издавались разными производителями Связующая роль H.323 заставила работать вместе устройства, которое до сих пор были на это не способны.

MGSP (Media Gateway Control Protocol) – протокол контроля медиашлюзов, разработанный вслед за H.323 в 1999 году. Его особенность состоит в том, что сигнализацией управляет специальное отделенное от медиапотоков устройство.

У SIP-телефонии есть множество аналогов. Самые известные из них Skype, Jitsi (написанная на JAVA), Sippoint (Интернет-телефон). Skype появился в 2003 году и стал наиболее успешным решением в данной отрасли, развиваясь по сей день. Изначально Skype использовал архитектуру P2P, однако сегодня – протокол MSNP24.

Для передачи аудиосигнала Skype использует кодеки SOLK, G.729, G.711, позволяющие сжимать данные, обеспечивая тем самым отличное качество связи при низких скоростях передачи. Для передачи видео используются кодеки VP7, VP8, H.264.

Skype до сих пор остается бесплатным, поэтому неоднократно подвергался гонениям во многих странах, неся угрозу для закрепившихся на рынке коммуникационных компаний.

Jitsi является аналогом Skype и поддерживает протоколы SIP, XMPP, MSN, используя кодеки SILK, G.722, H.263+, H.264 и VP8 для передачи и аудио, и видео.

Так называемые софтфоны, например, от такого известного разработчика как Sipnet используют протоколы SIP, G.711alaw, H.264, H.263 для аудио и видео, и протокол XMPP для передачи мгновенных данных.

Популярная экранная функция «картинка в картинке» реализуется благодаря технологии PIP.

Преимущества SIP-телефонии

Для SIP-телефонии характерны простота настройки SIP-телефонов, наличие дополнительной информации об абоненте и повышенная мобильность.

При настройке SIP-телефона достаточно войти в систему под новой учетной записью и указать ФИО сотрудника.

Телефон можно настраивать непосредственно на месте или через WEB-интерфейс, что не составит никакого труда даже при первом знакомстве с системой.

При прохождении звонка абонент автоматически получает все данные о звонящем, которые находятся в системе, то есть не только номер звонящего, но и его ФИО, SIP-адрес или внутренний номер. Эти данные предварительно вносятся в адресную книгу сети.

В разделе мобильности стационарные телефоны не в состоянии тягаться с IP-телефонами, поскольку первые в буквальном смысле неотделимы от своей розетки, символизирующей «вечный» абонентский номер. В IP-телефонии номер заключен в самом аппарате, которому требуется лишь доступ к сети.

Несмотря на свое значительное развитие SIP остается весьма перспективным направлением IP-телефонии. SIP-телефония

Источник: https://landcomm.ru/dokumentacija/11329/

Ссылка на основную публикацию