По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Мир VoIP (Voice over IP) многогранен. На рынке существует целое множество решений для построения корпоративных систем связи – IP – АТС. Нас интересуют программные «open source» решения, поэтому, сегодня мы сравним две популярные телефонные платформы и ответим на вопрос: что круче, FreeSWITCH или Asterisk? :) Про Asterisk Давайте немного теории: Asterisk - программная автоматическая телефонная станция (АТС) на базе протокола IP, которая способна предложить богатый, с точки зрения телефонии, инструментарий для офиса. Asterisk, будучи одной из первых программных IP-АТС был создан в 1999 году как решение с открытым кодом (open source). При поддержке компании Digium в 2005 году IP – АТС увидела свет и была выпущена в «продакшн». Реализация происходит под двумя лицензиями: GNU GPL (General Public License) и патентная лицензия для разработки собственных решений на базе Asterisk, рассчитанных на дальнейшую продажу. Более миллиона пользователь радуются IP – АТС Asterisk каждый день по всему миру :) Но не все так гладко (удар молнии за окном). Исторически, Asterisk имеет ряд проблем, связанных с масштабируемостью, нестабильностью работы при повышении нагрузки. С учетом особенностей лицензирования, многие пользователи (в том числе компании - разработчики) искали новый продукт. Про FreeSWITCH В 2006 году группа бывших разработчиков Asterisk приняли решение разработать альтернативное решение – на свет появился FreeSWITCH. Вдохновленные модульной структурой веб – сервера Apache, команда разработчиков преследовала цель улучшить параметры масштабируемости и стабильности работы на разных платформах. FreeSWITCH создан по модели состояний, вследствие чего, каждый вызов(канал) работает по отдельному потоку данных. Для построения структуры, использовались компоненты open – source решений, такие как, например, Sofia SIP – SIP UA с открытым исходным кодом, созданный компанией Nokia. Что под капотом? Asterisk – модульная структура. Во время работы, Asterisk использует общие ресурсы, включая программные потоки – это главная проблема при большой интенсивности вызовов. Несмотря на сложность и многогранность программного кода, на котором написан Asterisk, он находит огромное множество применений в сети. С другой стороны, FreeSWITCH написан на C, структура которого более понятна и прозрачна. Потоки процессов выполняются последовательно и отдельно для каждого канала, что безусловно отличает Фрисвитч от Asterisk. При этом, как правило, по этой причине FreeSWITCH требует больший объем оперативной памяти (RAM) Отметим, что FreeSWITCH имеет хорошо документированный API (Application Programming Interface), сегментированный по ролям. Такая структура обеспечивает безопасное подключение к API в отличие от Asterisk, где более открытая конструкция API допускает вероятность внесения багов и ошибок. Asterisk базируется на текстовых конфигурационных файлах, в то время как FreeSWITCH использует файлы формата .xml. Безусловно, с точки зрения работы с конфигами для админа, файлы текстового формата проще редактировать, однако, плюсы формата .xml всплывают на этапе автоматизации различных процессов. Требования к железу Оценить общие требования к IP – АТС достаточно сложно, так как в каждой инсталляции используется разный набор фичей и целей эксплуатации. Однако, в таблице ниже сконцентрированы минимальные требования к серверу, на котором будет развернут Asterisk и FreeSWITCH для работы 15 телефонными аппаратами и 5 одновременными вызовами. Сравните их: Параметр FreeSWITCH Asterisk CPU Одно ядро, частота процессор 1 гГц Одно ядро, частота процессор 700 мГц RAM 1 ГБ 512 МБ HDD 10 ГБ 10 ГБ OS Linux, 32/64 бит Linux, 64 бит Как видно, FreeSWITCH потребляет больше RAM. О причине этого мы писали ранее – это связано с архитектурой. Функционал С точки зрения базового набора функций, АТС идентичны. Голосовая почты, IVR, маршрутизация, intercom и другие опции доступны для обоих лагерей пользователей. Рассмотрим преимущества, которые интересны для профессионального и более глубокого использования платформ. Начнем, пожалуй, с возможности FreeSWITCH создавать мульти – площадки. Фрисвич нативно (из коробки) умеет сегментировать площадки пользователей, разные домены и суб – домены. Это означает, что пользователи одной площадки не смогут дозвониться до пользователей другой по внутренним номерам. Другими словами, обеспечивается полнофункциональная сегрегация пользователей. Так же, безусловным преимуществом FreeSWITCH стоит отметить возможность кластеризации (объединения нескольких серверов), где каждый хост в кластере будет выполнять свою определенную роль. Итог Подведем итоги. Мы составили таблицу с результатами, чтобы вам было проще ориентироваться: Функция FreeSWITCH Asterisk Малое потребление ресурсов сервера, включая ресурсы процессора и оперативной памяти ✕ ✓ Документация и поддержка: решение проблем, форму, гайды, сильное комьюнити проекта ✕ ✓ Богатый базовый функционал: конференции, видеозвонки, IVR, голосовая почта и так далее ✓ ✓ Возможность реализации функций мульти - площадок (поддержка отдельных телефонных доменов с полной сегрегацией пользователей) ✓ ✕ Внутренние механизмы устойчивости к повышению нагрузки, связанной с повышением количества одновременных вызовов ✓ ✕ Объединение серверов в кластер, с последующим разделением ролей ✓ ✕
img
JIT-компиляция – это метод повышения производительности интерпретируемых программ. JIT расшифровывается как Just-in-time. Во время выполнения программа может быть скомпилирована в машинный код для повышения ее производительности. Также этот метод известен как динамическая компиляция. Динамическая компиляция имеет несколько преимуществ перед статической. При запуске приложений на JAVA или C# среда выполнения может профилировать приложение во время его исполнения. Это позволяет создавать более оптимизированный код. Если поведение приложения меняется во время его исполнения, то среда выполнения может перекомпилировать код. Есть некоторые недостатки, заключающиеся в задержках при запуске или непроизводительных издержках при компиляции во время выполнения. Чтобы ограничить эти издержки, многие JIT-компиляторы компилируют только пути кода, которые часто используются. Обзор Традиционно существует два метода преобразования исходного кода в форму, которую можно запустить на платформе. Статистическая компиляция преобразует код в язык для конкретной платформы. Интерпретатор непосредственно выполняет исходный код. JIT-компиляция пытается использовать преимущества обоих. В то время как выполняется интерпретируемая программа, JIT-компилятор определяет участки часто используемого кода и компилирует его в машинный код. В зависимости от компилятора это можно сделать для метода или меньшего участка кода. Впервые динамическая компиляция была описана в статье о языке LISP Дж. Маккарти в 1960 году. Компиляция на лету, JIT или динамическая компиляция – это компиляция, которая выполняется непосредственно во время исполнения программы, а не до этого. Что в этот момент происходит? Перевод в машинный код. Преимущества JIT-компиляции заключаются в том, что поскольку компиляция происходит во время выполнения, то JIT-компилятор имеет доступ к динамической информации времени выполнения, а это в свою очередь позволяет ему оптимизировать процесс (например, встраивать функции). Что важно понимать, когда речь идет о JIT-компиляции? Она скомпилирует байт-код в инструкции машинного кода работающего компьютера. Это означает, что полученный машинный код оптимизирован для архитектуры процессора конкретного компьютера. В качестве примеров JIT-компиляторов можно привести JVM (Java Virtual Machine - виртуальная машина Java) на Java и CLR (Common Language Runtime – общеязыковая исполняющая среда) на C#. История Изначально компилятор отвечал за преобразование языка высокого уровня (выше, чем ассемблер) в объектный код (машинные инструкции), который затем должен был быть связан (линкером) с исполняемой программой. В какой-то момент эволюции языков компиляторы начали компилировать язык высокого уровня в псевдокод, который затем интерпретировался (интерпретатором) для запуска программы. Это исключило объектный код и исполняемые программы и позволило перенести эти языки на несколько операционных систем и аппаратных платформ. Одним из первых был Pascal (который скомпилирован в P-Code); более современными примерами являются Java и C#. Со временем термин P-Code был заменен на байт-код, поскольку большинство псевдоопераций имеют длину в один байт. JIT-компилятор – это функция интерпретатора, которая вместо интерпретации байт-кода при каждом вызове компилирует байт-код в инструкции машинного кода работающей машины, а затем вызывает этот объектный код. В идеальном варианте эффективность выполнения объектного кода должна превзойти неэффективность перекомпиляции программы при каждом ее запуске. Обычный сценарий Исходный код полностью преобразуется в машинный код. JIT-сценарий Исходный код преобразуется в структуру на языке ассемблера, например, IL (промежуточный язык) для C#, ByteCode для Java. Промежуточный код преобразуется в машинный только тогда, когда приложение нуждается в том, чтобы необходимые коды были преобразованы в машинный код. JIT или не JIT При JIT-компиляции не весь код преобразуется в машинный код. Для начала преобразуется только необходимая часть кода. Затем, если вызываемый метод или выполняемые функции находятся не в виде машинного кода, то они тоже будут преобразованы в машинный код. Это снижает нагрузку на ЦП. Поскольку машинный код будет генерироваться во время выполнения, то JIT-компилятор создаст машинный код, оптимизированный для запуска архитектуры ЦП машины. Ниже приведены некоторые примеры JIT-компиляторов: Java: JVM (Java Virtual Machine – виртуальная машина Java) C#: CLR (Common Language Runtime – общеязыковая исполняющая среда) Android: DVM (Dalvik Virtual Machine – виртуальная машина Dalvik) или ART (Android RunTime – среда выполнения Android-приложений) в новых версиях Виртуальная машина Java (JVM) выполняет байт-код и ведет подсчет времени выполнения функции. Если это значение превышает предустановленный порог, то JIT-компилятор компилирует код в машинный код, который в дальнейшем может быть выполнен непосредственно процессором (в отличие от случая, когда javac компилирует код в байт-код, а затем интерпретатор интерпретирует этот байт-код построчно, переводя его в машинный код, и выполняет его). Кроме того, при следующем вычислении функции тот же скомпилированный код выполняется снова, в отличие от обычной интерпретации, когда код повторно интерпретируется построчно. Это значительно ускоряет процесс выполнения программы.
img
Процесс русификации интерфейса FusionPBX не является трудоемким, но, для русификации вам скорее всего придется переустановить FusionPBX с нуля - дело в том, что разработчики добавили русский перевод только в master ветку, а не в stable. Русификация Поэтому перед запуском установочного скрипта FusionPBX (как это делается, вы можете ознакомиться в нашей статье), необходимо провести некоторые манипуляции с ним: Открыть файл любым текстовым редактором по пути usr/src/fusionpbx-install.sh/centos/resources/config.sh - мы будем использовать vim. vim usr/src/fusionpbx-install.sh/centos/resources/config.sh Далее строчку system_branch нужно поменять на master и запустить скрипт, как описано в нашей статье. После установки необходимо зайти в веб-интерфейс, в раздел Home → Account Settings и в поле Language выбрать Russian [ru-ru]. Следующим шагом переходим в Advanced → Menu Manager, кликаем на иконку карандаша справа и меняем установку языка на ru-ru: После чего необходимо перейти в раздел Advanced → Upgrade, выбрать сброс настроек меню (как на скриншоте ниже) и нажать Execute: После чего необходимо будет перезайти в веб-интерфейс и вы должны будете увидеть его на русском!
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59