FreeSWITCH

FreeSWITCH
software
Logo
Logo
GenereVoice over IP
SviluppatorePiù sviluppatori
Ultima versione1.11.3 (28 agosto 2026)
Sistema operativoLinux
LinguaggioC
LicenzaMozilla Public License (MPL)
(licenza libera)
Sito webfreeswitch.com

FreeSWITCH è un server gratuito e open source per la comunicazione in tempo reale attraverso WebRTC e VoIP.

Il software viene distribuito per sistemi operativi Linux, Windows, macOS e FreeBSD. Viene utilizzato per costruire sistemi PBX, servizi IVR, servizi di videoconferenza con chat e condivisione dello schermo, servizi di least-cost routing, Session Border Controller (SBC) e dispositivi di comunicazione embedded. Possiede pieno supporto per la crittografia, ZRTP, DTLS e SIPS. Può fungere da gateway tra la rete telefonica generale, il SIP, il WebRTC e molti altri protocolli di comunicazione. La sua libreria principale, libfreeswitch, può essere incorporata in altri progetti.

È concesso in licenza Mozilla Public License, una licenza di software libero.

Storia

Il progetto FreeSWITCH è stato annunciato per la prima volta nel gennaio 2006 alla conferenza ETEL di O'Reilly Media.

Nel giugno 2007 FreeSWITCH è stato selezionato da Truphone per essere implementato nei propri servizi e nell'agosto 2007 Gaboogie ha annunciato di aver selezionato FreeSWITCH come piattaforma per le conferenze.

La prima versione ufficiale di FreeSWITCH 1.0.0 (Phoenix) è stata rilasciata al pubblico il 26 maggio 2008. La patch 1.0.1 è stata rilasciata il 24 luglio 2008.

Al ClueCon del 2012 Anthony Minessale ha annunciato il rilascio di FreeSWITCH 1.2.0 e che il team di sviluppo di FreeSWITCH avrebbe creato un ramo software stabile (versione 1.2) e uno di sviluppo (versione 1.3) separati.

FreeSWITCH 1.4, rilasciato all'inizio del 2014, è la prima versione che supporta il protocollo SIP su Websocket e WebRTC.

FreeSWITCH 1.6 ha aggiunto il supporto per la transcodifica video e le videoconferenze, il protocollo Verto per WebRTC e tutti i codec e gli standard WebRTC.

FreeSWITCH 1.8 è stato rilasciato al ClueCon del 2018 con ulteriori aggiornamenti e miglioramenti alla stabilità del progetto.

SignalWire Inc è stata fondata nel 2018 per fornire servizi di telecomunicazione cloud commerciale utilizzando un nucleo elastico FreeSWITCH e fornire uno sponsor commerciale permanente per il progetto open source controllato dai fondatori di FreeSWITCH. La società ha successivamente acquisito la FreeSWITCH Solutions.

Design

Secondo il lead designer, Anthony Minessale, FreeSWITCH è concepito per essere un softswitch costruito su un core compatto, pilotato da una macchina a stati. Gli obiettivi dichiarati del progetto includono stabilità, scalabilità e astrazione.

Per ridurre la complessità della codebase, FreeSWITCH utilizza librerie software disponibili gratuitamente che eseguono alcune delle funzioni necessarie. Alcune dipendenze sono:

Non tutte queste dipendenze software sono necessarie per compilare l'applicazione principale freeswitch, ma sono dipendenze di vari moduli esterni, come i codec. FreeSWITCH è un'applicazione modulare, in cui i moduli possono estenderne la funzionalità, ma il livello di astrazione impedisce la dipendenza tra moduli. L'obiettivo è garantire che il caricamento di un modulo non sia necessario ai fini del caricamento di un altro.

Funzionalità

FreeSWITCH include diversi moduli che forniscono una moltitudine di applicazioni di telefonia come:

FreeSWITCH fornisce un'API che espone le primitive per il controllo delle chiamate e la funzionalità IVR. Le applicazioni che utilizzano le API possono essere scritte in linguaggio C, C++, Python, Perl, Lua, JavaScript, Java e Microsoft.NET tramite Microsoft CLR o tramite Mono.

Le applicazioni di controllo delle chiamate possono utilizzare l'Event Socket, una funzione di comunicazione basata su un socket Internet all'interno di FreeSWITCH che fornisce un'interfaccia indipendente dal linguaggio. La Event Socket Library (ESL) e gli "ESL-wrapper" sono disponibili per Erlang, JavaScript, Lua, Perl, PHP, Python e Ruby.

A partire dalla versione 1.4 FreeSWITCHsupporta il protocollo WebRTC.

In FreeSWITCH 1.6 è stato aggiunto il supporto per il video muxing ed è stato completato il supporto di WebRTC, wss, dtls, SIP.js, Verto.js, Opus 48 kHz a 8 kHz, resiliente fino al 40% di perdita di pacchetti.

Caratteristiche principali di FreeSWITCH 1.6:

Supporto WebRTC

Supporto per videoconferenze

FreeSWITCH è sempre stata una potente piattaforma per le conferenze, nata molti anni fa come bridge per conferenze audio estremamente scalabile. In una svolta al ClueCon 2015 a Chicago, Illinois, il creatore di FreeSWITCH Anthony Minessale II ha annunciato il supporto per la transcodifica video, il missaggio, la manipolazione e la funzionalità Multipoint Control Unit (MCU). FreeSWITCH ora ha le funzionalità di videoconferenza più avanzate e mature:

Codec supportati

FreeSWITCH supporta una varietà di codec audio e video:

G.723.1, H263 e H264 sono supportati in modalità pass-through. Poiché i dati compressi grezzi vengono trasmessi tra i chiamanti senza alcuna elaborazione, ciò consente il supporto per alcuni codec che non possono essere forniti gratuitamente a causa di brevetti o altri problemi di licenza.

Il software supporta schede di transcodifica hardware, come quelle prodotte da Sangoma. Questi implementano i codec nell'hardware, riducendo l'utilizzo della CPU del server. Alcuni di questi codec sono dotati di licenza completa, fornendo un'alternativa alle opzioni pass-through sopra.

Protocolli supportati

Applicazioni supportate

Metodi di crittografia supportati

Supporto alla sintesi vocale e al riconoscimento vocale automatico

Sistemi operativi supportati

Confronto con altri software di telefonia

FreeSWITCH occupa uno spazio tra gli switch puri che instradano semplicemente le chiamate, come Kamailio e OpenSIPS, e quelli che forniscono principalmente funzionalità PBX o IVR, come Asterisk e i suoi derivati. FreeSWITCH fornisce elementi costitutivi da cui è possibile creare applicazioni, come un PBX, un sistema di posta vocale, un sistema di conferenza o una scheda telefonica, utilizzando una qualsiasi delle lingue supportate.

Prodotti derivati

FreeSWITCH è un componente fondamentale in molti prodotti commerciali PBX in a box e progetti open-source. Alcuni dei prodotti commerciali sono bundle hardware e software, per i quali il produttore supporta e rilascia il software come open source.