VOIP стандарты H.323 и SIP

Vadim Nironen

Работа по предмету

Высшая школа майнор Институт инфотехнологии

Таллинн 2010

Введение

«Концепция передачи голоса по сети с помощью персонального компьютера зародилась в Университете штата Иллинойс (США). В 1993 г. Чарли Кляйн выпустил в свет Maven, первую программу для передачи голоса по сети с помощью PC. Одновременно одним из самых популярных мультимедийных приложений в сети стала CU-SeeMe, программа видеоконференций для Macintosh (Mac), разработанная в Корнельском университете.

Апрель 1994 г. Во время полета челнока Endeavor NASA передало на Землю его изображение с помощью программы CU-SeeMe. Одновременно, используя Maven, попробовали передавать и звук. Полученный сигнал из Льюисовского исследовательского центра поступал на Maven, соединенный с Интернет, и любой желающий мог услышать голоса астронавтов. Потом одну программу встроили в другую, и появился вариант CU-SeeMe с полными функциями аудио и видео как для Maven, так и для PC. Февраль 1995 г. Израильская компания VocalTec предложила первую версию программы Internet Phone, разработанную для владельцев мультимедийных PC, работающих под Windows. Это стало важной вехой в развитии Интернет-телефонии!» (А.В. Росляков, М.Ю. Самсонов & И, В, Шибаева 2003:16)

«Под IP телефонией (VOIP Voice over IP) понимают технологию передачи голоса через сети протокола IP в режиме реального времени. Такой протокол используется как в сети Интернет, так и в локальных сетях. Обычный телефонный звонок можно разбить на две фазы: набор номера (и все что при этом происходит) и разговор. Точно так же и задача передачи телефонных звонков по сетям ip практически разбивается на две фазы: коммутация (маршрутизация) вызовов и передача данных (кодированного голоса). Коммутация вызовов осуществляется передачей сигнальных сообщений, а данный процесс упрощенно называется сигнализацией». (Б. С. Гольдштейн, А. А. Зарубин, В. В. Саморезов 2005:15) Сигнализация решается средствами специальных протоколов H.323, SIP и др. по мнению автора это на сегодняшний день 2 основных стандарта, которые будут рассмотрены ниже.

Данная работа предназначена для общего ознакомления со стандартами H.323 и SIP, и будет полезна как для начинающих, так и продвинутых пользователей, которых интересует VOIP. По мнению автора, эта технология в настоящее время бурно развивается, и является актуальной для её рассмотрения. Тема эта очень большая, и в данном реферате невозможно изложить все детали этих стандартов, каждая область этого вопроса, изложена в отдельных книгах. Таким образом, целью автора являлось ознакомить и дать некоторое знание об этих двух стандартах: Узнать, как работают эти стандарты, чем они отличаются, перспективы этих протоколов.

Протокол H.323

Архитектура системы на базе стандарта Н.323

«Основными устройствами сети являются: терминал, контроллер зоны (Gatekeeper), шлюз и устройство управления конференциями (MCU). Все перечисленные компоненты организованы в так называемые зоны Н.323. Одна зона состоит из контроллера зоны и нескольких оконечных точек, причем контроллер зоны управляет всеми оконечными точками своей зоны. Зоной может быть и вся сеть поставщика услуг IP-телефонии или ее часть, охватывающая отдельный регион. Деление на зоны Н.323 не зависит от топологии пакетной сети, но может быть использовано для организации наложенной сети Н.323 поверх пакетной сети, используемой исключительно в качестве транспорта. » ( А.В. Росляков, и др. 2003:37)

Терминал H.323

«Терминал Н.323 представляет собой оконечное устройство пользователя сети IP-телефонии, способное передавать и принимать трафик в масштабе реального времени, взаимодействуя с другими терминалами Н.323, шлюзом или устройством управления конференциями. Для обеспечения этих функций терминал включает в себя:

элементы аудио (микрофон, акустические системы, телефонный микшер

система акустического эхоподавления)

