Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

FreeSWITCH - это бесплатный сервер приложений с открытым исходным кодом для связи в реальном времени , WebRTC , телекоммуникаций , видео и передачи голоса по Интернет-протоколу ( VoIP ). Мультиплатформенность, работает на Linux , Windows , macOS и FreeBSD . Он используется для создания систем PBX , служб IVR , видеоконференцсвязи с чатом и демонстрацией экрана , оптовой маршрутизации с наименьшими затратами , пограничного контроллера сеанса (SBC) ивстроенные коммуникационные устройства . Имеет полную поддержку шифрования , ZRTP , DTLS , SIPS . Он может выступать в качестве шлюза между PSTN , SIP , WebRTC и многими другими протоколами связи . Его основная библиотека libfreeswitch может быть встроена в другие проекты. Он находится под лицензией Mozilla Public License (MPL), лицензией на бесплатное программное обеспечение .

История [ править ]

Впервые о проекте FreeSWITCH было объявлено в январе 2006 года на конференции ETEL O'Reilly Media . [10] В июне 2007 года компания Truphone выбрала FreeSWITCH для использования [11], а в августе 2007 года компания Gaboogie объявила, что выбрала FreeSWITCH в качестве платформы для конференц-связи. [12]

Первый официальный выпуск 1.0.0 FreeSWITCH (Phoenix) состоялся 26 мая 2008 г. [13] 24 июля 2008 г. вышел второстепенный выпуск патча 1.0.1. [14] На ClueCon 2012 Энтони Минессейл объявил [15] о выпуске новой версии. FreeSWITCH версии 1.2.0 [16] и что группа разработчиков FreeSWITCH приняла отдельные стабильные (версия 1.2) и разрабатываемые (версия 1.3) ветки.

FreeSWITCH 1.4, выпущенный в начале 2014 года, является первой версией, поддерживающей SIP через Websocket и WebRTC.

В FreeSWITCH 1.6 добавлена ​​поддержка перекодирования видео и видеоконференций, протокола Verto для WebRTC, а также всех кодеков и стандартов WebRTC.

FreeSWITCH 1.8 был выпущен на ClueCon в 2018 году с дальнейшими обновлениями и улучшениями стабильности проекта.

SignalWire Inc была основана в 2018 году для предоставления коммерческих облачных телекоммуникационных услуг с использованием эластичного ядра FreeSWITCH и обеспечения постоянного коммерческого спонсора проекта с открытым исходным кодом, который контролировался основателями FreeSWITCH. Затем он приобрел FreeSWITCH Solutions. [17]

Дизайн [ править ]

По словам ведущего дизайнера, Энтони Minessale , [18] FreeSWITCH предназначен быть софтсвитч , который построен на вершине твердого ядра, приводимый в государственной машине . [19] Заявленные цели проекта включают стабильность, масштабируемость и абстракцию .

Чтобы уменьшить сложность, FreeSWITCH использует бесплатные программные библиотеки, которые выполняют необходимые функции. Некоторые зависимости: [20]

  • Портативная среда выполнения Apache (APR и APR-Util)
  • SQLite - облегченная реализация механизма SQL
  • PCRE - Perl-совместимые регулярные выражения
  • София-SIP - с открытым исходным кодом SIP пользователь библиотеки агент
  • libspeex - библиотека Speex DSP (заменена libresample с версии 1.0.3)
  • mod_spandsp для факс-шлюза T.38 или сквозной передачи
  • libSRTP - реализация безопасного транспортного протокола в реальном времени с открытым исходным кодом

Не все эти программные зависимости требуются для создания основного приложения freeswitch , но являются зависимостями различных внешних модулей, таких как кодеки. FreeSWITCH - это модульное приложение, в котором модули могут расширять функциональность, но уровень абстракции предотвращает межмодульную зависимость. Цель состоит в том, чтобы гарантировать, что один модуль не требуется для загрузки другого. [21]

Особенности [ править ]

