Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

2007 г.

Принципы организации IP-телефонии на базе решений Cisco Systems

Иван Ярцев
Информационный бюллетень JET INFO

Назад Оглавление Вперёд

Протоколы VoIP

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

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

Протокол MGCP — это управляющий VoIP-протокол, который наиболее часто используется для управления шлюзами в VoIP-сети. Относительно новый протокол MGCP получил широкое распространение как часть архитектуры Cisco AVVID. AVVID обычно использует именно MGCP в связке с CCM для управления шлюзами.

H.323

Как уже говорилось, H.323 является набором протоколов. Взаимодействие протоколов H.323 показано на Рис. 5.

Рис. 4. Взаимодействие протоколов H.323

Все устройства, используемые H.323, можно поделить на четыре категории: терминалы, шлюзы, гейткиперы (Gatekeeper — привратник) и точки многопунктового контроля (Multipoint Control Unit — MTU).

Терминалы, также называемые конечными точками (endpoints), предоставляют пользовательский интерфейс к протоколу H.323 и обеспечивают двустороннюю мультимедийную связь реального времени. Шлюзы выполняют роль "переводчиков" для обеспечения взаимодействия между H.323 и не-H.323 сущностями. Шлюзы, так же как и терминалы, рассматриваются как конечные точки. Гейткиперы выполняют функции контроля вызовов, такие как трансляция адресов и управление занимаемой полосой пропускания. Гейткиперы можно считать наиболее важным компонентом в стеке H.323. MCU обеспечивают возможность конференций.

Стек протоколов H.323
IP, TCP, UDP

Протоколы IP, TCP и UDP несомненно являются протоколами стека TCP/IP, но они здесь рассматриваются потому, что предоставляют транспортный сервис для стека протоколов H.323.

Каждый терминал, шлюз, гейткипер и MCU должен иметь свой уникальный IP-адрес. Это также относится и к ПК с приложениями, которые используют H.323. IP предоставляет каждой точке H.323-адрес и обеспечивает механизм маршрутизации H.323-пакетов в сети. TCP используется для установления начального соединения между терминалами H.323 и шлюзами/гейткиперами. Протокол UDP используется для передачи непосредственно голоса через сеть.

H.225

H.225 обеспечивает установление и контроль вызовов со всей необходимой сигнализацией для осуществления соединения между двумя конечными точками.

H.245

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

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

После установления вызова все процессы передачи информации проходят по логическим каналам.

RAS

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

RTP

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

Кодеки

Кодеки используются не только протоколом H.323, а всеми протоколами VoIP для определения алгоритмов компрессии и декомпрессии, применяемых для передачи аудио/видео по сети. H.323 поддерживает большинство стандартов кодирования аудио и видео, включая G.7XX для аудио и H.26X для видео.

Рис. 6 иллюстрирует взаимодействие протоколов стека H.323.

Рис. 5. Стек протоколов H.323

Этапы соединения

Процедуры соединения при формировании звонка по протоколу H.323 могут быть сгруппированы в пять этапов:

  1. Обнаружение и регистрация.
  2. Установление вызова.
  3. Сигнальный поток.
  4. Медийный поток и поток управления.
  5. Завершение вызова.
Обнаружение и регистрация устройств

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

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

Рис. 6. Процесс регистрации

Внутризоновые вызовы

Допустим, шлюзы (терминалы) уже зарегистрированы, и шлюз X хочет сделать вызов на терминал, подключенный к шлюзу Y. Шлюз X посылает ARQ (Admission Request) сообщение гейткиперу, запрашивая разрешение на установление вызова на телефон, обслуживаемый шлюзом Y. Гейткипер разрешает вызов с требованием сигнализации (дозвона) напрямую, посылая сообщение ACF (Admission Confirmation). См. Рис. 8.

Рис. 7. H.323. Установление внутризонового вызова

Межзоновые вызовы

