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