sip протокол что это

SIP-телефония:
просто о сложном

Эта статья нашего блога посвящена всем известной, но далеко не всем понятной теме — SIP-телефония. В чем ее особенность? И почему компании все чаще выбирают SIP-телефонию? Давайте разбираться.

IP/VoIP/SIP — в чем разница?

Многие пользователи современной связи не раз сталкивались с такими терминами как IP, VoIP или SIP-телефония. На первый взгляд кажется, что это определения для одной услуги. Однако, между этими понятиями есть существенная разница.

IP (Internet Protocol — «межсетевой протокол») — протокол передачи данных через интернет. Именно благодаря ему все устройства могут взаимодействовать. Любой компьютер или мобильный гаджет, с которого пользователь выходит во всемирную сеть, обладает уникальным адресом, который и помогает ему передавать и принимать информацию.

VoIP (Voice over IP — «голос по интернет-протоколу») — способ передачи голосовых сообщений в интернете. На его базе работает телефонная сеть и другие коммуникационные сервисы, которые позволяют передавать речь пользователей.

SIP (Session Initiation Protocol — протокол установления сеанса) — один из протоколов передачи голоса в сети. SIP-телефония — более точечное определение IP-телефонии, так как в данном случае связь осуществляется по определенному пути — протоколу.

Как работает IP телефония SIP?

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

SIP-телефония: схема звонка

1. В момент соединения голос трансформируется и становится цифровым сигналом.

2. Затем данная информация поступает в компьютер или другой гаджет.

3. Передающее и принимающее устройства распознают друг друга.

4. Дальнейшее их взаимодействие ведется по SIP-протоколу.

5. Поток информации вновь изменяется и становится аналоговым.

6. Абонент снимает трубку и слышит речь пользователя SIP-телефонии.

Достоинства SIP-телефонии

Связь работает везде

Есть только одно обязательное условие для звонков по SIP-телефонии — скорость интернета должна быть более 64 Кбит/сек.

Нет привязки к офису

IP телефонию SIP отличает то, что она не ограничена адресом регистрации компании. Разговаривать с абонентами можно из всех городов России и мира.

Звонки с разных устройств

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

Быстрое подключение и настройка

Процесс покупки и подключения услуги sip-телефонии занимает не больше 1 рабочего дня. Все работы осуществляют технические сотрудники провайдера.

Большое число дополнительных сервисов

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

Не надо покупать дорогостоящее оборудование, прокладывать провода в офисе. Подключение бесплатное. Ежемесячная абонентская плата от 790 рублей.

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

«Благодаря АТС «Телфин.Офис» появилась возможность принимать звонки, находясь в любой точки мира. Порадовала относительно невысокая стоимость звонков по сравнению с тарифами мобильных операторов»

— комментирует Константин Потапов, директор ГидроТехКлин.

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

— сократить расходы на корпоративную связь;

— быстро и недорого телефонизировать компанию;

— открыть виртуальный офис и выйти на новые рынки;

— оптимизировать работу сотрудников внутри компании;

— повысить стандарты и качество обслуживания клиентов;

— организовать колл-центр и/или удаленные рабочие места.

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Описание протокола SIP

Базовый курс по Asterisk

Мы собрали концентрат всех must have знаний в одном месте, которые позволят тебе сделать шаг вперед на пути к экспертному владению Asterisk

Элементы

Протокол SIP имеет клиент-серверную модель. Основными функциональными элементами являются:

Важные преимущества

Так как группа MMUSIC разрабатывала протокол SIP с учётом недостатков предшествующего ему H.323, то SIP обзавелся следующими достоинствами:

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

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

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

Имеется возможность использования протокола SIP с протоколами сигнализации сетей ТфОП, такими как DSS-1 и ОКС7.

Типы запросов

Для организации простейшего вызова в протоколе SIP, предусмотрено 6 типов информационных запросов:

Определено 6 типов ответов, которым прокси-сервер описывает состояние соединения, например: подтверждение установления соединения, передача запрошенной информации, сведения о неисправностях др.

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

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

Базовый курс по Asterisk

Мы собрали концентрат всех must have знаний в одном месте, которые позволят тебе сделать шаг вперед на пути к экспертному владению Asterisk

Источник

SIP-телефония

Вместо вступления…

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

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

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

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

Читайте также:  с днем рождения меня картинки прикольные ржачные про себя любимую

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

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

1. Масштабируемость — возможность увеличения количества клиентов при расширении сети.

2. Мобильность — возможность получения сервиса вне зависимости от местоположения (как например электронная почта), а каждому пользователю выдается персональный идентификатор, по которому он может быть найден.

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

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

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

Собственно сама передача голоса осуществляется благодаря использованию протокола RTP (Real-time Transport Protocol, протокол транспортировки в реальном времени). Сам протокол SIP непосредственного участия в передаче голосовых, видео и других данных не принимает, он отвечает только за установление связи (по протоколам SDP, RTP и др.), поэтому под SIP-телефонией понимается не передача голоса по протоколу SIP, а передача голоса с использованием протокола SIP. Использование протокола SIP предоставляет новые возможности установления соединений (а также возможность беспроблемного расширения данных возможностей), а не непосредственной передачи голосового и других видов трафика.

