Pull to refresh

FreeSWITCH. Быть может будущее телефонии уже с нами?

Reading time3 min
Views13K
FreeSWITCH это редко упоминаемая в настоящее время платформа для телефонии обладающая обширными возможностями. Создан группой бывших разработчиков Asterisk, но не таким образом как Callweaver — архитектура системы переписана с нуля, это не форк. Так как код независим от Asterisk и его форков, разработчики могли выбирать лицензию отличную от GPL, и в итоге выбрали MPL, что позволяет использовать FreeSWITCH в продуктах, производители которых не готовы открывать свои наработки. К сожалению это не позволяет разработчикам использовать код под GPL.

Основные моменты:
  • Архитектура многопоточная, производительность очень высокая (тестировал лично, есть тесты на официальном сайте);
  • Модуль это модуль, а не название. То есть можно отключить mod_sofia отвечающий за SIP и система продолжит работать. Архитектура Asterisk такого не позволит — код сервера тесно переплетен с кодом chan_sip. Сведения из первых рук — от разработчика;
  • Цель — максимально использовать готовые библиотеки. Разработчики не считают своим долгом реализовать все VoIP протоколы современности лично. Вариант с использованием готовой библиотеки вполне подходит;
  • Конфигурация — один XML документ разбитый на логические части по разным файлам, собирается препроцессингом (много за и против конфига в XML, все в курсе);


FreeSWITCH это первая платформа телефонии в открытыми исходниками, поддерживающая HD кодеки. Частота дискретизации до 48кГц, это больше 44,1 кГц Audio CD. Я думаю многие наслушали в режиме ожидания много часов хорошой музыки в ужасающем качестве. Это происходит от 8кГц звука используемого в телефонии уже десятки лет. Я считаю будущее, ставшее настоящим, за нормальный звук — кодек Celt (48кГц) поддерживаемый во FreeSWITCH использует такую же полосу пропускания (~64Кбит/с, с накладными расходами на заголовки пакетов ~80Кбит/с), что и кодек G.711 (8кГц).

Да, я знаю что производители железа до сих пор не могут обеспечить даже поддержку кодека Speex в своих продуктах, и редкий софтофон пооддерживает Celt (на самом деле я таких вообще не знаю, но а вдруг они есть?). Но FreeSWITCH сам по себе может выступать в роли софтофона. То есть один софтофон, поддерживающий кодек Celt, насчитали.

FreeSWITCH поддерживает Jingle (аудио и видео в GTalk) — таким образом вы можете предоставлять голосовые услуги клиентам XMPP, выступать как клиент GTalk. По не протестированным лично данным, также возможна трансляция текстовых сообщений между SIP и XMPP.

В комплекте поставки приложение голосовой почты и приложение конференций. Конференции также поддерживают HD Audio и не требуют ничего подобного Zaptel для работы.

FreeSWITCH позволяет использовать для написания приложений языки C, C++, Spidermonkey(ECMAScript), Lua, Python, Perl, Java, платформу .Net. Если не хватит возможностей номерного плана в XML, вы легко можете реализовать любую логику, ограничения в данном случае накладывает выбранный язык.

Имеется поддержка распознавания и синтеза речи. Основной упор на Flite и PocketSphinx. С русским, как обычно, сложно. Для Flite его поддержка не реализована в принципе, под PocketSphinx я ее запустить не сумел. В комплекте идет демонстрация — приложение для заказа пиццы с использование PocketSphinx, напиcанное на Spidermonkey. Разработчики готовят некий mod_unimrcp, который предположительно позволит связать FreeSWITCH с множеством ASR/TTS продуктов.

Таким образом FreeSWITCH готов для использования в ваших сетях, имеет уникальную среди open source продуктов поддержку HD Audio кодеков Siren и Celt. Для клиентов джаббер сетей с его помощью можно организовать поддержку аудио конференций. По моему стоит ознакомиться.

В дальнейших сериях практическое использование, для самых нетерпеливых есть ссылка.

P.S. Есть, есть G.729 — deepwalker.blogspot.com/2009/01/g729-freeswitch.html
Tags:
Hubs:
Total votes 5: ↑5 and ↓0+5
Comments13

Articles