FreeSWITCH включает в себя множество модулей , которые обеспечивают множество приложений телефонии, таких как конференц -связь , XML-RPC контроль живых вызовов, интерактивного голосового ответа (IVR), синтеза речи и распознавания речи , коммутируемой телефонной сети общего интерфейса для аналоговых и цифровых схем, (PSTN) голосовой по протоколам IP , включая протокол инициации сеанса (SIP), Verto, протокол SCCP, H.323 , Extensible Messaging and Presence Protocol (XMPP), GoogleTalk , T.38 и другие. [22]

FreeSWITCH предоставляет интерфейс прикладного программирования, который предоставляет примитивы для управления вызовами и функциональности IVR. Приложения могут быть написаны на языке C , C ++ , Python , Perl , Lua , JavaScript , Java и Microsoft .NET через Microsoft CLR или через Mono . [23]

Приложения управления вызовами могут использовать Event Socket, который представляет собой средство связи на основе Интернет-сокетов в FreeSWITCH, предоставляя интерфейс, не зависящий от языка. Библиотека сокетов событий (ESL) и «ESL-оболочки» доступны для Erlang , JavaScript, Lua, Perl, PHP, Python и Ruby .

Начиная с FreeSWITCH версии 1.4, существует поддержка WebRTC . [24]

В FreeSWITCH 1.6 была добавлена ​​поддержка мультиплексирования видео и полного WebRTC , wss, dtls, SIP.js, Verto.js, Opus от 48 кГц до 8 кГц, с устойчивостью к потере пакетов до 40%.

Основные возможности FreeSWITCH 1.6:

  • Поддержка WebRTC
  • Централизованный каталог пользователей / доменов (directory.xml)
  • Наносекундная гранулярность CDR
  • Запись звонков (в стерео звонящем / вызывающем влево / вправо)
  • Высокопроизводительный двигатель с многопоточным сердечником
  • Настройка через cURL на ваш HTTP-сервер (mod_xml_curl).
  • Файлы конфигурации XML для легкого анализа.
  • Независимость от протокола
  • Поддержка ZRTP для прозрачного обмена ключами и шифрования на основе RTP
  • Настраиваемый тип полезной нагрузки RFC 2833
  • Генерация и обнаружение внутриполосного DTMF.
  • Программная конференция (без аппаратных требований)
  • Широкополосная конференц-связь
  • Режимы мультимедиа / без мультимедиа
  • Встроенный правильный набор номера ENUM / ISN
  • Подробный CDR в XML
  • Радиус CDR
  • Сервер подписки
  • Общие появления линий
  • Появление мостовой линии
  • Двигатель троеборья корпоративного / операторского уровня. (События XML, события значения имени, многоадресные события)
  • Загружаемые форматы файлов и потоковая передача
  • Транслируйте и играйте с Shoutcast и Icecast
  • Многоязычный интерфейс речевых фраз
  • Поддержка ASR / TTS (родная и через MRCP)
  • Основные функции IP / PBX
  • Автоматизированный оператор
  • Пользовательские сигналы обратного вызова (ранние версии)
  • Поддержка XML-RPC
  • Поддержка нескольких форматов CDR
  • SQL Engine обеспечивает постоянство сеанса
  • Изоляция резьбы
  • Параллельная охота
  • Серийная охота

Поддержка WebRTC [ править ]