элементы видео (монитор, видеокамера)

элементы сетевого интерфейса

интерфейс пользователя

Н.323-терминал должен поддерживать протоколы Н.245, Q.931, RAS, RTP/RTCP и семейство протоколов Н.450, а также включать в себя аудиокодек G.711. Также немаловажна поддержка протокола совместной работы над документами Т.120» (А.В. Росляков, и др. 2003:38) Определения протоколов смотри в приложении 1.

Шлюз

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

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

реализация физического интерфейса с телефонной и IP-сетью

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

преобразование сигналов абонентской сигнализации в пакеты данных и обратно

преобразование речевого сигнала в пакеты данных и обратно

соединение абонентов

передача по сети сигнализационных и речевых пакетов

разъединение связи

Большая часть функций шлюза в рамках архитектуры TCP/IP реализуется в процессах прикладного уровня.

При отсутствии в сети контроллера зоны должна быть реализована еще одна функция шлюза – преобразование номера PSTN (public switched telephone network) в транспортный адрес IP-сети.

В случае, когда терминал Н.323 связывается с другим терминалом Н.323, расположенным в той же самой IP-сети, шлюз в этом соединении не участвует…. (А.В. Росляков, и др. 2003:39)

Контроллер зоны

Контроллер зоны выполняет функции управления зоной сети IP-телефонии, в которую входят терминалы, шлюзы и устройства управления конференциями, зарегистрированные у этого контроллера зоны. Функции, выполняемые контроллером зоны:

регистрация оконечных и других устройств

преобразование alias-адреса (имени абонента, телефонного номера, адреса электронной почты и др.) в транспортный адрес сети с маршрутизацией пакетов IP (IP адрес и номер порта TCP)

контроль доступа пользователей системы к услугам IP-телефонии

контроль, управление и резервирование пропускной способности сети

определение местоположения оконечного оборудования в сети

маршрутизация сигнальных сообщений между терминалами, расположенными в одной зоне

опрос и индикация текущего состояния оконечного оборудования

Контроллер зоны упрощает процесс вызова, позволяя использовать легко запоминающиеся alias-адреса. Функции контроллера зоны могут быть встроены в шлюзы, устройства управления конференциями, а также в терминалы Н.323. (А.В. Росляков, и др. 2003:41)

Устройство управления конференциями

Устройство управления конференциями обеспечивает связь трех и более терминалов Н.323. Все терминалы, участвующие в конференции, устанавливают соединение с устройством управления конференциями (MCU Multipoint Control Unit). Устройство управляет ресурсами конференции, согласовывает возможности терминалов по обработке звука и видео, определяет аудио и видеопотоки, которые необходимо направлять по многим адресам.

Рекомендация Н.323 предусматривает три вида конференций:

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

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

3. Смешанная конференция, т.е. комбинация двух предыдущих видов.

Контролер конференций должен использоваться для организации конференций любого вида. Он определяет режим конференции, который может быть общим для всех участников конференции или отдельным для каждого из них. (А.В. Росляков, и др. 2003:42)

Сигнализация по стандарту H.323

Стек протокола H.323

«Семейство протоколов Н.323 включает в себя три основных протокола: протокол взаимодействия оконечного оборудования с контроллером зоны – RAS, протокол управления соединениями – Н.225 и протокол управления логическими каналами – Н.245. Для переноса сигнальных сообщений H.225 и управляющих сообщений H.245 используется протокол с установлением соединения и с гарантированной доставкой информации – TCP. Сигнальные сообщения RAS переносятся протоколом с негарантированной доставкой информации – UDP. Для переноса речевой и видеоинформации используется протокол передачи информации в реальном времени – RTP. Контроль переноса пользовательской информации производится протоколом RTCP.

Эти три протокола и другие, совместно с Интернет протоколами TCP/IP, UDP, RTP и RTCP» (Wikipedia.org) можно увидеть на рисунке 1.