Формат адресов используемых протоколом SIP напоминает формат E-Mail-адреса: имя@идентификатор_хоста. В начале адреса ствится приставка «sip:» (пример: sip:user@host.com). В качестве идентификатора хоста может служить его IP-адрес, домен или имя хоста (IP-адрес определяется с использованием DNS, так что в итоге все равно получается обращение по адресу sip: имя@IP-адрес).

Архитектура SIP-сети

Стандартными элементами в SIP-сети являются:

1. User Agent: по протоколу SIP устанавливаются соединения «клиент-сервер». Клиент устанавливает соединения, а сервер принимает вызовы, но так обычно телефонный аппарат (или программный телефон) может как устанавливать так и принимать звонки, то получается что он одновременно играет роль и клиента и сервера (хотя в реализации протокола это не является обязательным критерием) — в этом случае его называют User Agent (UA) или терминал.

2. Прокси-сервер: прокси сервер принимает запросы и производит с ним некоторые действия (например определяет местоположение клиента, производит переадресацию или перенаправление вызова и др.). Он также может устанавливать собственные соединения. Зачастую прокси-сервер совмещают с сервером определения местоположения (Register-сервер), в таком случае его называют Registrar-сервером.

3. Сервер опредления местоположения или сервер регистрации (Register): данный вид сервера служит для регистрации пользователей. Регистрация пользователя производится для определения его текущего IP-адреса, для того чтобы можно было произвести вызов user@IP-адрес. В случае если пользователь переместится в другое место и/или не имеет определенного IP-адреса, его текущий адрес можно будет определить после того, как он зарегистрируется на сервере регистрации. Таким образом клиент останется доступен по одному и тому же SIP-адресу вне зависимости от того, где на самом деле находится.

4. Сервер переадресации: обращается к серверу регистрации для определения текущего IP-адреса пользователя, но в отличие от прокси сервера только «переадресует» клиента, а не устанавливает собственные соединения.

Прокси-серверы в SIP-сети также могут вносить изменения в передаваемые сообщения — это позволяет беспрепятственно преодолевать NAT в случае если прокси-сервер стоит на NAT-маршрутизаторе (также возможна настройка прокси сервера, находящегося за NAT в случае если на последнем невозможно установить прокси сервер — для этого потребуется задать параметры переадресации так, чтобы получился прокси-сервер стал «виртуальным сервером»). Помимо этого прокси-серверы можно объединять в «цепочки», которые позволяют использовать телефонию, даже если конечная точка (UA) находится сразу за несколькими NAT-шлюзами.

Сообщения SIP

Стартовая строка различается в зависимости от того является ли сообщение запросом или ответом (в случае запроса — в ней сообщается тип запроса, адресат и номер версии протокола, а в случае ответа — номер версии протокола, статус и текстовую расшифровку статуса).

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

Информационные ответы сообщают о стадии выполнения запроса, они не являются завершением запроса. Остальные же классы ответов завершают выполнение запроса.

Пример

Рассмотрим пример процесса установления соединения с использованием SIP-протокола (пример взят из RFC 3261). Данный пример отражает работу базовых функций телефонии и соответственно не затрагивает такие возможности как видеосвязь передача текстовых сообщений и др. — общий принцип работы протокола остается неизменным.

Пользователь Alice (sip:alice@atlanta.com) вызывает пользователя Bob (sip:bob@biloxi.com).

1. Пользователь Alice посылает сообщение INVITE прокси-серверу по умолчанию (atlanta.com) Если бы пользователю Alice был известен IP-адрес пользователя Bob и он мог к нему обратиться напрямую, то запрос INVITE в этом случае мог быть послан непосредственно вызываемому пользователю.

2. Прокси-сервер посылает запрос INVITE серверу вызываемого абонента (biloxi.com).

3. Далее прокси-сервер пользователя Bob при необходимости определяет его текущий IP-адрес и посылает ему сообщение INVITE — у пользователя начинает звонить телефон, о чем сообщается в ответе 180 (Ringing).

4. Если вызываемый пользователь ответил на звонок, то на запрос INVITE высылается ответ 200 (OK).

5. Вызывающий пользователь отправляет сообщение ACK, сообщающее вызываемому о том, что он получил ответ на свой запрос INVITE, им задаются окончательные параметры соединения. На этом этапе все готово к установлению соединения по протоколу RTP (Real-time Transport Protocol).

6. Устанавливается RTP-соединение с заранее согласованными параметрами.

7. Для завершения соединения, завершающим пользователем (кладет трубку) высылается запрос BYE, на которое высылается ответ 200 (OK)

Пока сообщения установления соединения (INVITE) ходят между прокси-серверами и неизвестно доступен ли вызываемый пользователь, в ответ на INVITE посылается ответ 100 (Trying), сообщающий о попытке установления соединения.

Читайте также:  нурлан насип биография год рождения

Так как прокси-сервер может устанавливать собственные соединения, его использование позволяет вызовам без проблем преодолевать NAT. Также возможно построение нескольких прокси-серверов в одну цепочку, что позволяет преодолевать сразу несколько NAT.

Кодеки

Для передачи звука и видео используются различные алгоритмы сжатия и кодирования данных. Эти алгоритмы называются кодеками. Различные кодеки используют различную ширину полосы пропускания, а также вносят различные задержки и обеспечивают различное качество сервиса. Для звуковых кодеков обычно ширина полосы пропускания составляет от 4-х до 64 кбит/с.

Методика тестирования

Основное направления тестирования SIP-телефонии заключается в рассмотрении качества передачи голоса при ограничении ширины полосы пропускания. Также будет рассматриваться качество передачи голоса при динамическом изменении числа сеансов IP-телефонии и изменении загруженности канала связи. При тестировании IP-маршрутизаторов будет также рассматриваться поведение потоков трафика при установлении сеансов IP-телефонии.

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

Заключение

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

Источник

Что такое SIP-протокол

Перспективное направление в IP-телефонии — SIP-телефония — звонки через интернет на основе протокола SIP. Этот протокол позволяет абонентам быть мобильными и принимать звонки независимо от местонахождения. Его возможности делают соединение стабильным, безопасным, с высоким качеством связи. Протокол в последнее время часто используют вместо популярного H.323. SIP-протокол рассматривается специалистами как более подходящий для интернет-соединений.

Разделение понятий IP, SIP, VoIP

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

IP (Internet Protocol) — базовое понятие. Это технология, которая позволяет обмениваться информацией между всеми компьютерами в мире. IP был изобретен в 1981 году, и именно на основе протокола TCP/IP родился интернет.

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

VoIP — «Voice over IP», иначе «голос через интернет-соединение». Это технология передачи голоса через интернет. Изначально слышать друг друга могли только пользователи интернета. Сейчас с помощью специальных шлюзов VoIP позволяет звонить на городские и мобильные телефоны через интернет. VoIP используют и без телефонии, когда проходит интернет-трансляция: вебинары, видеоконференции, подкасты.

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

Возможности SIP-телефонии

Алгоритм работы SIP-телефонии

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

В телефонии это работает так. При звонке голос через микрофон и звуковую карту кодируется и сжимается с помощью кодека. Затем полученные данные разбиваются в IP-пакеты и передаются через шлюзы по сети. На принимающем устройстве данные раскодируются обратно в голосовое сообщение. Это типовой алгоритм работы для разных протоколов.

Для телефонии требуется специальное оборудование:

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

SIP-протокол — открытый стандарт, который поддерживается десятками софтфонов, IP-телефонов. Услуги SIP-телефонии оказывает множество телекоммуникационных компаний. Эта технология дает возможность звонить через интернет даже по городскому аналоговому телефону стандарта DECT, который подключен через SIP-шлюз.

Как устроен SIP-протокол?

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

От SMTP пришел формат адресов пользователей. Он напоминает e-mail адреса, потому что состоит из имени и идентификатора хоста. SIP-адреса бывают четырех типов: имя@домен, имя@хост, имя@IР-адрес, номер_телефона@шлюз. В начале прибавляется приставка sip. Соединение по такому адресу удобнее, чем по IP-адресу, поэтому пользователи смогут найти друг друга, даже если IP-адрес поменялся.

SIP — «протокол инициирования сеансов», поэтому он отвечает за установление соединения. Он находит абонента и обеспечивает стабильность связи, но не передает непосредственно текст, голос или видео. В обмене мультимедийными данными его обычно используют для соединения с абонентом. За передачу звука отвечают другие протоколы, например RTP (Real-time Transport Protocol).

Технология была разработана в 1996 году и учитывает недоработки других сетевых протоколов. Ее создателями были специалисты из группы MMUSIC Инженерного совета интернета (Internet Engineering Task Force). Это международная организация, которая развивает протоколы и архитектуры.

Принципы протокола SIP

Безопасность использования протокола SIP

Угрозы

При использовании IP-телефонии всегда существует риск атак. Злоумышленники могут:

Меры безопасности

Заключение

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

Такая телефония имеет много преимуществ: дешевая связь, доступность в любой точке земного шара, простая масштабируемость сети. Но при ее использовании требуются дополнительные меры безопасности: шифрование данных, защита серверов и настройки ограничений. Если вы подключаете телефонию через оператора связи, узнавайте у него о том, как он обеспечивает безопасность.

Читайте также:  Удельный расход топлива что это

Источник

Взаимодействие клиентов 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. Несмотря на то, что данное сообщение идет со стороны Ивана, значения полей остаются такими же, как были в первоначальном запросе (от Петра к Ивану). Это объясняется тем, что данные поля определяют направление запроса, а не сообщения.

Строка 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-сервере.

Источник

Обучающий онлайн портал