[25]

  • FreeSWITCH - это шлюз WebRTC, способный принимать зашифрованные мультимедийные данные из браузеров, преобразовывать их и обмениваться ими с другими сетями связи, которые используют разные кодеки и шифрование, например: PSTN, операторы мобильной связи, устаревшие системы и т. Сеть SIP, приложения и браузеры на настольных компьютерах, планшетах и ​​смартфонах.
  • FreeSWITCH - это сервер приложений WebRTC, способный напрямую предоставлять браузерам собственные услуги, такие как видеоконференции, IVR, колл-центры, без использования какого-либо шлюза или третьих лиц. FreeSWITCH может напрямую предоставлять услуги через Secure WebSocket (WSS), SRTP и DTLS, собственные протоколы WebRTC.
  • FreeSWITCH предоставляет дополнительную плоскость сигнализации, потому что с Verto браузеры могут инициировать или принимать голосовой вызов или видеозвонок самым простым способом, а также они могут общаться в чате, делиться экраном, получать и отправлять данные в реальном времени в серверные приложения. Verto - это альтернатива XMPP или SIP в Javascript. FreeSWITCH может параллельно и одновременно обслуживать одно и то же приложение для клиентов, использующих сигнализацию в SIP и Verto.

Поддержка видеоконференцсвязи [ править ]

[26] FreeSWITCH всегда был мощной платформой для конференц-связи, начав много лет назад как чрезвычайно масштабируемый мост аудиоконференцсвязи. На выставке ClueCon 2015 в Чикаго, штат Иллинойс, создатель FreeSWITCH Энтони Минессейл II объявил о поддержке транскодирования, микширования, обработки видео и функциональности Multipoint Control Unit (MCU). FreeSWITCH теперь имеет самые передовые и зрелые функции видеоконференцсвязи:

  • Поддержка нескольких видеокодеков и перекодирование
  • Несколько макетов видео
  • Разделение экрана
  • Картинка в картинке
  • Совместное использование экрана
  • Наложение видео (подписи, логотипы и т. Д.)
  • Видео микширование
  • Видеоэффекты и манипуляции в реальном времени
  • Chroma-Key (микширование видео с фоном)
  • SIP, WebRTC, VERTO, участники ISDN

Поддержка кодеков [ править ]

FreeSWITCH поддерживает множество аудио- и видеокодеков: [27]

  • PCMU - μ-закон G.711
  • PCMA - G.711 A-закон
  • G.722
  • G.722.1
  • G.722.1c
  • G.726
  • G.726 с набивкой AAL2
  • G.729 (сквозной)
  • G.729 (лицензированный) [28]
  • GSM
  • CELT и Opus
  • iLBC
  • DVI4 ( IMA ADPCM )
  • BroadVoice
  • ШЕЛК
  • Speex (узкий и широкополосный) с поддержкой RFC 5574 fmtp
  • Кодек2
  • LPC-10
  • AMR
  • AMR-WB
  • iSAC
  • OPUS RFC 6716, RFC 7587
  • VP8
  • VP9

G.723.1 , H263 и H264 поддерживаются в сквозном режиме. Поскольку необработанные сжатые данные передаются между вызывающими абонентами без какой-либо обработки, это позволяет поддерживать некоторые кодеки, которые не могут быть предоставлены бесплатно из-за патентов или других проблем с лицензированием.

Программное обеспечение поддерживает аппаратные карты перекодирования, например, производства Sangoma. [29] Они реализуют кодеки на аппаратном уровне, уменьшая загрузку ЦП сервера. Некоторые из этих кодеков полностью лицензированы, что дает альтернативу параметрам сквозной передачи, указанным выше.

Поддержка протокола [ править ]

[30]

  • SIP с mod_sofia
    • Транспорты UDP, TCP, SCTP и TLS для полного соответствия SIP.
    • Транспорты xiWS и WSS для полного соответствия WebRTC.
    • SIP v.2.0 (RFC 3261)
    • Поддержка IPv6
    • Таймеры сессий SIP
    • Таймеры RTP
    • RFC 3263 (SRV и NAPTR)
    • RFC 3325
    • RFC 4694
    • SRTP через SDES (работает с Polycom, Snom, Linksys и Grandstream)
    • Слепая регистрация SIP
    • Поддержка STUN
    • Буфер джиттера
    • Поддержка NAT
    • Распределенные регистрации SIP
    • Позднее согласование кодеков
    • Несколько регистраций SIP для каждой учетной записи пользователя.
    • Мультиарендность - несколько SIP UA
    • SIP Reinvites.
    • Может действовать как SBC (пограничный контроллер сеанса)
    • Управление присутствием
    • SIP / SIMPLE (может подключаться к другим протоколам чата)
    • Поддержка SIP Multicast Paging для Linksys и Snom
    • Поддержка внутренней связи / автоответчика.
    • Функции вызова, такие как удержание вызова (Re-INVITE), слепой перевод (REFER), переадресация вызова (302) и т. Д.
  • mod_skinny - Тонкий протокол управления вызовами (SCCP)
  • mod_verto - Сигнальный протокол VERTO WebRTC

