Project

General

Profile

Медиа прокси

Медиа прокси - это вспомогательный модуль, отсутствующий в стандартной поставке Asterisk.
Он был спроектирован и разработан нашей компанией с нуля.

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

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

Улучшение производительности достигается за счет короткого медиа пути, поскольку Медиа прокси работает полностью в режиме ядра операционной системы.
Таким образом, не делается переключений контекста между режимами ядра и приложения и ненужного копирования для обработки одного голосового пакета.
Совместно с режимом FreeBSD "быстрый форвардинг" это дает скорость, ограниченную только возможностями системы как TCP/IP-маршрутизатора.
CPU задействован практически только для подсчета контрольных сумм и маршрутизации.

Хотя в целом идея не нова (FreeBSD уже имеет NAT и маршрутизацию в ядре), при применении ее в VoIP мы получаем значительное улучшение производительности и это является единственным способом поддерживать высокую медиа нагрузку через систему (кроме кластеризации).

Медиа прокси поддерживает:

  • аудио/видео RTP;
  • RTCP;
  • UDPTL (факсы по Т.38);
  • устройства за NAT.

Медиа прокси активируется только когда:

  • каналы соединены;
  • медиа не идет напрямую от пира к пиру;
  • соединенные каналы имеют идентичные медиа форматы;
  • SBC (астериску) не нужно получать медиа из каналов (непример, запись разговоров не активирована);
  • Джиттер буфер не активирован.

Тестирование показало впечатляющие результаты: до 1100 одновременных сессий с g711 кодеком (максимальная нагрузка) и двухсторонним аудио проходили через единственную Core 2 Duo систему.

Tаблица 1. Сравнение технологий соединения каналов.

Технология соединения Кол-во сессий
Самостоятельное.
Голос идет напрямую от пира к пиру.
неограниченное
Перекодировка.
Медиа формат перекодируется между соединенными каналами в режиме приложения.
зависит от кодеков
Джиттер буфер.
Медиа пакеты проходят через джиттер буфер в режиме приложения для сглаживания задержек.
380
Пакет к пакету.
Медиа пакеты копируются в режиме приложения между соединенными каналами.
580
Медиа прокси.
Медиа пакеты проходят только через ядро операционной системы.
1100

English translation

media_proxy_ru.gif (24 KB) Andrii Arsirii, 03/17/2013 08:29 PM

Also available in: PDF HTML TXT