Иван Башлаков
16.03.2020
2385

Протокол управления шлюзами MGCP

Понятие медиашлюза Для того, чтобы иметь возможность использовать телефонные сети различных типов в единой инфраструктуре были созданы устройства, называемые медиашлюзами (MGW). Эти устройства служат для преобразования различного рода аналоговых и цифровых сигналов в формат, пригодный для использования в сетях с пакетной передачей данных (например, IP). Помимо транскодирования информации, медиашлюзы обеспечивают обработку тональных сигналов, эхоподавление и […]

Понятие медиашлюза

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

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

Структура медиашлюза состоит из трех функциональных компонентов, находящихся во взаимодействии:

  1. Транспортный шлюз (MG) — физическое устройство, осуществляющие кодирование/декодирование мультимедиа (например, голосовой информации), в формат, пригодный для передачи в сетях с пакетной моделью передачи данных.
  2. Шлюз сигнализации (SG) — физический, либо логический блок, обеспечивающий доставку сигнальной информации между сетями различных типов..
  3. Контроллер шлюза (Call Agent) -физический, либо логический блок, управляющий шлюзом и передающий ему команды. Взаимодействие контроллеров с сигнальными шлюзами осуществляется по протоколу MGCP.
структура медиашлюза
структура медиашлюза

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

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

Аббревиатура MGCP расшифровывается как Media Gateway Control Protocol — дословно, протокол управления медиашлюзами. Он используется для обеспечения связи между шлюзами и их контроллерами. MGCP определяет среду, в которой происходит взаимодействие между этими составляющими медиашлюза. Подробное описание протокола MGCP описано в документе RFC 2705, а его структура в RFC 2805.

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

Протокол MGCP использует модель главный-подчиненный. Главным в данной структуре является контроллер шлюза, а подчиненным сам шлюз. Это позволяет централизованно управлять шлюзами и при необходимости, производить масштабирование сети. MGCP предоставляет контроллеру средства по управлению определенными портами на подчиненных ему шлюзах. Реализация данного протокола основана на пересылке текстовых сообщений с помощью транспортного протокола UDP по порту 2427.

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

взаимодействие агентов в структуре MGCP
взаимодействие агентов в структуре MGCP

Конечные точки. Конечными точками являются любые голосовые порты на назначенном шлюзе. Это могут быть как аналоговые (FXO/FXS), так и цифровые (T1/E1) порты. В зависимости от числа портов, один шлю может содержать несколько конечных точек. Каждая конечная точка имеет свой собственный идентификатор в формате ‘локальное имя конечной точки’@’имя шлюза’ (localID@domian), по которому к ней обращается агент вызовов. Для управления конечной точкой агент вызова должен распознать характеристики конечной точки. Чтобы упростить этот процесс, конечные точки подразделяются на несколько типов. Цель состоит в том, чтобы сконфигурировать агент вызова для управления типом конечной точки, а не для управления каждой конечной точкой индивидуально.

RFC 2705 определяет восемь типов конечных точек следующим образом:

  • Шлюз DS0. Используется для транскодирования сигналов в сетях c цифровой мультиплексной передачей данных. Поддерживает несколько одновременных вызовов.
  • Аналоговый шлюз. Представляет интерфейс на стороне клиента (например, FXS) или интерфейс на стороне коммутатора (например, FXO) к традиционной телефонной сети. Поддерживает несколько одновременных вызовов.
  • Файловый шлюз. Предоставляет доступ к файловому серверу (например, для воспроизведения голосовых сообщений). Файловый шлюз не поддерживает более одного вызова.
  • IVR-Шлюз. Предоставляет доступ к услуге интерактивного голосового меню (IVR). Шлюз IVR поддерживает только одно соединение. Несколько пользователей системы IVR используют различные шлюзы IVR.
  • Конференц-шлюз (мост). Предоставляет доступ к услуге конференций. Объединяет несколько вызовов в единый мультимедийный поток. Каждая конференция моделируется как отдельная конечная точка. Конференц-шлюз поддерживает несколько одновременных вызовов.
  • Шлюз ретрансляции. Используется для связи несовместимых шлюзов и/или для объединения шлюзов через файрволл. Также может быть использован для создания защищенной сети.  Конечная точка ретрансляции пакетов поддерживает два одновременных соединения.
  • Точка доступа к записям телефонных разговоров. Предоставляет доступ для записи или воспроизведения телефонных разговоров. Конечная точка точки доступа к записям телефонных разговоров  поддерживает только одно соединение.
  • Шлюз ATM. Используется для транскодирования сигналов в сети с асинхронной схемой передачи сигналов. Представляет отдельный экземпляр аудиоканала в контексте сети ATM. Шлюз ATM поддерживает более одного соединения.

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

Команды MGCP

Общение по протоколу MGCP происходит в виде обмена текстовыми сообщениями. Существует восемь основных команд MGCP, которые указаны в таблице:

взаимодействие конечной точки и агента вызова
взаимодействие конечной точки и агента вызова

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

Инициализация вызова в протоколе MGCP

Вызовы устанавливаются путем соединения двух или более конечных точек, как показано на рисунке 5. Чтобы установить вызов, агент вызова инструктирует шлюз, связанный с каждой конечной точкой, установить соединение с определенной конечной точкой или конечной точкой определенного типа. Шлюз возвращает параметры сеанса своего соединения агенту вызова, который, в свою очередь, отправляет эти параметры сеанса другому шлюзу. С помощью этого метода каждый шлюз получает необходимые параметры сеанса для установления RTP-сессий между конечными точками. Все соединения, связанные с одним и тем же вызовом, имеют общий идентификатор вызова и используют один и тот же медиапоток. По завершении вызова агент вызова отправляет запрос на удаление соединения каждому

шлюзу.

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

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

Реализация MGCP в Asterisk

Asterisk поддерживает протокол MGCP лишь частично, это связано с тем, что MGCP имеет централизованную структуру, при которой телефоны не могут совершать вызовы между собой напрямую, использование контроллеров является обязательным. Однако, Asterisk позволяет использовать MGCP-телефоны. Для этого необходимо установить модуль chan_mgcp.so и произвести настройку с помощью файла конфигурации mgcp.conf. Данный файл содержит параметры конечных точек, прерываний и джиттербуфера MGCP. Но, к сожалению, Asterisk не позволяет назначить его конечной точкой для того, чтобы произвести его регистрацию на контроллере.

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Остались вопросы?

Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

10 доводов в пользу Asterisk

Распространяется бесплатно.

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

Безопасен в использовании.

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

Надежен в эксплуатации.

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

Гибкий в настройке.

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

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

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

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.