Поддержка приложений [ править ]

[31]

  • Голосовая почта
    • Мультиарендность - конфигурация предприятия / оператора связи
    • Время дня приветствия
    • Пометка срочных сообщений
    • Доставка по электронной почте
    • Воспроизведение и перезапись сообщений перед доставкой.
    • Ключи - это шаблоны, поэтому вы можете переставить их по своему усмотрению.
    • Поддержка обратного вызова из внутренней голосовой почты.
    • Подкаст голосовой почты (RSS)
    • Индикатор ожидающего сообщения (MWI)
  • Поддержка очередей (через mod_fifo или mod_callcenter)
  • Парковка (через mod_fifo)
  • Конференция
    • Программная конференц-связь без каких-либо требований к оборудованию.
    • Широкополосные конференции.
    • Несколько конференций по запросу или по расписанию с объявлениями о входе / выходе
    • Воспроизведение файлов в конференции или отдельного участника.
    • Отношения
    • Интеграция TTS
    • Переводы
    • Исходящий вызов
    • Настраиваемая раскладка клавиш
    • Громкость, усиление и уровень энергии на звонок.
    • Переход от моста к конференции
    • Многосторонний исходящий набор.
    • RFC 4579 SIP CC Conferencing для UA
    • Автоматическая запись или запись по запросу
  • RSS Reader
  • Конечная точка факса, шлюз и режим сквозной передачи.
    • T.30 (G.711) Аудио-факс (через mod_spandsp), ранее известный как mod_fax.
    • Отправка факсов T.38 (шлюз, конечная точка и сквозная передача)

Поддержка шифрования [ править ]

  • WSS
  • HTTPS
  • SRTP
  • ZRTP
  • TLS
  • SIPS
  • SSL
  • СДЭС
  • DTLS

Поддержка преобразования текста в речь и автоматического распознавания речи [ править ]

  • Кепстрал
  • Flite
  • Карманный сфинкс
  • MRCP

Поддержка операционных систем и систем сборки [ править ]

  • Debian Linux является предпочтительной операционной системой, поскольку она обеспечивает самую широкую поддержку в своих библиотеках, необходимую для запуска FreeSWITCH, не обремененного лицензионными ограничениями.
  • Другие системы Linux, такие как RHEL и CentOS
  • Solaris 10 UNIX ( Solaris Studio )
  • FreeBSD (gmake)
  • macOS (gmake)
  • Windows (родная)

Сравнение с другим программным обеспечением для телефонии [ править ]

FreeSWITCH занимает пространство между чистыми коммутаторами, которые просто маршрутизируют вызовы, такими как Kamailio и OpenSIPS , и теми, которые обеспечивают в основном функциональность PBX или IVR , такими как Asterisk и его производные. FreeSWITCH предоставляет строительные блоки, из которых можно создавать приложения, такие как УАТС, система голосовой почты, система конференц- связи или телефонная карта, с использованием любого из поддерживаемых языков. [32]

Производные продукты [ править ]

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

  • BigBlueButton построен на основе FreeSWITCH

См. Также [ править ]

  • Список бесплатных программных пакетов и пакетов с открытым исходным кодом
  • Список программного обеспечения SIP - другие программы, связанные с SIP

Ссылки [ править ]

приложение freeswitch с графическим интерфейсом

  1. ^ "Релизы - сигнальный провод / свободный переключатель" . Проверено 25 марта 2021 года - через GitHub .
  2. ^ «Linux - FreeSWITCH - Confluence» .
  3. ^ «macOS - FreeSWITCH - Confluence» .
  4. ^ "Solaris - FreeSWITCH - Confluence" .
  5. ^ «FreeBSD - FreeSWITCH - Confluence» .
  6. ^ «NetBSD - FreeSWITCH - Confluence» .
  7. ^ «OpenBSD - FreeSWITCH - Confluence» .
  8. ^ «DragonFlyBSD - FreeSWITCH - Confluence» .
  9. ^ «Windows - FreeSWITCH - Confluence» .
  10. ^ "Помимо Asterisk, будущее телефонии. Что дальше?" . O'Reilly Media. 2006-01-25 . Проверено 6 октября 2007 .
  11. ^ «Truphone выбирает FreeSWITCH и TelcoBridges для включения вызовов VoIP через WiFi на мобильных телефонах» (пресс-релиз). Труфон. 5 июня 2007 г.
  12. ^ «Gaboogie принимает открытый исходный код для нового решения для мобильных групповых вызовов и конференц-связи» . Габуги. 2007-08-03. Архивировано из оригинала на 2008-09-08 . Проверено 6 октября 2007 .
  13. ^ "FreeSWITCH 1.0.0" Phoenix "выпущен!" . Архивировано из оригинала на 2008-08-10.
  14. ^ "FreeSWITCH 1.0.1" Phoenix "выпущен!" . Архивировано из оригинала на 2008-08-19.
  15. ^ "Основной доклад ClueCon 2012" . Архивировано из оригинала на 2012-06-08.
  16. ^ «Это официально! Выпущен FreeSWITCH 1.2» . Архивировано из оригинала на 2012-09-20.
  17. ^ "Freeswitch приобретен SignalWire" . signalwire.com . Проверено 1 мая 2018 .
  18. Галлахер, Кэтлин (18 октября 2009 г.). «Переключение FreeSWITCH - Брукфилд является домом для революционного программного обеспечения» . Милуоки Журнал Страж. Архивировано из оригинального 22 октября 2009 года.
  19. ^ «Интервью с создателем FreeSWITCH» . O'Reilly Media. 25 июля 2006 г.
  20. ^ Полный список зависимостей можно найти в разделе страницы зависимостей документации FreeSWITCH.
  21. ^ «Введение в FreeSWITCH» . FreeSWITCH Wiki . Проверено 29 января +2016 .
  22. ^ «Модули» . Вики-документация по FreeSWITCH. 2016-01-29 . Проверено 7 октября 2007 .
  23. ^ «Интерфейсы клиента и разработчика» . Вики-документация по FreeSWITCH. 2016-01-29 . Проверено 7 октября 2007 .
  24. ^ «Проект FreeSWITCH выпускает бета-версию 1.4 с поддержкой WebRTC Media» . Официальный сайт FreeSWITCH. 2013-06-19 . Проверено 19 июня 2013 .
  25. ^ FreeSWITCH 1.6 Поваренная книга, Packt Publishing, ISBN 1785280910 
  26. ^ Освоение FreeSWITCH, публикация пакетов , ISBN 1784398888 
  27. ^ https://freeswitch.org/confluence/display/FREESWITCH/Audio+Codecs
  28. ^ "Архивная копия" . Архивировано из оригинала на 2010-11-23 . Проверено 23 ноября 2010 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  29. ^ http://wiki.sangoma.com/sangoma-media-transcoding#sng_freeswitch_usage Архивировано 5 июля 2013 г. на Wayback Machine
  30. ^ https://freeswitch.org/confluence/display/FREESWITCH/Specifications
  31. ^ https://freeswitch.org/confluence/display/FREESWITCH/Specifications
  32. ^ «Приложения FreeSWITCH» . Проверено 30 января 2016 года .