Сравнение Asterisk и FreeSWITCH

Сравнение Asterisk и FreeSWITCH

Какие сходства и отличия Asterisk и FreeSWITCH? Что лучше? Что я должен использовать? Эти вопросы очень часто можно встретить в сообществах VoIP, которые нам задают. Но ответы на эти вопросы встречаются не так часто.

В этой статье мы попытаемся раскрыть завесу и помочь читателям решить какую систему им выбрать.

Вступление

Когда речь идет о телефонных PBX системах с открытым исходным кодом, по популярности и активности выступают две системы Asterisk и FreeSWITCH. На рисунке ниже отображена динамика поисковых запросов за последние 12 месяцев.

Asterisk и FreeSWITCH

Краткая история

Asterisk

Путь Asterisk начался с разработок компьютерного инженера Марка Спенсера в 1999 году. Его небольшая команда разработала программный коммутатор Asterisk под лейблом Linux Support Sustems, который позже был переименован в Digium. С тех пор Asterisk был адаптирован под множество систем, таких как FreePBX, Elastix. Стоит отметить что Asterisk действительно представляет собой PBX с открытым исходным кодом, который может использоваться как автономная телефонная система.

FreeSWITCH

FreeSWITCH началась, когда уважаемый разработчик Asterisk Anthony Minessale решил исправить некоторые из предполагаемых проблем платформы Asterisk. Это привело к созданию основы для того, чтобы в конечном итоге появилось сообщество FreeSWITCH. Проект был анонсирован в 2006 году и вышел из под контроля в 2007 году. FreeSWITCH – программный коммутатор с открытым исходным кодом, использующий в качестве ядра коммутации – sipXcom (который запускался как sipXces) и FusionPBX.

Базовая конструкция PBX

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

Несмотря на сложный код, который был написан на многих языках программирования, Asterisk очень эффективен. FreeSWITCH имеет другой подход, система написана на языке С и использует более структурированный подход к основному программному обеспечению. Процессорные потоки выполняются последовательно в памяти, что отличается от дизайна Asterisk, поскольку каждый канал поддерживает свой собственный поток и пространство памяти. Вероятно, это также одна из причин, по которой FreeSWITCH требует большего количества ОЗУ, чем Asterisk.

FreeSWITCH имеет очень хорошо документированный API, описанный по уровням, каждый из которых поддерживает определенную уникальную роль. С другой стороны из-за модульной архитектуры Asterisk фрагментирован и не может осуществлять блокировку чтения/записи своих потоков. Такая архитектура позволяет более безопасно подключаться к API FreeSWITCH в отличие от Asterisk, где более открытый дизайн API создает дополнительную вероятность допущения багов и ошибок.

Asterisk основан на обычных текстовых конфигурационных файлов, тогда как FreeSWITCH основан на файлах XML. Конфигурационные файлы имеют более понятную верстку и имеют преимущество в процессе редактирования, но в процессе автоматизации и группировке нескольких задач уступают .XML.

Требования к оборудованию и ПО

Определить общие требования к аппаратным средствам очень трудно определить так как каждая из систем выполняет разные цели. Общие требования к производительности систем из учета: 15 SIP абонентов, с 5-ю одновременными вызовами отражены в таблице ниже.

Параметр Asterisk FreeSWITCH
Процессор Одноядерный, не менее 700 МГц Одноядерный, не менее 1 ГГц
Оперативная память 512 Мб 1 Гб
Место хранения 10 Гб 10 Гб
Операционная система Linux x32, x64 Linux x64

Большинство систем FreeSWITCH будут рекомендовать более современную систему для работы. Менее мощная система будет работать отлично для тестирования, но обычно системы на основе FreeSWITCH предназначены для обработки больших нагрузок, поэтому они требуют более высокой производительности и необходимости в оперативной памяти. Действительно, большинство УАТС FreeSWITCH рекомендуют современный четырехъядерный процессор, работающий на частоте более 2 ГГц на ядро, не менее 8 ГБ оперативной памяти и примерно 80 ГБ памяти жесткого диска. Имейте в виду, что для платформы, которая будет использовать функции записи вызовов, голосовых сообщений и системных записей IVR-меню требуется, по крайней мере, 1 Мб памяти на каждую минуту записи, в зависимости от частоты дискретизации и сжатия. Регулировка хранения необходима в зависимости от объема записи, необходимой для каждой подсистемы.