Допустим, гейткипер A контролирует зону A, а гейткипер B — зону B, шлюз X зарегистрирован на гейткипере A, а шлюз Y — на гейткипере B, и шлюз A хочет установить соединение с терминалом, подключенным к шлюзу Y.

Процесс установления вызова содержит следующие этапы (Рис. 9):

Рис. 8. H.323. Установление межзонового вызова

  1. Шлюз X запрашивает соединение со шлюзом Y у своего локального гейткипера.
  2. Запрос местоположения (LRQ — Location request). Гейткипер шлюза X не знает IP-адрес шлюза Y и запрашивает адрес у гейткипера шлюза Y.
  3. Местоположение подтверждено (LCF — Location confirm). Гейткипер шлюза Y отвечает IP-адресом шлюза Y.
  4. Гейткипер шлюза X подтверждает его запрос и предоставляет ему IP-адрес шлюза Y.
  5. Установление соединения между шлюзами.
Установление соединения

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

Установление соединения основано на протоколе ITU-Q.931 (H.225 является подмножеством Q.931), который определяет метод установления, обработки и завершения сетевого соединения по цифровой сети ISDN. Процесс состоит из шести фаз (Рис. 10):

Рис. 9. Установление соединения

  1. Шлюз X посылает H.225 сообщение установления дозвона для запроса соединения.
  2. Шлюз Y посылает обратно H.225 сообщение, заявляя о возможности продолжения процесса.
  3. Шлюз Y запрашивает у гейткипера правомерность звонка, посылая ему RAS-сообщение (ARQ) по каналу RAS.
  4. Гейткипер подтверждает, что звонок правомерен, посылая шлюзу Y ACF-сообщение.
  5. Шлюз Y посылает H.225-сообщение шлюзу X, оповещая его, что соединение установлено.
  6. Шлюз Y посылает H.225-сообщение шлюзу X, оповещая его, что вызов установлен.
Установление логических каналов

После того как соединение установлено, взаимодействие происходит по логическим каналам. H.245 используется для определения процесса управления этими каналами. На один вызов может приходиться несколько каналов для различных типов трафика (видео, аудио, данные). H.245 LCSE (Local Channel Signaling Entity) открывает логический канал для каждого потока. Каналы могут быть как однонаправленными, так и двунаправленными.

Установление логических каналов происходит следующим образом:

  1. Шлюз X сообщает шлюзу Y, какие возможности он поддерживает, посылая H.245 Terminal Capability Set сообщение.
  2. Шлюз Y подтверждает запрос, посылая H.245 Terminal Capability Set Acknowledge сообщение.
  3. Аналогичен п.1, но только в обратном направлении.
  4. Аналогичен п.2, но только в обратном направлении.
  5. Шлюз X открывает медиаканал со шлюзом Y, посылая H.245 сообщение Open Logical Channel, включая адрес RTCP канала.
  6. Шлюз Y подтверждает установление логического канала со шлюзом X, посылая H.245-сообщение Open Logical Channel Acknowledge, включая RTP-адрес, выделенный шлюзом Y, и RTCP-адрес, полученный от шлюза X.
  7. Аналогичен п.5, но только в обратном направлении.
  8. Аналогичен п.6, но только в обратном направлении.
Медийный поток и поток управления

Медийный поток управляется RTCP. RTCP использует выделенный логический канал для каждого RTP-потока. Конечные точки могут попытаться изменить выделенную полосу пропускания, которую они изначально запросили. Для увеличения выделенной полосы пропускания конечные точки должны запросить на это разрешение у гейткипера.

Завершение вызова останавливает медиапоток и закрывает логические каналы. Оно может быть запрошено как конечными точками, так и гейткипером. Завершение вызова также завершает H.245-сессию, освобождает H.225/Q.931 соединение и предоставляет гейткиперу подтверждение о разъединении по RAS.

Сигнализация между конечными точками без посредника в H.323

