К какой плоскости архитектуры voip относится протокол н 323
Первый стандартизированный подход к построению сетей IP-телефонии был предложен в рекомендации ITU-T H.232. Рекомендация Н.323 предусматривает использование набора протоколов, предназначенных для передачи как речевой информации, так и для работы мультимедийных приложений в сетях с негарантированным качеством обслуживания.
Сегодня этот способ создания сетей IP-телефонии широко используется операторами во всем мире, для предоставления услуг междугородной и международной телефонной связи. Сети на базе протоколов Н.323 ориентированы на интеграцию с телефонными сетями и могут рассматриваться как сети ISDN, наложенные на сети передачи данных. В частности, процедура установления соединения в таких сетях IP-телефонии базируется на рекомендации Q.931 [1] и аналогична процедуре, используемой в сетях ISDN (см. рисунок 5.1).
Рисунок 5.1 – Архитектура сети на базе H.323
Основными устройствами сети являются: терминал (Terminal), шлюз (Gateway), привратник (Gatekeeper) и устройство управления конференциями (Multipoint Control Unit - MCU).
ТерминалН. 323 – оконечное устройство пользователя сети IP-телефонии, которое обеспечивает двухстороннюю речевую (мультимедийную) связь с другим терминалом Н.323, шлюзом или устройством управления конференциями.
Наиболее важными функциями привратника являются:
- регистрация оконечных и других устройств;
- контроль доступа пользователей системы к услугам IP-телефонии при помощи сигнализации RAS;
- преобразование аlias-адреса вызываемого пользователя (объявленного имени абонента, телефонного номера, адреса электронной почты и др.) в транспортный адрес сетей с маршрутизацией пакетов IP (IP-адрес плюс номер порта TCP);
- контроль, управление и резервирование пропускной способности сети;
В одной сети IP-телефонии, отвечающей требованиям рекомендации ITU H.323, может находиться несколько привратников, взаимодействующих друг с другом по протоколу RAS. Кроме основных функций, определенных рекомендацией Н.323, привратник может отвечать за аутентификацию пользователей и начисление платы (биллинг) за телефонные соединения.
Устройство управления конференциямиобеспечивает возможность организации связи между тремя или более участниками. Рекомендация Н.323 предусматривает три вида конференции: централизованная (т.е. управляемая MCU, с которым каждый участник конференции соединяется в режиме точка-точка), децентрализованная (когда каждый участник конференции соединяется с остальными ее участниками в режиме точка-группа точек) и смешанная.
Преимуществом централизованной конференции является сравнительно простое терминальное оборудование, недостатком – большая стоимость устройства управления конференциями. Для децентрализованной конференции требуется более сложное терминальное оборудование и желательно, чтобы в сети IP поддерживалась передача пакетов IP в режиме многоадресной рассылки (IP multicasting). Если этот режим в сети не поддерживается, терминал должен передавать речевую информацию каждому из остальных участников конференции в режиме точка-точка.
Устройство управления конференциями состоит из одного обязательного элемента – контроллера конференций (Multipoint Controller, МС) и, кроме того, может включать в себя один или более процессоров для обработки пользовательской информации (Multipoint Processor – МР). Контроллер может быть физически совмещен с привратником, шлюзом или устройством управления конференциями. Устройство управления конференциями может быть совмещено со шлюзом или привратником.
Контроллер конференций используется для организации конференции любого вида. Он организует обмен между участниками конференции данными о режимах, поддерживаемых их терминалами, и указывает, в каком режиме участники конференции могут передавать информацию, причем в ходе конференции этот режим может изменяться, например, при подключении к ней нового участника. Так как контроллеров в сети может быть несколько, для каждой вновь создаваемой конференции должна быть проведена специальная процедура выявления того контроллера, который будет управлять данной конференцией. При организации централизованной конференции, кроме контроллера МС, должен использоваться процессор МР, обрабатывающий пользовательскую информацию. Процессор МР отвечает за переключение или смешивание речевых потоков, видеоинформации и данных. Для децентрализованной конференции процессор не нужен.
Существует еще один элемент сети Н.323 – прокси-серверН.323.Этот сервер функционирует на прикладном уровне и может проверять пакеты с информацией, которой обмениваются два приложения. Прокси-сервер может определять, с каким приложением (Н.323 или другим) ассоциирован вызов, и осуществлять нужное соединение. Прокси-сервер выполняет следующие ключевые функции:
- подключение через средства коммутируемого доступа или локальные сети терминалов, не поддерживающих протокол резервирования ресурсов (RSVP). Два таких прокси-сервера могут образовать в IP-сети туннельное соединение с заданным качеством обслуживания;
- маршрутизацию трафика Н.323 отдельно от обычного трафика данных;
- обеспечение совместимости с преобразователем сетевых адресов, поскольку допускается размещение оборудования Н.323 в сетях с пространством адресов частных сетей;
- защиту доступа (только для трафика Н.323).
Лекция 6. Стек протоколов H.323
Цель лекции: ознакомление с стеком протоколов H.323.
H.323 это не один стандарт, а целая серия стандартов для поддержки передачи речи и видео по сетям без обеспечения качества услуг. Он содержит спецификации алгоритмов кодирования речи и видео, протоколы установления и управления соединениями, меры для обеспечения передачи в реальном времени, интерфейсы с другими сетями и т. д. Стек протоколов H.323, приведен на рисунке 6.1 [7].
Рисунок 6.1 – Cтек протоколов H.323
Семейство протоколов H.323. включает в себя три протокола составляющие основу:
- протокол RAS (Registration, Admission and Status) – протокол взаимодействия оконечного оборудования с Gatekeeper (привратником);
- H.225 – протокол управления соединениями;
- H.245 – протокол управления логическими каналами.
H.323 включает также такие стандарты кодирования речи, как G.711, G.722, G.723.1, G.728 и G.729, из которых G.711 является основным.
Соединение же между двумя устройствами H.323 устанавливается и закрывается с помощью протокола сигнализации вызова Q.931, а регистрация и контроль доступа, контроль за доступной пропускной способностью и статусом устройств H.323 осуществляются посредством третьего протокола этой подгруппы – RAS (в его названии перечислены основные выполняемые им функции – регистрация, контроль доступа и мониторинг статуса). В сети без привратников RAS канал вообще не используется.
RAS – протокол взаимодействия оконечного оборудования с привратником. Под оконечным оборудованием следует понимать терминалы, шлюзы, устройства управления конференциями. Основными функциями выполняемыми протоколом RAS являются:
- поиск и обнаружение привратника (gatekeeper);
- процедура регистрации оконечного оборудования на привратнике (gatekeeper);
- управление доступом оконечного оборудования к сетевым ресурсам;
- установление места дислокации оконечного оборудования в сети;
- управление размером полосы пропускания в течении обработки вызова;
- мониторинг текущего состояния оконечного оборудования;
- информирование привратника об освобождении полосы пропускания, ранее занимаемой оконечным оборудование.
Заголовок RTP состоит из следующих полей:
- поле версии (2 бита): текущая версия вторая;
- поле P – поле заполнения (1 бит). Это поле сигнализирует о наличии заполняющих октетов в конце полезной нагрузки. В этом случае последний октет указывает число заполняющих октетов;
- поле X – поле расширения заголовка (1 бит). Когда это поле задано, то за основным заголовком следует еще один дополнительный, используемый в экспериментальных расширениях RTP;
- поле CC – поле числа отправителей (4 бита). Это поле содержит число идентификаторов отправителей, чьи данные находятся в пакете, причем сами идентификаторы следуют за основным заголовком;
- поле маркера (1 бит). Смысл бита маркера зависит от типа полезной нагрузки. Бит маркера используется обычно для указания границ потока данных. В случае передачи видео он задает конец кадра. В случае передачи речи он задает начало разговора после периода молчания;
Рисунок 6.2 – Формат пакета RTP
- поле типа полезной нагрузки (7 бит). Это поле идентифицирует тип полезной нагрузки и формат данных, включая сжатие и шифрование. В стационарном состоянии отправитель использует только один тип полезной нагрузки в течение сеанса, но он может его изменить в ответ на изменение условий, если об этом сигнализирует протокол управления передачей в реальном времени;
- поле порядкового номера (16 бит). Каждый источник начинает нумеровать пакеты с произвольного номера, увеличиваемого затем на единицу с каждым посланным пакетом данных RTP. Это позволяет обнаружить потерю пакетов и определить порядок пакетов с одинаковой отметкой о времени. Несколько последовательных пакетов могут иметь одну и ту же отметку о времени, если логически они порождены в один и тот же момент (например, пакеты, принадлежащие к одному и тому же видеокадру);
- поле отметки о времени (32 бита). Здесь записывается момент времени, в который был создан первый октет данных полезной нагрузки. Единицы, в которых время указывается в этом поле, зависят от типа полезной нагрузки. Значение определяется по локальным часам отправителя;
- поле идентификатора источника синхронизации: генерируемое случайным образом число, уникальным образом идентифицирующее источник в течение сеанса;
- поле полезной нагрузки: в случае передачи речи, полезной нагрузкой являются речевые кадры, сформированные вокодером.
Рисунок 6.3 – Упрощённый сценарий установления соединения в сети Н.323
В данном сценарии предполагается, что конечные пользователи уже знают IP-адреса друг друга. Рассмотрим этот упрощенный сценарий:
- оконечные устройства обмениваются по каналу Н.245 информацией о типах используемых речевых кодеков(G.729, G.723.1 и т.д.);
- открываются логические каналы для передачи речевой информации;
H.323 долгое время удерживал лидирующие позиции в сфере видеоконференцсвязи. Но в последнее время по статистике все большую популярность на рынке набирает протокол SIP, который уже поддержан многими крупными производителями, включая решения Polycom и Cisco.
В данном обзоре предлагаем рассмотреть особенности протокола SIP и его отличия от H.323 при реализации программного обеспечения для ВКС. Постараемся ответить на главный вопрос – какой же из протоколов более перспективен для организации видеотрансляций через Интернет.
H.323 рекомендован Международным союзом электросвязи (ITU-T), который определяет набор стандартов для передачи мультимедиа-данных по сетям с пакетной передачей. Наборы рекомендации определяют порядок функционирования абонентских терминалов в сетях с разделяемым ресурсом.
Наряду с H.323, SIP относится к VoIP. В последнее время H.323 в IP-телефонии всё чаще заменяется протоколом SIP.
По прогнозу Infonetics, VoIP-рынок в целом вырастет до $82.7 млн. в 2017 году:
Протоколы H.323
Каждый H.323-терминал либо устройство, поддерживающее протокол H.323, имеет свой собственный IP-адрес. По нему осуществляется механизм маршрутизации H.323-пакетов внутри сети. Для связи терминалов со шлюзами и гейткипером, а также для передачи медиатрафика используются протоколы UDP. Транспортные протоколы TCP используются только для установления звонка между терминалами и обмена дополнительными возможностями.
Передача медиаданных по рекомендации H.323 разделена на пять основных этапов:
- обнаружение гейткипера и регистрация на нем;
- установка соединения между двумя и более терминалами;
- обмен голосом и видео - передача посредством транспортных протоколов;
- обмен мультимедиа - передача различных графических или текстовых документов, совместная работа над ними;
- завершение вызова.
Процедура регистрации необходима для того, чтобы конечные точки (терминалы) могли сообщить свои адреса гейткиперу и войти в его зону управления.
Для установки соединения между терминалами и для обмена медиатрафиком используются следующие протоколы:
- H.225 - установка соединения между H.323-устройствами.
- H.245 - обмен информацией о возможностях (поддерживаемые кодеки, например). Один терминал “сообщает” другому терминалу о поддерживаемых возможностях (кодеках), и выбирает кодек для отправки из возможностей другого терминала.
- RAS - используется между терминалами, шлюзами и гейткипером. Отвечает за регистрацию, разрешение на звонки и статусы.
- RTP - используется при передаче медиатрафика в реальном времени.
Архитектура технологии Voice over IP может быть упрощенно представлена в виде двух плоскостей. Нижняя плоскость – это базовая сеть с маршрутизацией пакетов IP, верхняя плоскость – это открытая архитектура управления обслуживанием вызовов (запросов связи).
Нижняя плоскость представляет собой комбинацию известных протоколов Интернет: это – RTP (Real Time Transport Protocol), который функционирует поверх протокола UDP (User Datagram Protocol), расположенного, в свою очередь, в стеке протоколов TCP/IP над протоколом IP. Таким образом, иерархия RTP/UDP/IP представляет собой своего рода транспортный механизм для речевого трафика. Отметим, что в сетях с маршрутизацией пакетов IP для передачи данных всегда предусматриваются механизмы повторной передачи пакетов в случае их потери. При передаче информации в реальном времени использование таких механизмов только ухудшит ситуацию, поэтому для передачи информации, чувствительной к задержкам, но менее чувствительной к потерям, такой как речь и видеоинформация, используется механизм негарантированной доставки информации RTP/UDP/IP.
В сетях IP потеря пакетов – обычное и вполне нормальное явление. Фактически протокол управления передачей (TCP) был изначально спроектирован с учетом потери пакетов при передаче. Если пакет теряется в сети TCP/IP, он передается повторно. Во многих приложениях реального масштаба времени повторная передача пакетов является скорее недостатком, в связи с их чувствительностью к времени получения информации.
Рекомендации ITU-Т допускают задержки в одном направлении не превышающие 150 мс. В сети VoIP Cisco односторонняя задержка может составлять 120 мс (задержку от 65мс до 85 мс вносят два шлюза VoIP, при использовании кодека G.729). Если приемная станция запросит повторную передачу пакета IP, то задержка при этом будет слишком велика и произойдет прерывание диалога.
Верхняя плоскость управления обслуживанием запросов связи. Предусматривает принятие решений о том, куда вызов должен быть направлен, и каким образом должно быть установлено соединение между абонентами. Инструмент такого управления – телефонные системы сигнализации, начиная с систем, поддерживаемых декадно-шаговыми АТС и предусматривающих объединение функций маршрутизации и функций создания коммутируемого разговорного канала в одних и тех же декадно-шаговых искателях. Далее принципы сигнализации эволюционировали к системам сигнализации по выделенным сигнальным каналам, к многочастотной сигнализации, к протоколам общеканальной сигнализации №7 и к передаче функций маршрутизации в соответствующие узлы обработки услуг Интеллектуальной сети.
В сетях с коммутацией пакетов ситуация более сложна. Сеть с маршрутизацией пакетов IP принципиально поддерживает одновременно целый ряд разнообразных протоколов маршрутизации и сигнализации.
Наиболее распространенным является протокол, специфицированный в рекомендации Н.323 ITU-T, который стал применяться раньше других протоколов.
Другой протокол плоскости управления обслуживанием вызова – SIP – ориентирован на то, чтобы сделать оконечные устройства и шлюзы более интеллектуальными и поддерживать дополнительные услуги для пользователей.
Протокол – SGCP – разрабатывался, для того, чтобы уменьшить стоимость шлюзов за счет реализации функций интеллектуальной обработки вызова в централизованном оборудовании. В конце 1998 года рабочая группа MEGACO комитета IETF разработала протокол MGCP, базирующийся, в основном, на протоколе SGCP.
Рабочая группа MEGACO не остановилась на достигнутом, продолжала совершенствовать протокол управления шлюзами и разработала более функциональный, чем MGCP, протокол MEGACO/H.248. Его адаптированный к Н.323 вариант (под названием Gateway Control Protocol) ITU-T предлагает в рекомендации Н.248.
Если в один прекрасный день вам придется на скорую руку разобраться, что есть VoIP (voice over IP) и что значат все эти дикие аббревиатуры, надеюсь, эта методичка поможет. Сразу замечу, что вопросы конфигурирования дополнительных видов обслуживания телефонии (такие как перевод вызова, голосовая почта, конференц-связь и т.п.) здесь не рассматриваются.
- Базовые понятия телефонии: типы аппаратов, схемы подключения
- Связка SIP/SDP/RTP-протоколов: как это работает
- Как передается информации о нажатых кнопках
- Как происходит передача голоса и факсов
- Цифровая обработка сигналов и обеспечение качества звука в IP-телефонии
1. Базовые понятия телефонии
В общем виде схема подключения локального абонента к телефонному провайдеру по обычной телефонной линии выглядит следующим образом:
На стороне провайдера (АТС) установлен телефонный модуль с портом FXS (Foreign eXchange Subscriber). Дома или в офисе установлен телефон или факс с портом FXO (Foreign eXchange Office) и модуль номеронабирателя.
По внешнему виду порты FXS и FXO никак не отличаются, это обычные 6-выводные RJ11-разъемы. Но с помощью вольтметра отличить их очень просто — на FXS-порте всегда будет какое-то напряжение: 48/60 В, когда трубка положена, или 6–15 В во время разговора. На FXO, если он не подключен к линии, напряжение всегда 0.
Для передачи данных по телефонной линии на стороне провайдера нужна дополнительная логика, которую можно реализовать на модуле SLIC (subscriber line interface circuit), а на стороне абонента — с помощью модуля DAA (Direct Access Arrangement).
Сейчас довольно популярны беспроводные DECT-телефоны (Digital European Cordless Telecommunications). По устройству они аналогичны обычным телефонным аппаратам: в них тоже есть FXO-порт и модуль номеронабирателя, но еще добавлен модуль беспроводной связи станции и трубки на частоте 1,9 ГГц.
Абоненты подключаются к PSTN-сети (Public Switched Telephone Network) — телефонной сети общего пользования, она же ТСОП, ТфОП. PSTN-сеть может быть организована с использованием разных технологий: ISDN, оптики, POTS, Ethernet. Частный случай PSTN, когда используется обычная аналоговая/медная линия — POTS (Plain Old Telephone Service) — простая старая телефонная система.
С развитием Интернета телефонная связь перешла на новый уровень. Стационарные телефонные аппараты все реже используются, в основном по служебным нуждам. DECT-телефоны немного удобнее, но ограничены периметром дома. GSM-телефоны еще удобнее, но ограничены пределами страны (роуминг — дело дорогое). А вот для IP-телефонов, они же cофтфоны (SoftPhone), никаких ограничений, кроме доступа к интернету, нет.
Skype — самый известный пример софтфона. Он может много чего, но имеет два важных недостатка: закрытая архитектура и прослушка известно какими органами. Из-за первого нет возможности создать свою телефонную микросеть. А из-за второго — не очень приятно, когда за вами подсматривают, особенно при личных и коммерческих разговорах.
К счастью есть открытые протоколы для создания своих коммуникационных сетей с плюшками — это SIP и H.323. Софтфонов на SIP-протоколе несколько больше чем на H.323, что можно объяснить его сравнительной простотой и гибкостью. Но иногда эта гибкость может вставлять большие палки в колёса. Оба протокола SIP и H.323 используют RTP-протокол для передачи медиаданных.
Рассмотрим базовые принципы протокола SIP, чтобы разобраться, как происходит соединения двух абонентов.
2. Описание связки SIP/SDP/RTP-протоколов
SIP (Session Initiation Protocol) — протокол установления сессии (не только телефонной) — это текстовый протокол поверх UDP. Также есть возможность использовать SIP поверх TCP, но это редкие случаи.
SDP (Session Description Protocol) — протокол согласования типа передаваемых данных (для звука и видео это кодеки и их форматы, для факсов — скорость передачи и коррекция ошибок) и адреса их назначения (IP и порт). Это также текстовый протокол. Параметры SDP передаются в теле SIP-пакетов.
RTP (Real-time Transport Protocol) — протокол передачи аудио/видеоданных. Это бинарный протокол поверх UDP.
Общая структура SIP-пакетов:
Вот пример двух SIP-пакетов для одной частой процедуры — установления вызова:
Слева изображено содержимое пакета SIP INVITE, справа — ответ на него — SIP 200 OK.
Основные поля выделены рамками:
- o — Origin, имя организатора сессии и идентификатор сессии.
- с — Connection Information, поле описано ранее.
- m — Media Description, поле описано ранее.
- a — медиа-атрибуты, уточняют формат передаваемых данных. Например, указывают направление звука — прием или передача (sendrecv), для кодеков указывают частоту дискретизации и номер привязки (rtpmap).
Также в RTP-пакетах указывается уникальный SSRC-идентификатор (определяет источник RTP-потока) и метка времени (timestamp, используется для равномерного проигрывания звука или видео).
Пример взаимодействия двух SIP-абонентов через SIP-сервер (Asterisk):
Если полученные параметры SDP нас не устроили, или промежуточный SIP-сервер решил не пропускать через себя RTP-трафик, то выполняется процедура повторного согласования SDP, так называемый REINVITE. Кстати, именно из-за этой процедуры у бесплатных SIP-прокси-серверов есть один недостаток — если оба абонента находятся в одной локальной сети, а прокси-сервер находится за NAT'ом, то после перенаправления RTP-трафика ни один из абонентов не будет слышать другого.
3. Передача информации о нажатых кнопках
Иногда после установления сессии, во время разговора, требуется доступ к дополнительным видам обслуживания (ДВО) — удержание вызова, перевод, голосовая почта и т.п. — которые реагируют на определенные сочетания нажатых кнопок.
Так, в обычной телефонной линии есть два способа набора номера:
- Импульсный — исторически первый, использовался в основном в телефонах с дисковым номеронабирателем. Набор происходит за счет последовательного замыкания и размыкания телефонной линии согласно набираемой цифре.
- Тоновый — набор номера DTMF-кодами (Dual-Tone Multi-Frequency) — каждой кнопке телефона соответствует своя комбинация двух синусоидальных сигналов (тонов). Выполняя алгоритм Гёрцеля можно довольно просто определить нажатую кнопку.
Во время разговора импульсный способ неудобен для передачи нажатой кнопки. Так, на передачу «0» требуется приблизительно 1 секунда (10 импульсов по 100 мс: 60 мс — разрыв линии, 40 мс — замыкание линии) плюс 200 мс на паузу между цифрами. К тому же во время импульсного набора будут часто слышны характерные щелчки. Поэтому в обычной телефонии используется только тоновый режим доступа к ДВО.
В VoIP-телефонии информация о нажатых кнопках может передаваться тремя способами:
Передача DTMF внутри аудиоданных(Inband) имеет несколько недостатков — это накладные ресурсы при генерации/встраивании тонов и при их детектировании, ограничения некоторых кодеков, которые могут исказить DTMF-коды, и слабая надежность при передаче (если потеряется часть пакетов, то может произойти детектирование двойного нажатия одной и той же клавиши).
Главное различие между DTMF RFC2833 и SIP INFO: если на SIP-прокси-сервере включена возможность передачи RTP непосредственно между абонентами минуя сам сервер (например, canreinvite=yes в asterisk), то сервер не заметит RFC2833-пакеты, вследствие чего становятся недоступными сервисы ДВО. Передача SIP-пакетов всегда осуществляется через SIP-прокси-серверы, поэтому ДВО всегда будут работать.
4. Передача голоса и факсов
Как уже упоминалось, для передачи медиаданных используются RTP-протокол. В RTP-пакетах всегда указывается формат передаваемых данных (кодек).
Для передачи голоса существует много разнообразных кодеков, с разными соотношениями битрейт/качество/сложность, есть открытые и закрытые. В любом софтфоне обязательно есть поддержка G.711 alaw/ulaw-кодеков, их реализация очень простая, качество звука неплохое, но они требуют пропускной способности в 64 кбит/с. Например, G.729-кодек требует только 8 кбит/с, но очень сильно загружает процессор, к тому же он не бесплатный.
Для передачи команд T.38 используется UDPTL-протокол, это протокол на базе UDP, он используется только для T.38. Для передачи комманд T.38 можно ещё использовать протоколы TCP и RTP, но они используются гораздо реже.
Основные достоинства T.38 — снижение нагрузки на сеть и большая надежность по сравнению с Inband-передачей факса.
Процедура передачи факса в режиме T.38 выглядит следующим образом:
Передавать факсы по интернету желательно в T.38. Если же факс нужно передать внутри офиса или между объектами, имеющими стабильное соединение, то можно использовать передачу факса Inband T.30. При этом перед передачей факса обязательно должна быть отключена процедура эхоподавления, чтобы не вносить дополнительные искажения.
Очень подробно про передачу факсов написано в книге «Fax, Modem, and Text for IP Telephony», авторы — David Hanes и Gonzalo Salgueiro.
5. Цифровая обработка сигналов (ЦОС). Обеспечение качества звука в IP-телефонии, примеры тестирования
С протоколами установления сеанса разговора (SIP/SDP) и методе передачи звука по RTP-каналу мы разобрались. Остался один немаловажный вопрос — качество звука. С одной стороны, качество звука определяется выбранным кодеком. Но с другой, необходимы еще дополнительные процедуры DSP (ЦОС — цифровой обработки сигналов). Данные процедуры учитывают особенности работы VoIP-телефонии: не всегда используется качественная гарнитура, в интернете бывают пропадания пакетов, иногда пакеты приходят неравномерно, пропускная способность сети тоже не резиновая.
Основные процедуры, улучшающие качество звука:
VAD (Voice activity detector) — процедура определения фреймов, которые содержат голос (активный голосовой фрейм) или тишину (неактивный голосовой фрейм). Такое разделение позволяет заметно снизить загрузку сети, поскольку передача информации о тишине требует гораздо меньше данных (достаточно лишь передать уровень шума или вообще ничего не передавать).
Некоторые кодеки уже содержат внутри себя процедуры VAD (GSM, G.729), для других же (G.711, G.722, G.726) нужно их реализовывать.
Если VAD настроен на передачу информации об уровне шума, то передаются специальные SID-пакеты (Silence Insertion Descriptor) в 13м RTP-формате CN (Comfort Noise).
Стоит заметить, что SID-пакеты могут быть отброшены SIP-прокси-серверами, поэтому для проверки желательно настраивать передачу RTP-трафика мимо SIP-серверов.
CNG (сomfort noise generation) — процедура генерации комфортного шума на базе сведений из SID-пакетов. Таким образом, VAD и CNG работают в связке, но CNG-процедура гораздо менее востребована, поскольку заметить работу CNG-можно не всегда, особенно при малой громкости.
PLC (packet loss concealment) — процедура восстановления звукового потока при потере пакетов. Даже при 50% потере пакетов хороший алгоритм PLC позволяет добиться приемлемого качества речи. Искажения, конечно, будут, но слова разобрать можно.
Простейший способ эмуляции потери пакетов (в Linux) — воспользоваться утилитой tc из пакета iproute с модулем netem. Она выполняет шейпинг только исходящего трафика.
Пример запуска эмуляции сети с потерей 50% пакетов:
Jitter buffer — процедура избавления от jitter-эффекта, когда интервал между принятыми пакетами очень сильно меняется, и что в худшем случае ведет к неверному порядку принимаемых пакетов. Также данный эффект приводит к прерываниям речи. Для устранения jitter-эффекта необходимо на принимаемой стороне реализовать буфер пакетов с размером, достаточным для восстановления исходного порядка отправления пакетов с заданным интервалом.
Эмулировать jitter-эффект также можно с помощью утилиты tc (интервал между ожидаемым моментом прихода пакета и фактическим может достигать 500 мс):
LEC (Line Echo Canceller) — процедура устранения локального эха, когда удаленный абонент начинает слышать собственный голос. Ее суть заключается в том, чтобы вычесть из передаваемого сигнала принимаемый сигнал с некоторым коэффициентом.
Эхо может возникать по нескольким причинам:
- акустическое эхо из-за некачественного аудиотракта (звук из динамика попадает в микрофон);
- электрическое эхо из-за несогласованности импедансов между телефонным аппаратом и SLIC-модулем. В большинстве случаев это происходит в цепях преобразования 4-проводной телефонной линии в 2-проводную.
Выяснить причину (акустическое или электрическое эхо) несложно: абоненту, на чьей стороне создается эхо, необходимо отключить микрофон. Если эхо все равно возникает — значит оно электрическое.
Более подробно о VoIP и процедурах ЦОС написано в книге VoIP Voice and Fax Signal Processing. Предпросмотр доступен на Google Books.
На этом поверхностный теоретический обзор VoIP завершен. Если интересно, то пример практической реализации мини-АТС на реальной аппаратной платформе можно будет рассмотреть в следующей статье.
[!?] Вопросы и комментарии приветствуются. На них будет отвечать автор статьи Дмитрий Валенто, инженер-программист дизайн-центра электроники Promwad.
Cравнение протоколов SIP и H.323
Оба протокола уже достаточно стары – и тот и другой “увидели свет” в конце 90-х. H.323 работает на уровне битовых полей, что в идеальных условиях реализации (не в Интернете) позволяет экономить сетевой трафик по сравнению с SIP. Однако в современных условиях быстрого распространения широкополосного Интернета это преимущество уже не выглядит столь значимым. SIP – протокол прикладного уровня, работающий по сетевой модели OSI.
Принципы, заложенные в основу протокола SIP:
- Простота: включает в себя только шесть методов.
- Независимость от транспортного уровня: может использовать UDP, TCP, ATM и т. д.
- Персональная мобильность пользователей. Пользователи могут перемещаться в пределах сети без ограничений благодаря присвоению пользователю уникального идентификатора.
- Масштабируемость сети. Структура сети на базе протокола SIP позволяет легко ее расширять и увеличивать число элементов.
- Расширяемость протокола. Протокол характеризуется возможностью дополнять его новыми функциями при появлении новых услуг.
- Интеграция в стек существующих протоколов Интернет. Протокол SIP является частью глобальной архитектуры мультимедиа, разработанной IETF. Эта архитектура также включает в себя протоколы RSVP, RTP, RTSP, SDP.
- Взаимодействие с другими протоколами сигнализации. Протокол SIP может быть использован совместно с другими протоколами IP-телефонии, протоколами ТфОП и для связи с интеллектуальными сетями.
SIP – протокол, максимально понятный человеку, поэтому разработка и поддержка программного обеспечения для SIP проще, чем H.323. Данные об упоминании в Google Trends также подтверждают популярность этого протокола:
Можно ли с помощью SIP полностью заменить H.323?
Да, и даже более чем! На каждое расширение H.323 есть расширение SIP. Session Initiation Protocol более гибкий в этом плане (например, при добавлении нового поля, если кто-то его не понимает, оно просто игнорируется). Серьезные аппаратные решения поддерживают и то, и другое.
По большому счету H.323 и SIP функционально равнозначны для разработки ВКС решений.
Но переход к SIP не является панацеей от проблем несовместимости между решениями нескольких производителей (при функциональных доработках). Эта проблема присуща любому протоколу на рынке ВКС, включая и H.323.
Производители не особо заинтересованы в совместимости проприентарных расширений. Они не могут позволить себе быть полностью несовместимыми, но стараются ограничить совместимость по максимуму – хорошим примером является Microsoft Lync – SIP соединения ограничены до CIF при гораздо больших теоретических возможностях.
Также одним из важнейших моментов является обеспечение безопасности передаваемых данных. Вопросам безопасности использования протокола SIP посвящён один из разделов RFC 3261. Шифрование сигнального трафика возможно на транспортном уровне через TLS. Кроме того, разработан стандарт SIPS, накладывающий дополнительные соглашения по безопасной передаче данных посредством SIP. Для шифрования мультимедийного контента применяется протокол SRTP.
Архитектура
Стандарт H.323 основывается на четырех компонентах для организации видеоконференций типа точка-точка или многоточка:
- терминалы
- шлюзы
- контроллеры зоны (привратник)
- сервер многоточечных конференций (MCU)
Терминал — это по сути инструмент для управления H.323-устройством, этакий пользовательский интерфейс, конечная точка. Терминалы могут связываться друг с другом в режиме VoIP-телефонии либо видеоконференцсвязи. Для связи терминалов из разных сетей — к примеру, H.323 и ISDN, используются шлюзы. Они выполняют следующие функции:
- установка соединения между терминалами;
- конвертация звуковых форматов;
- обмен информацией.
Если терминалы находятся в одной H.323-сети, шлюзы не используются.
Контроллер зоны или гейткипер - это центральная точка H.323-сети, поскольку именно гейткипер отвечает за адресацию вызовов, управляет шириной полосы пропускания и устанавливает подлинность терминалов и шлюзов во время соединения. Хотя рекомендация H.323 не определяет привратник как обязательный элемент, все же без него невозможно использование множества современных функций, которые внедряют в свои решения производители VoIP-приложений и решений видеоконференцсвязи.
Для связи трех и более терминалов используется сервер многоточечных конференций MCU (Multipoint Control Unit). Все терминалы, которые участвуют в конференции, сначала связываются с MCU-сервером, а MCU в свою очередь распределяет видеопотоки по всем терминалам. Само устройство MCU обычно также объединяет в себе роли гейткипера и шлюза.
Подведем итоги
За счет более простой реализации, по сравнению с H.323, SIP-связь стала популярной VoIP-услугой, предоставляемой многими поставщиками услуг Интернет-телефонии, которая подключает УАТС к телефонной сети общего пользования (ТфОП) через Интернет.
На данном этапе мы считаем использование протокола SIP более перспективным. Однако и H.323 пользуется достаточно большим спросом, поэтому в нашем решении TrueConf Server 4.4.2 мы поддерживаем оба протокола. Простые, понимаемые человеком и хорошо расширяемые протоколы имеют большие преимущества.
H.323 является одним из старейших стандартов, используемых для организации VoIP-телефонии и видеоконференцсвязи. Это целая система протоколов и элементов, которые позволяют передавать медиаданные по пакетным сетям с негарантированной пропускной способностью. Структура рекомендации H.323 обеспечивает различные возможности коммуникации — от обычной телефонии до видеоконференцсвязи с передачей медиаданных.
Одним из преимуществ стандарта H.323 является его связующая функция, которая позволяет устройствам различных производителей взаимодействовать друг с другом.
До появления протокола H.323 все VoIP-приложения работали на собственных сигнальных протоколах, поэтому связь между ними была невозможна. Однако в 1996 году опубликовали первую версию H.323 и этот стандарт получил широкое распространение.
Эволюция и развитие стандарта
С момента появления стандарта H.323 прошло много лет, и, естественно, он совершенствовался с каждой версией. С 1996 года до сегодняшнего дня было выпущено 7 версий стандарта.
Первая версия была довольно скудной, потому как выпускалась с главной целью — наладить коммуникацию между терминалами различных производителей. О надежности, безопасности и хорошем качестве связи речи пока не шло, к тому же, раннее несовместимые друг с другом, терминалы могли “общаться” только внутри корпоративной сети.
Прорывом стала вторая версия, которая вышла спустя два года и была направлена на активное использование в VoIP-телефонии и многосторонних конференциях. В этот раз ключевым словом стала надежность — подтверждение достоверности конечных точек (участников конференции), неизменность пакетных данных при передаче, защита от несанкционированного взлома данных и, как ни странно, отсутствие отклонения входящих вызовов. Также было ускорено соединение между терминалами и добавлена возможность переадресации звонков.
Третья версия обеспечила передачу сигнализации для большего числа вызовов посредством одного TCP-соединения. Межсетевые шлюзы, которые могли обеспечить до тысячи одновременных вызовов, особенно выиграли тогда.
Изменения в четвертом выпуске коснулись наращивания емкости H.323-терминалов, а выход пятой версии был направлен на общую стабилизацию стандарта. Кстати, решения TrueConf работают на четвертой версии протокола H.323.
В июне 2006 года утвердили шестую версию стандарта с изменениями по части транспортных протоколов H.225 и H.245. Появилась поддержка Assigned Gatekeeper — назначенного привратника, на котором регистрируется конечная точка из списка альтернативных гейткиперов. Помимо этого, были поддержаны документы и ряд приложений, позволяющих использовать кодеки GSM и H.264 в H.323-решениях.
Финальная — седьмая версия H.323 вышла в ноябре 2009 года. Среди множества обновлений следует выделить две важные для пользователей возможности:
- передача информации о пользователях на нескольких языках (это позволило сотрудникам различных международных организаций без труда взаимодействовать друг с другом);
- автоматическая доставка данных о групповой конференции, проходящей на MCU-сервере, всем H.323-терминалам (это позволило пользователям подключаться к конференции без ввода каких-либо данных о ней).
Читайте также: