Что важно знать об IP-телефонии?
Михаил Платов
Еще не так давно сети с коммутацией каналов (телефонные сети) и сети с коммутацией пакетов (IP-сети передачи данных) существовали практически независимо друг от друга и использовались для различных целей. Телефонные сети использовались для передачи голосовой информации, а IP-сети - для передачи данных. Определенной вехой в истории телекоммуникаций и Интернета является IP-телефония, позволившая передавать "голос" поверх получивших уже значительное распространение IP-сетей. IP-телефония дала возможность общения не только пользователям Интернета. С помощью специальных устройств - шлюзов (gateway) она также объединила телефонные сети и сети передачи данных.
Пять причин использовать IP-телефонию
С помощью IP-телефонии вы сможете:
1. Сократить расходы на междугородные и международные переговоры. Один из наиболее распространенных вариантов использования IP-телефонии. Связь через IP получается дешевле по ряду причин. Во-первых, в IP-телефонии используются широко распространенные (и дешевые) сети с коммутацией пакетов [1] , (в отличие от более дорогостоящих сетей с коммутацией каналов, применяемых в традиционной телефонии). Во-вторых, благодаря использованию голосовых кодеков (вокодеров, voice coders) достигается существенное сжатие речевой информации. Так, при передаче голосового потока в системах цифровой телефонии [2] требуется канал 64 кБит/с (ISDN). В системах IP-телефонии, при использовании наиболее популярных на сегодняшний день кодеков, требуется гораздо меньшая пропускная способность (6-13 кБит/с).
Можно выделить два наиболее популярных варианта подключения к провайдерам междугородной и международной телефонии:
n Через ТФОП (Телефонная сеть Общего Пользования) - при подключении пользователь набирает "городской" номер сервера IP-телефонии провайдера, проходит аутентификацию (по pin-коду) и набирает нужный ему номер. Чтобы пользоваться IP-телефонией по этой схеме, достаточно иметь обычный городской номер.
n С помощью специальных "шлюзов" - в этом случае пользователь приобретает специальное устройство - шлюз IP-телефонии, с помощью которого получает возможность совершать звонки без использования ТФОП (через интернет-канал, предоставляемый провайдером). В место шлюзов также можно применять программные (в том числе и бесплатные) и аппаратные IP-телефоны.
2. Построить корпоративную телефонную сеть. В данном случае для ведения телефонных разговоров в рамках предприятия используется внутренняя IP-сеть [3] . Однако в минимальном варианте такие системы используются достаточно редко [4] и как правило, корпоративные системы IP-телефонии также решают следующие задачи:
n обеспечение "мобильности" внутренних пользователей;
n организация связи между географически отдаленными филиалами;
n объединение телефонной емкости филиалов в единый номерной план;
n организация аудио- и видеоконференций;
n построение центров обработки вызовов (call-центров).
Данное направление систем IP-телефонии очень хорошо развито производителями оборудования. Наиболее известными поставщиками являются такие компании как, Cisco Systems, Avaya, Nortel Networks.
3. Получить дополнительные возможности, не свойственные обычным телефонным сетям: сlick2Dial - возможность совершить звонок (например, менеджеру продаж или в службу тех. поддержки) прямо с веб-сайта компании, голосовые авто-информаторы на основе IVR (Interactive Voice Response), аудио- и видеоконференций, голосовую почту и историю пропущенных звонков через web, определение присутствия абонента в сети и т. д.
4. Обеспечить "дешевую связь" в пределах зон Wi-Fi. Пользователь, находящийся в пределах беспроводной точки доступа 802.11 может применять VOIP (вместо сотовой связи) [5] .
5. Организовать сеансы аудиосвязи или связи типа точка-точка через Интернет. Используя стандартное оборудование IP-телефонии, можно организовать сеанс связи между пользователями Интернет (например, c использованием Microsoft NetMeeting) или соединить несколько географически отдаленных филиалов.
Протоколы IP-телефонии
На данный момент существует несколько стандартизованных протоколов, на базе которых строятся системы IP-телефонии. Рассмотрим некоторые из них более подробно.
Протокол H.323
Автором данного стандарта является организация ITU-T (International Telecommunication Union). Существует несколько версий стандарта H323. Первая была выпущена в 1996 году. Последующие являются эволюционным развитием (большая гибкость, масштабируемость и надежность). Последняя на данный момент версия 4 появилась в 2000 году. На данный момент протокол H.323 является стандартом де-факто для междугородной и международной телефонии. Если вы захотите воспользоваться предложением одного из транснациональных операторов IP-телефонии, то придется обратить внимание именно на H.323. Стандарт определяет базовую архитектуру сети передачи мультимедиаданных:
Рисунок 1. Возможная структура H323-сети
К числу объектов стандарта H.323 относятся:
n Терминал (Terminal).
n Шлюз (Gataway).
n Устройство управления конференциями (Multipoint Control Unit - MCU).
n Привратник (GateKeeper).
Терминал
Конечное H.323-устройство пользователя. Может быть как программным (приложение на компьютере), так и аппаратным (телефонный аппарат). Терминалам могут назначаться один или несколько псевдонимов (номера телефонов, названия).
Шлюз
Устройство, предназначенное для сопряжения разнородных сетей. Так, рекомендации ITU-T содержат информацию по сопряжению H.323-устройств с устройствами сетей ISDN, ATM и ТФОП.
Привратник
Основной управляющий [6] элемент сети H.323, координирующий и контролирующий работу всех ее устройств. К его задачам относятся:
n аутентификация;
n авторизация;
n разрешение имен;
n управление пропускной способностью, используемой H.323-устройствами.
Как правило, сеть H.323 разбивается на "зоны", в каждой из которых присутствует привратник, управляющий вверенными ему устройствами. Для обеспечения большей надежности одну "зону" могут обслуживать несколько привратников, тогда один из них называется "главным", а остальные - "альтернативными". Помимо управления и централизованного разрешения имен абонентов, привратники также могут предоставлять дополнительные возможности, например, выполнять функции прокси-сервера для сигнальных и медиаданных.
MCU [7]
Предназначено для организации конференций с числом участников более 3. Оно координирует передачу управляющей (и опционально мультимедийной) информации между участниками конференций. Работу с устройствами H323 мы рассмотрим на примере привратника GNU GateKeeper и открытых программных телефонов.
Протокол SIP
SIP - Session Initiation Protocol (протокол управления сессиями) - используется для создания, изменения и разрыва "сессий" между одним или несколькими участниками. Понятие "сессии" в протоколе SIP достаточно широкое. Под "сессией" могут подразумеваться не только телефонные звонки, но и передача данных, конференции, децентрализованные игры и т. д.
SIP регламентирует только процедуру установки соединения между устройствами, поэтому обычно наряду с SIP используется протокол передачи информации. В случае IP-телефонии в качестве таких протоколов выступают RTP [8] и SDP [9] .
Разработкой протокола SIP занимался комитет MMUSIC [10] организации IETF, поэтому в отличие от протокола H.323 (разработанного телефонистами из ITU-T) протокол SIP является более интернет-ориентированным и предназначен для предоставления несколько других (по сравнению с H.323) услуг.
Ключевые возможности протокола SIP:
n Мультимедийность.
n Персональная мобильность пользователей. Пользователи могут перемещаться без ограничений в пределах сети, поэтому услуги связи должны предоставляться им в любом месте этой сети. Пользователю присваивается уникальный идентификатор, а сеть предоставляет ему услуги связи вне зависимости от того, где он находится.
n Масштабируемость сети. Она характеризуется в первую очередь возможностью увеличения количества элементов сети при её расширении. Серверная структура сети, построенной на базе протокола SIP, в полной мере отвечает этому требованию.
n Открытость и простота. По убеждению авторов и специалистов, SIP позволит наполнить решения и продукты новыми сервисами и возможностями. Что касается простоты, то достаточно сказать, что все используемые в SIP сообщения имеют текстовый формат и поддерживают вложение любых типов данных. Поэтому голосовое соединение может сопровождаться обменом данными между приложениями. Так, разговор по протоколу SIP свободно дополняется передачей данных от одного абонента другому, например, электронной визитки, цифровых фотографий или даже файла MP3.
n Клиент-серверная архитектура.
n Возможность реакции на события. Так, клиент может "подписаться" на определенное событие (например, обновление статуса пользователя), и как только оно наступит, сервер вышлет соответствующее обновление.
Протокол SIP во многом схож с широко используемым протоколом HTTP, который также можно считать сигнальным (клиенты запрашивают у сервера нужные им документы). При установке соединения параметры сессии описываются в соответствии с SDP и вместе с заголовками протокола SIP передаются клиенту. Коды ответов протокола SIP также очень похожи на стандартные коды протокола HTTP. В случае удачного ответа клиенту посылается код 200, адрес не найден (404), ошибка авторизации (403) и др.
Клиенты SIP-сети идентифицируются по универсальным идентификаторам SIP-URI, внешне похожим на адреса электронной почты: sip:platov@cs.vsu.ru. Таким образом, имя клиента SIP состоит из персональной части (до знака @), идентифицирующей пользователя, и доменной части (после @), определяющей, например, организацию. В качестве доменной части возможно использование DNS-имени.
Протокол SIP выделяет следующие типы объектов сети:
n Агенты.
n Серверы регистрации.
n Серверы перенаправления.
n Прокси-серверы.
Агенты
Под агентами подразумеваются конечные устройства пользователя (телефоны, программные телефоны, мобильные телефоны, наладонные компьютеры, шлюзы в ТФОП, системы голосовых меню и т. д.)
В составе агентов выделяются две логические составляющие:
n агент-клиент (UAC - user agent client) - посылает запросы и получает ответы;
n агент-сервер (UAS - user agent server) - принимает запросы и посылает ответы.
Рисунок 2. Взаимодействие UAC и UAS
Ввиду того, что большинству устройств необходимо как передавать, так и принимать данные, в реальных устройствах присутствует как UAC, так и UAS [11] .
Прокси-серверы
Являются неотъемлемой частью SIP-сети, отвечают за маршрутизацию сообщений, а также аутентификацию и авторизацию пользователей. В стандарте определяется два типа SIP-прокси-серверов:
n Без учета состояния (stateless). Такие серверы не отслеживают состояния SIP-сессий и передают сообщения, используя внутренние правила маршрутизации. Их основное применение - распределение нагрузки и маршрутизация. Open Source-примером stateless SIP-прокси-сервера является SER [12] (SIP Express Router).
n С учетом состояния (stateful). Отслеживают состояние каждой SIP-сессии от момента ее создания до завершения. Могут использоваться для более интеллектуальной маршрутизации (перенаправление вызовов, голосовая почта, дополнительная обработка вызовов и т. д.), могут самостоятельно повторно пересылать пакеты (в случае если они были потеряны при передаче). Платой за дополнительные возможности является более сложная реализация и большие требования в вычислительной мощности сервера (из-за необходимости хранить информацию о каждой SIP-сессии). Наиболее популярным Open Source stateful прокси-сервером, работающим по протоколу SIP, является Asterisk - The Open Source Linux PBX [13] .
Рисунок 3. Типичная схема использования SIP-прокси-сервера
Если пользователь A1@a.com захочет позвонить пользователю B1@b.com, то он передаст запрос INVITE B1 своему прокси-серверу, который перенаправит вызов прокси-серверу b.com абонента B1.
Сервер регистрации (REGISTRAR)
Перед работой в сети каждое устройство должно зарегистрироваться с помощью специального сообщения REGISTER. При этом клиент сообщает серверу свое имя в формате: IP-адрес, номер порта, SIP-URI и пароль доступа. В случае успешной регистрации информация о клиенте заносится в специальную базу данных (используется в дальнейшем для нахождения клиента) и клиенту высылается сообщение: "200 OK". С определенной периодичностью этот процесс повторяется, таким образом обеспечивается "актуальность" данных о клиентах. Как правило, серверы REGISTRAR совмещаются с прокси-серверами. PBX Asterisk, рассмотрению которого будет посвящена отдельная статья, в этом отношении не является исключением и может выполнять как функции прокси-сервера, так и сервера регистрации.
SCCP (Skinny Client Control Protocol)
Данный протокол является корпоративным. Он разработан компанией Cisco Systems для организации работы IP-телефонов Cisco под управлением ПО Cisco Call Manager, являющегося в том числе и шлюзом в сети H.323. Идея подхода, лежащего в основе разработки протокола SCCP, заключалась в переносе логики обработки H.323 соединений из конечных устройств в ПО Cisco Call Manager. Таким образом, существенно упрощалась (и удешевлялась) реализация конечного устройства клиента.
Как оценить качество систем IP-телефонии
Существуют различные методики оценки качества систем IP-телефонии. Наиболее известные из них MOS (Mean Opinion Score или "усредненная субъективная оценка экспертов"), представляющая собой численную оценку, характеризующую "качество" сети телефонии. Идея MOS очень проста: специально сформированной группе людей предоставляют возможность воспользоваться системой связи и просят поставить оценку от 1 (ужасно) до 5 (отлично) [14] . Усредненные данные такого исследования и называются MOS. Кроме того, для оценки качества речи также существуют и объективные методы, например, рекомендация ITU-T G.113 (измерение качества речи системы телефонии на основе искажений, вносимых каждым ее элементом), PSQM (оценка качества работы вокодеров), PESQ (развитие PSQM для оценки сетей телефонии). Не вдаваясь в детали методов оценки качества, давайте лучше рассмотрим основные параметры, оказывающие на него непосредственное влияние:
n используемый кодек;
n наличие/отсутствие "эха";
n параметры каналов связи.
Все используемые на данный момент в IP-телефонии кодеки обеспечивают "сжатие с потерями". В зависимости от используемых алгоритмов эти "потери" могут быть по-разному различимы "на слух" именно в этом аспекте рассматривается влияние кодеков на качество речи.
При ведении разговоров на больших расстояниях начинает проявляться эффект "эха". Существуют различные алгоритмы, призванные с этим бороться (G.165, G.168, G.168 2000, и др.), и в подавляющем большинстве устройств какой-нибудь из них обязательно должен присутствовать.
Приведу три основных параметра канала связи, оказывающих воздействие на качество систем телефонии:
n Задержка (latency). При передаче голоса или видео существуют определенные требования к максимально допустимой задержке. Различные исследования показывают, что для ведения нормального диалога необходимо, чтобы "двойная задержка" при передаче голоса не превышала 250-300 мс (бюджет задержки). При превышении этого порога участники начинают испытывать дискомфорт и стремятся закончить разговор. Таким образом, для ведения комфортного разговора односторонняя задержка не должна превышать 150 мс (задержка канала + алгоритмическая задержка кодека), что совпадает с рекомендацией ITU-T G.114. Для уменьшения задержки, вносимой сетью, необходимо использовать QoS (Quality of Service)
n Джиттер (jitter). Ethernet является сетью с коммутацией пакетов. В общем случае это означает, что пакеты могут быть получены клиентом не в том порядке, в каком они были ему отправлены (для доставки пакетов могли использоваться различные маршруты). Что в таком случае делать декодеру? Для решения таких проблем используются специальные "jitter buffers" (сглаживающий буфер). Задачей этих буферов является предварительное накопление пакетов перед их дальнейшей передачей декодеру. Очевидно, что буфер дрожания также вносит некоторую задержку в процесс передачи голоса, поэтому желательным является использование такого размера буфера дрожания, которое, с одной стороны, обеспечивает приемлемое качество речи, а с другой - минимизирует общее значение бюджета двусторонней задержки до значения 300 мс.
n Потеря пакетов. Как известно, в сетях Ethernet допускается потеря пакетов. Влияние потери пакетов на качество речи определяется размером пакета [15] , а также используемым алгоритмом сжатия речи [16] . Речевая информация в большей степени устойчива к пропаже одиночных пакетов, нежели целых серий. В любом случае, согласно рекомендации ITU-T, для нормальной работы систем IP-телефонии допускается потеря не более 1% пакетов, в противном случае ухудшение качества речи будет заметно. Для улучшения качества в условиях загруженных сетей можно использовать QoS либо, если пакеты теряются из-за природы самой сети (например, беспроводная сеть), то для улучшения качества можно использовать более помехоустойчивый кодек или уменьшать размер кодируемого кадра.
Кодеки IP-телефонии
За все время существования данного направления было разработано большое количество кодеков, используемых для передачи аудио- и видеоинформации в системах IP-телефонии. Наиболее популярными (по количеству пользователей и поддержки в конечных устройствах) в настоящее время являются:
n G711 - стандартизованный ITU-T кодек, используемый в устройствах ISDN. Требуемая пропускная способность - 64 кбит/сек. Существуют две разновидности кодека a-law и u-law, отличающиеся алгоритмами кодирования. Кодек поддерживается практически всеми устройствами IP-телефонии.
n G729 - стандартизованный ITU-T кодек, предназначенный для передачи речи с "хорошим качеством" при использовании небольшой пропускной способности (8 кбит/сек). Существуют две популярные (и несовместимые между собой) версии данного стандарта: Annex A (более "простая" схема кодирования) и Annex B (с использованием алгоритмов сжатия пауз). По субъективным оценкам, данный кодек обладает качеством лучшим, чем у G.723, но худшим, чем G711 [17] . Поддерживается практически всеми производителями оборудования. При коммерческом использовании требуется лицензия.
n G723.1 - кодек, стандартизованный ITU-T. Отличительной особенностью является возможность работы при очень низком потоке (5.3, 6.3 кбит/сек). По субъективными оценкам, обладает самым плохим качеством (среди рассматриваемых кодеков) речи. Поддерживается значительной частью устройств IP-телефонии. При коммерческом использовании требуется лицензия.
n GSM (RPE-LTP) - голосовой кодек, разработанный для использования в системах сотовой связи стандарта GSM. При кодировании кадра используется информация предыдущего кадра, кодирование осуществляется блоками по 20 мс со скоростью 13 кбит/с. Поддерживается производителями оборудования, в основном в шлюзах между сотовыми и VoIP-сетями.
n iLBC (Internet low bitrate codec) - открытый (не требуются лицензионные отчисления) голосовой кодек. Предназначен для кодирования с потоком 13.33 кбит/сек (при размере кадра 30 мс) и 15.20 кбит/сек (при размере кадра 20 мс). По субъективным оценкам экспертов, качество речи данного кодека превышает G.729A. Кроме того, кодек более устойчив (по сравнению с g729) к потере кадров, что позволяет эффективно использовать его при организации сеансов связи через сеть Интернет. Примером этому является популярная сеть IP-телефонии - Skype [18] . Поддерживается ограниченным числом производителей оборудования.
Сравнительные характеристики кодеков приводятся в таблице:
Таблица. Основные параметры кодеков IP-телефонии
Кодек |
Поток |
Размер пакета (мс [19] ) |
Алгоритмическая задержка (мс) |
Оценка MOS |
Суммарный поток [20] |
G.711 |
64 кбит/с |
20 |
0 |
4.4 |
81.2 |
G.729 |
8 кбит/с |
20 |
15 |
4.07 |
31.2 |
G.723.1 |
6.3 кбит/с |
30 |
37.5 |
3.87 |
21.9 |
G.723.1 |
5.3 кбит/с |
30 |
37.5 |
3.69 |
20.8 |
GSM |
13 кбит/с |
20 |
20 |
3.5 |
35.4 |
iLBC |
13.33 кбит/с |
30 |
30 |
4 |
28 |
iLBC |
15.2 кбит/с |
20 |
30 |
4 |
29 |
Таким образом, по показателю качества кодеки можно расположить следующим образом (в порядке ухудшения качества): G711, iLBC, G729, gsm, G723. По используемой пропускной способности (в порядке увеличения:) G723, iLBC, G729, GSM, G711.
Интерфейсы телефонии
Наиболее часто используемым оборудованием в IP-телефонии являются шлюзы. Как было сказано выше, задачей шлюза является сопряжение "обычных" телефонных сетей с IP. И если с одной стороны этого шлюза всегда будет IP, то количество интерфейсов с другой стороны запросто может поставить в тупик неподготовленного человека. Попробуем развеять эту неопределенность и рассмотрим наиболее известные "телефонные" интерфейсы:
n FXS (Foreign eXchange Subscriber) - аналоговый интерфейс телефонных станций. К голосовым шлюзам с таким интерфейсом могут подключаться обычные телефонные аппараты, факсы и другие абонентские устройства. Фактически, интерфейс FXS это то, что приходит к нам по телефонному кабелю от городской или мини-АТС. В задачу устройств, реализующих этот интерфейс, входят: генерация сигнала готовности АТС (гудок в линии), сигналов вызова абонента и т. д.
n FXO (Foreign eXchange Office) - аналоговый интерфейс абонентских устройств телефонных станций. Устройства с таким интерфейсом подключаются к интерфейсу FXS. Так те же самые факсовые аппараты, телефоны, модемы реализуют интерфейс FXO. Существует такое простое правило - если есть провод, соединяющий два аналоговых устройства телефонии, то с одной стороны этого провода должен быть FXS (АТС), а с другой - FXO (телефон). Таким образом, шлюзы с интерфейсом FXO подключаются вместо телефона. С их помощью можно организовать связь с ТФОП или предоставить доступ к IP-телефонии, используя "внутренние" (более дешевые) линии мини-АТС. Так как шлюзы FXO фактически "эмулирует телефон", зачастую для них бывает необходима настройка "отбоя". Для того чтобы шлюз "клал трубку", нужно научить его понимать сигнал "занято" той мини-АТС, к которой он подключен.
Рисунок 4. Cопряжение портов FXO и FXS
n E1 - цифровой интерфейс, используемый для создания высокоскоростных магистралей. В цифровом потоке E1 имеется 32 канала (2 из них служебные) по 64 кБит [21] . Таким образом, используя 1 поток E1, возможно организовать до 30 одновременных телефонных разговоров. В IP-телефонии такие интерфейсы часто используются для организации связи с ТФОП или для организации связи между АТС. В каналах E1 может использоваться различная сигнализация (CAS, SS7, R2, R1.5, Q.931), и при подключении устройств по E1 это необходимо учитывать.
Заключение
Итак, после того как мы получили представление об основных протоколах и кодеках, используемых в IP-телефонии, можно приступить к практической части - рассмотрению конкретных программ и устройств, реализующих эти протоколы. Об этом читайте во второй статье цикла.
[1] Необходимо отметить, что, хотя в сетях IP-телефонии для передачи голоса и используется IP-сеть, она не является IP-сетью в обычном понимании. Так, в голосовых IP-сетях особое внимание уделяется обеспечению гарантированного качества обслуживания QoS (DiffServ, IntServ, MPLS), хотя это вовсе не означает, что в IP-сетях без QoS IP-телефония не будет работать.
[2] Которые в виду своей стоимости так и не "ушли в массы".
[3] Вариант может быть особенно интересен предприятиям, еще не имеющим коммуникационной инфраструктуры, т.к. при использовании IP-телефонии можно полностью отказаться от прокладки "двойной проводки".
[4] Все-таки основным преимуществом корпоративных сетей является функциональность, а не стоимость.
[5] Инсталляции, работающие по такому принципу, существуют в некоторых западных образовательных учреждениях.
[6] Для сетей сетей H323 наличие "привратника" не является обязательным. В этом случае H323-устройства работают в режиме Peer to Peer и самостоятельно разрешают имена в IP-адреса.
[7] Устройство управления конференциями.
[8] Real-Time Protocol - для передачи "голоса".
[9] Session Description Protocol - для описания параметров сессии.
[10] Multiparty Multimedia Session Control.
[11] Более детально к вопросу о UAC и UAS мы вернемся при рассмотрении тестовых утилит для SIP.
[14] На практике MOS редко превышает 4.5.
[15] Чем больше размер пакета, тем сильнее скажется его пропажа на восстановленном голосе.
[16] Различные алгоритмы обладают разной степенью устойчивости к пропаже пакетов (при восстановлении используется информация "соседних" кадров).
[17] Эти данные также подтверждаются оценкой MOS.
[18] Бесплатная для звонков компьютер-компьютер.
[19] Некоторые кодеки поддерживают несколько размеров пакетов.
[20] При передаче через Ethernet к пакет "обрастает" различными заголовками (MAC, IP, RTP). В даной колонке приводится суммарная пропускная способность (без сжатия заголовков RTP, удаления пауз и потерь при передаче). В таблице приводятся данные для одного госолового канала, в то время как при сеансе их обычно 2 (прямой и обратный).
[21] Кроме Е1 (2 Мбит) также существуют Е2 (4 канала E1 или 8 Мбит), Е3 (4 Е2 или 34М бит), Е4 (4 Е1 или 139 Мбит), Е5 (4 Е4 или 565 Мбит). В Северной Америке используется очень схожая иерархия каналов T1, Т2 и т. д., отличающаяся количеством каналов (Т1 - 24 канала по 64 кБит) и, соответственно, пропускной способностью (Т1 - 1,5 Мбит).