Если шлюзы знают IP-адреса друг друга, то возможно их взаимодействие без гейткипера. Этот процесс можно описать следующими шагами:

  1. Шлюз инициирует H.225.0-сессию со шлюзом назначения.
  2. Процедура установления вызова, базирующаяся на Q.931, создает сигнальный канал между конечными точками.
  3. Конечные точки открывают канал для функций управления H.245. Происходит обмен возможностями и дескрипторами логических каналов.
  4. Открывается RTP-сессия.

MGCP

Протокол MGCP представляет собой пример модели с централизованным управлением вызовами. Он определяет управление телефонными шлюзами с центрального управляющего компонента, называемого телефонным агентом (Call Agent). Шлюзы взаимодействуют с агентами, которые осуществляют сигнализацию и обработку вызовов.

Компоненты MGCP

В MGCP-окружении используются следующие компоненты:

  • конечные точки;
  • шлюзы;
  • телефонный агент (назовем для краткости агентом).

Конечные точки — это точки соединения пакетной сети и традиционной телефонной сети. Они могут быть физическими и логическими. Шлюзы — это узлы объединения конечных точек.

Телефонный агент MGC (Media Gateway Controller) представляет собой центральный управляющий элемент в MGCP-окружении. MGC осуществляет управление деятельностью шлюзов в предположении, что шлюзы фиксируют события и докладывают о них. Агент, основываясь на событиях, инструктирует шлюзы о действиях, которые необходимо предпринимать. Он также инициирует все VoIP-этапы соединения.

Понятия MGCP

Базовые понятия MGCP:

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

Рис. 10. Компоненты MGCP

Взаимодействие агентов и шлюзов

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

Рис. 11. Взаимодействие шлюзов с агентом

  1. Агент направляет сообщение RQNT (Request Notification) каждому шлюзу. Этот запрос дает инструкцию шлюзам ждать события off-hook (когда снимается телефонная трубка) и дать гудок, когда такое событие произойдет. Агент также сообщает о необходимости мониторинга других событий. Предоставляя цифровую карту в запросе, агент позволяет шлюзам собрать цифры перед тем как информировать о событии агента (иначе шлюз не будет "знать", когда набор номера завершается, будет вынужден посылать агенту все цифры набора по одной).
  2. Шлюз отвечает на запрос. С этого момента агент и шлюзы ждут событий.
  3. Пользователь на шлюзе А поднял трубку. Следуя инструкции, шлюз дает телефонный гудок. Так как у шлюза есть карта номеров, он начинает собирать набираемые цифры, пока не будет получено соответствие (или пока набранные цифры не покажут, что соответствие невозможно).
  4. Шлюз А посылает оповещение (NTFY) агенту, сообщая ему, что требуемое событие произошло. Оповещение включает в себя конечную точку, событие и набранные цифры.
  5. После подтверждения возможности звонка агент инструктирует шлюз А создать соединение (CRCX) с его конечной точкой.
  6. Шлюз отвечает дескриптором сессии. Дескриптор определяет, как минимум, IP-адрес и UDP-порт для последующей RTP-сессии. Шлюз не имеет дескриптора сессии удаленной стороны, и соединение переходит в режим ожидания.
  7. Агент отправляет запрос на соединение шлюзу В. В запросе агент предоставляет дескриптор сессии, который он получил от шлюза А. Агент также посылает инструкции о том, какие в данный момент события важны и какие сигналы шлюзу генерировать. В данном случае таким событием является off-hook, сигналом — звонок.
  8. Шлюз В отвечает на запрос и сообщает свой дескриптор сессии.
  9. Агент передает дескриптор сессии шлюзу А в запросе MDCX (Modify Connection). Теперь шлюзы могут установить RTP-сессии для передачи голоса.
  10. В конце вызова одна из конечных точек распознает переход в состояние on-hook (трубка повешена). Допустим, это случилось на шлюзе А. Так как агент проинструктировал сообщить о таком событии, шлюз А посылает агенту уведомление.
  11. Агент рассылает сообщение DLCX (Delete Connection) каждому шлюзу.
  12. Шлюзы удаляют соединения и отвечают.

Назад Оглавление Вперёд

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...