Рисунок 1. Стек протокола H.323 (http://www.voiceip.com.ua/articles/h323_stek.jpg)

Протокол RAS

«H.225 Registration, Admission, and Status (RAS)

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

Обнаружение контроллера зоны

Регистрация оконечного оборудования у контроллера зоны

Контроль доступа оконечного оборудования к сетевым ресурсам

Определение местоположения оконечного оборудования в сети

Изменение полосы пропускания в процессе обслуживания вызова

Опрос и индикация текущего состояния оконечного оборудования

Оповещение контроллера зоны об освобождении полосы пропускания, ранее занимавшейся оборудованием.» ( Соколов О.В. Слободской Н.В.online)

«Выполнение первых трех процедур, предусмотренных протоколом RAS, является начальной фазой установления соединения с использованием сигнализации Н.323. Далее следуют фаза сигнализации Н.225.0 (Q.931) и обмен управляющими сообщениями Н.245. Разъединение происходит в обратной последовательности: в первую очередь закрывается управляющий канал Н.245 и сигнальный канал Н.225.0, после чего по каналу RAS контроллер зоны оповещается об освобождении ранее занимавшейся оконечным оборудованием полосы пропускания.

Для переноса сообщений протокола RAS используется протокол негарантированной доставки информации UDP.

Данный канал сигнализации открывается перед установлением любого другого канала, так как является управляющим для всех типов каналов». ( Гольдштейн Б.С., Пинчук А.В., Суховицкий А.Л. 2006:48)

Сигнальный канал Н.225.0

«H.225 сигнализация вызова - используется для установления соединения между H.323 оконечными точками (терминалами и шлюзами), через которые будут транспортироваться данные в реальном масштабе времени. Сигнализация вызова включает обмен H.225 сообщениями протокола через надежный канал, задействованный для этой цели (канал сигнализации вызовов).

Если в H.323 сети нет контроллера зоны, то конечные точки обмениваются сигналами вызовов непосредственно друг с другом. Если контроллер зоны есть, то возможно использование двух методов вызовов: обмен сигналами непосредственно между конечными точками (так называемый "метод прямых вызовов") и обмен между оконечными точками только после обращения к контроллеру зоны и маршрутизации вызова ("метод с маршрутизацией вызовов в контроллере зоны"). Выбор используемого метода осуществляется при регистрации конечной точки в контроллере зоны.

Метод с маршрутизацией вызовов в контроллере зоны происходит следующим образом. Сигналы вызовов между оконечными точками и контроллером зоны передаются по RAS-каналам. Контроллер зоны получает сообщение вызова через канал сигнализации из одной оконечной точки и направляет его к другой оконечной точке через канал сигнализации другой оконечной точки».( Соколов О.В. Слободской Н.В. 2006:70)

Управляющий канал Н.245

«H.245 - сигнализация управления - состоит из сквозного обмена H.245-сообщеними между H.323-оконечными точками. H.245-сообщения управления передаются через H.245-каналы управления. H.245 - канал управления представляет из себя логический канал, который постоянно открыт, в отличие от каналов обмена мультимедиа потоков. Сообщения сигнализации управления можно разделить на две группы: обмен терминалов H.323 своими параметрами и сообщения управления.

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

Сообщения управления процессами логическими каналами между конечными точками: логический канал несет информацию от одной оконечной точки до другой оконечной точки (в случае двухточечной конференции) или множественных оконечных точек (в случае отметки на многоточечную конференцию). Протокол H.245 предоставляет набор сообщений, обеспечивающих открытие и закрытие этих каналов. Логический канал всегда однонаправленный.» (Соколов О.В. Слободской Н.В. 2006:75)

Процедура соединения по H.323

«Сценарий установления соединения между двумя терминалами H.323 без использования контроллера зоны ( рисунок 2)

Рисунок 2. Установка соединения H.323 (http://www.voiceip.com.ua/articles/h323_h323_signaling_0001.gif)

Оконечный пункт A (вызывающая сторона) соединяется с оконечным пунктом B (вызываемая сторона) и посылает сообщение Setup (установка, как определено в H.225.0), включающее тип вызова (например, только звуковые сигналы), номер вызываемой и вызывающей стороны и адрес.

Оконечный пункт B откликается сообщением уведомления (Alerting). Оконечный пункт A должен принять это сообщение прежде, чем истечет время, отведенное на установку.

Когда пользователь в оконечном пункте B отвечает на вызов (снимает трубку), сообщение Connect (соединение) передается в оконечный пункт A.

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

Каждый терминал отвечает сообщением TerminalCapabilitySetAck (подтверждение установки возможностей терминала). В случае если удаленный оконечный пункт не обладает какими-то возможностями, будет передано сообщение TerminalCapabilitySetReject (отклонение установки возможностей терминала), и терминалы продолжат передавать эти сообщения, пока не определят, что устанавливаемые возможности поддерживаются обоими оконечными пунктами.

Каждый терминал передает сообщение H.245 OpenLogicalChannel (открыть логический канал), чтобы открыть логический канал с удаленным оконечным пунктом, чтобы настроить речевые каналы, по которым будет производиться обмен мультимедийными потоками.

В случае готовности к приемке данных каждый терминал передает OpenLogicalChannelAck (подтверждение открытия логического канала) в удаленный оконечный пункт, определяя номер порта, на который удаленному оконечному пункту следует передавать данные RTP, и номер порта, на который следует передавать данные RTCP удаленному оконечному пункту.

Оконечные пункты обмениваются информацией в пакетах RTP. Во время этого обмена передаются пакеты RTCP для контроля качества передачи данных.

Когда оконечный пункт A дает отбой (вешает трубку), он должен передать сообщение H.245 CloseLogicalChannel (закрыть логический канал) для каждого канала, открытого с оконечным пунктом B.

Оконечный пункт B отвечает сообщением CloseLogicalChannelAck (подтверждение закрытия логического канала).

Оконечный пункт A посылает команду H.245 EndSessionCommand (команда завершения сеанса) и закрывает канал после приема такого же сообщения от оконечного пункта B.

Оба терминала посылают сообщение H.225.0 ReleaseComplete (освобождение завершено) по каналу сигнализации вызова, которое закрывает канал и завершает соединение.» (Соколов О.В. online)

Протокол инициирования сеансов – SIP

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

«Протокол инициирования сеансов (Session Initiation Protocol - SIP) является протоколом прикладного уровня и предназначается для организации, модификации и завершения сеансов связи (например, мультимедийных конференций, телефонных соединений). Пользователи могут принимать участие в существующих сеансах связи, приглашать других пользователей и быть приглашенными ими к новому сеансу связи. Протокол SIP разработан группой MMUSIC комитета IETF, а спецификации протокола представлены в документе RFC 2543». (Wikipedia.org SIP) «В основу протокола заложены следующие принципы:

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

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

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

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

Интеграция в стек существующих протоколов Интернета, разработанных 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 не зависят ни от одного из этих протоколов.

Взаимодействие с другими протоколами сигнализации. Протокол SIP может быть использован совместно с протоколом Н.323».( Гольдштейн Б.С., Гойхман В.Ю., Онучина Д.Н. 2009:54)

Интеграция протокола SIP с IPсетями

«Важной особенностью протокола SIP является его независимость от транспортных

технологий. В качестве транспорта могут использоваться протоколы Х.25, Frame Relay, AAL5, IPX и др. Структура сообщений SIP не зависит от выбранной транспортной технологии.

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

При использовании протокола ТСР разные сообщения, относящиеся к одному вызову, либо могут передаваться по одному TCP соединению, либо для каждого запроса и ответа на него может открываться отдельное TCP соединение». (Гольдштейн А.Б., Гольдштейн Б.С. 2006:98)

«На рисунке 3 показано место, занимаемое протоколом SIP в стеке протоколов TCP/IP.

Рисунок 3. Место протокола SIP в стеке протоколов TCP/IP (http://phone.icf.bofh.ru/voip/3/glava7.files/image002.jpg)

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