Также стоит отметить, что FreeSWITCH может обрабатывать гораздо больше одновременных вызовов, чем Asterisk на одних и тех же аппаратных спецификациях.

Основные функции

На базовом уровне функционал этих систем идентичен. Создание расширений и шлюзов для обоих систем одинаково. Каждая из систем обработает столько пользователей, сколько поддерживает аппаратная часть системы, исходя из количества оперативной памяти и производительности ядра. Обе системы предназначены для максимального использования протокола SIP и взаимодействия между устройствами в сети таких как VoIP-шлюзов, PSTN. Asterisk имеет специальный протокол подключения с другими системами Asterisk – IAX.

Так же, безусловным преимуществом FreeSWITCH стоит отметить возможность кластеризации (объединения нескольких серверов), где каждый хост в кластере будет выполнять свою определенную роль.

Расширенные функции

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

Обе системы могут взаимодействовать с другими системами, которые используют одну и ту же платформу. Asterisk может эффективно взаимодействовать с другими системами Asterisk. Однако FreeSWITCH обладает мощными возможностями межсетевого взаимодействия, позволяя отдельным системам в кластере заполнять несколько ролей. Как и в среде Windows Server, установка каждой роли на один сервер может быть неэффективна на практике, по крайней мере для более крупных систем PBX. FreeSWITCH позволяет каждой системе в кластере выполнять определенную роль, тогда как Asterisk ограничен на базовом уровне.

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

Развертывание в сети значительно различается. У Asterisk есть довольно много разных модулей для управления конечными девайсами (например, IP-телефоны и софт-телефоны), обычно требующие небольших финансовых инвестиций. Системы FreeSWITCH имеют несколько конфигурационных файлов, встроенных в платформу для определения вендора телефонов, однако охват не такой большой по сравнению с тем, что доступно для Asterisk, и обычно поддерживают только самые популярные модели IP-телефонов.

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

Выводы

В таблице ниже приведен общий анализ использования сравниваемых систем.

Функция Asterisk FreeSWITCH
Малое потребление ресурсов сервера, включая ресурсы процессора и оперативной памяти
Сравнение Asterisk и FreeSWITCH
Сравнение Asterisk и FreeSWITCH
Документация и поддержка: решение проблем, форму, гайды, сильное комьюнити проекта
Сравнение Asterisk и FreeSWITCH
Сравнение Asterisk и FreeSWITCH
Богатый базовый функционал: конференции, видеозвонки, IVR, голосовая почта и так далее
Сравнение Asterisk и FreeSWITCH
Сравнение Asterisk и FreeSWITCH
Возможность реализации функций мульти-площадок (поддержка отдельных телефонных доменов с полной сегрегацией пользователей) Сравнение Asterisk и FreeSWITCH
Сравнение Asterisk и FreeSWITCH
Внутренние механизмы устойчивости к повышению нагрузки, связанной с повышением количества одновременных вызовов
Сравнение Asterisk и FreeSWITCH
Сравнение Asterisk и FreeSWITCH
Возможности кластеризации для разделения функций на каждую систему. Например, одна отдельная установка для обработки функцию конференц-связи.
Сравнение Asterisk и FreeSWITCH
Сравнение Asterisk и FreeSWITCH

С функциональной точки зрения при сравнении систем Asterisk и FreeSWITCH существует несколько отличий. При правильной настройке конечные пользователи, скорее всего, не заметят значительной разницы между реализацией системы. Хотя, наше предпочтение к использованию “чистого” Asterisk, без использования графического интерфейса управления (GUI).

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

Обе системы относительно просты в установке и настройке (особенно, если вы следуете нашим руководствам). Asterisk можно запускать не только на примитивном оборудовании, но и на высокопроизводительном. Системы на основе FreeSWITCH имеют явное преимущество по данному показателю.


Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.