FreeSWITCH est un moteur de télécommunications libre capable de transformer un serveur ordinaire, voire un Raspberry Pi, en central téléphonique, en pont de conférence ou en plateforme de traitement d’appels. Il a été annoncé en janvier 2006 par Anthony Minessale et une petite équipe décidée à prouver que du logiciel pouvait remplacer les commutateurs propriétaires. Son code est diffusé sous Mozilla Public License, en version 1.1 d’après le fichier de licence du dépôt.
Les mêmes développeurs ont fondé en 2017 la société SignalWire, aujourd’hui principal sponsor du projet, qui héberge son code sur GitHub. La version 1.11.3, publiée le 28 août 2026, est présentée par l’équipe comme une mise à jour de sécurité à installer sans attendre.
À quoi sert FreeSWITCH
Là où Kamailio et OpenSIPS se contentent d’aiguiller la signalisation, FreeSWITCH prend en charge les appels de bout en bout, voix et vidéo comprises. Il fonctionne comme un agent utilisateur dos à dos : chaque communication est terminée sur le serveur puis relancée vers sa destination, ce qui lui permet d’enregistrer, de passer d’un codec à l’autre, de mixer plusieurs participants, de diffuser des messages ou de reconnaître les touches composées. Messagerie vocale, files d’attente, menus vocaux et conférences font partie de son répertoire.
L’architecture est modulaire. Un noyau gère les sessions et les médias, des modules apportent le reste : mod_sofia pour SIP, mod_verto pour le WebRTC depuis un navigateur, des codecs, des connecteurs de bases de données et des langages de script. La logique d’appel s’écrit dans un plan de numérotation en XML ou dans des scripts, et l’interface Event Socket permet à une application externe de piloter le serveur en temps réel. C’est ce qui en fait une base fréquente pour des IPBX, des logiciels de centre d’appels ou des services vocaux programmables. Dans les grandes architectures, on le place souvent derrière Kamailio ou OpenSIPS, qui absorbent les enregistrements et répartissent la charge entre plusieurs FreeSWITCH chargés des médias. Face à Yate, autre moteur complet, il dispose d’une communauté bien plus large.
Le modèle de distribution a changé ces dernières années, et mieux vaut le comprendre avant d’installer. Le code source reste libre et gratuit. En revanche, SignalWire exige désormais un compte, gratuit, pour accéder aux paquets binaires : l’installation par paquets sous Debian passe par un jeton d’accès personnel créé dans l’espace SignalWire de l’utilisateur. À côté de cette édition communautaire, SignalWire vend FreeSWITCH Advantage, une offre payante que l’on héberge soi-même. Elle comprend des modules commerciaux comme le codec G.729A et la détection de répondeur, l’accès aux versions de FreeSWITCH Enterprise publiées dans un dépôt privé et un support assuré par l’équipe fondatrice. Selon la FAQ de SignalWire, l’édition communautaire ne bénéficie d’aucun support officiel et reçoit ses mises à jour moins vite.
Pour qui ?
FreeSWITCH convient aux opérateurs et intégrateurs qui construisent des services vocaux, aux éditeurs de logiciels de centre de contacts, aux entreprises qui veulent un IPBX sur mesure et aux développeurs à la recherche d’un moteur média pilotable par programme.
Il n’offre pas d’interface graphique d’administration : tout se règle dans des fichiers XML parfois volumineux, et la courbe d’apprentissage est réelle. Le traitement des médias consomme du processeur, surtout avec le transcodage et la vidéo, ce qui le rend moins adapté que Kamailio pour absorber seul des volumes massifs de signalisation. L’obligation d’ouvrir un compte SignalWire pour les paquets et l’absence de support officiel pour l’édition gratuite peuvent enfin faire hésiter une organisation sans compétences internes.
Télécharger FreeSWITCH sans risque
Le code officiel se trouve sur GitHub, dans le dépôt signalwire/freeswitch, et la documentation sur developer.signalwire.com. Sous Linux, la méthode recommandée est le script fsget, qui configure le dépôt de paquets Debian, Raspberry Pi compris, à l’aide du jeton personnel. Debian 11 n’est plus pris en charge depuis la version 1.11.3, et la compilation depuis les sources ne réclame aucun jeton. Pour Windows, un installateur MSI 64 bits d’environ 161 Mo accompagne chaque version sur la page des versions du dépôt GitHub. macOS n’a pas de paquet officiel et passe par la compilation.
L’édition communautaire est gratuite, tout comme le compte SignalWire nécessaire aux paquets. FreeSWITCH Advantage est vendu sur devis, sans tarif public. Le jeton personnel ouvre l’accès à votre compte : il ne doit jamais être collé dans un script récupéré sur un forum, et les sites qui proposent des installateurs Windows hébergés hors de GitHub ou des « paquets prêts à l’emploi » payants sont à fuir.
Questions fréquentes
FreeSWITCH est-il encore gratuit ?
Oui. Le code reste publié sous licence MPL et peut être utilisé en production sans rien payer. Seul un compte SignalWire gratuit est demandé pour télécharger les paquets Linux, et l’offre payante FreeSWITCH Advantage ajoute des modules commerciaux et un support.
Quelle différence entre FreeSWITCH et Kamailio ?
FreeSWITCH traite les médias : il enregistre, transcode, mixe et diffuse des messages. Kamailio ne s’occupe que de la signalisation SIP, avec une capacité bien supérieure sur ce terrain. Les deux sont souvent déployés ensemble.
Faut-il un compte SignalWire pour compiler FreeSWITCH ?
Non. La documentation précise que la compilation à partir du dépôt GitHub ne demande aucun jeton. Le compte n’est requis que pour les paquets binaires installés avec fsget.