Liste des IPBX libres

Le choix d’un IPBX est parfois compliqué : l’offre est importante et complexe. Sur le papier toutes les solutions se valent, proposent toutes les fonctionnalités utiles, sont sécurisées, facilement administrables … Quand on doit choisir une solution IPBX libre, le choix est plus difficile. La première difficulté est de lister les différentes solutions.

Je vais lister pour vous les différentes solutions qui s’offrent à vous, la contrainte étant que la solution doit-être libre et à même de mettre en place un IPBX en entreprise. Pas d’autre contrainte ! Les voici classées par ordre alphabétique :

  • Astlinux
  • Blue.box
  • Elastix
  • FreePBX Distro
  • FusionPBX
  • Incredible PBX
  • PIAF : PBX in a flash
  • Wazo
  • Xivo
  • Yate (avec le module pbxassist)

Il existe d’autres solutions, je n’ai indiqué que les plus utilisées. Le choix n’est pas simple. Vous pouvez commencer par choisir un moteur VoIP (Asterisk, FreeSwitch ou Yate) et regarder l’interface graphique. Des critères peuvent-être éliminatoires comme le support de certains protocoles (comme IAX2 ou H323 par exemple), de montée en charge …

Un IPBX doit être facile à administrer. N’oubliez pas non plus de regarder les évolutions des différents projets. Malheureusement certains projets prometteurs sont devenus propriétaires comme TrixBox CE qui est devenu Fonality et AskoziaPBX qui a changé de licence.

Le mieux est de les tester au sein d’une VM afin de se faire une bonne idée après avoir rédigé un cahier des charges précis.

Je me dois de répondre à la question qui brûle vos lèvres : quelles solutions d’IPBX libres je préfère ? Selon l’usage, je vais préférer soit Astlinux soit Xivo. FusionPBX est intéressant mais est un peu lourd d’usage. L’interface d’administration mériterait un lifting.

Lesquelles avez-vous testé et quel est votre retour d’informations ?

AstLinux 1.2.3 : corrections de sécurité

Quelques jours après la version 1.2.2, l’équipe d’AstLinux sort une nouvelle version corrigeant plusieurs failles de sécurité (35 !) touchant de nombreux paquets.
Voici la liste :

  • CVE-2015-3331 : patch linux
  • CVE-2014-8964, CVE-2015-2325, CVE-2015-2326 : pcre
  • CVE-2014-9680 : sudo
  • CVE-2015-1572 : e2fsprogs
  • CVE-2014-8128 : tiff
  • CVE-2015-0286, CVE-2015-0287, CVE-2015-0289, CVE-2015-0292, CVE-2015-0293, CVE-2015-0209, CVE-2015-0288, CVE-2015-4000, CVE-2015-1788, CVE-2015-1789, CVE-2015-1790, CVE-2015-1792, CVE-2015-1791 : OpenSSL (version 1.0.1o)
  • CVE-2015-2059 : prosody
  • CVE-2014-9297, CVE-2014-9298, CVE-2015-1798, CVE-2015-1799 : ntpd/sntp
  • CVE-2014-2285 : netsnmp
  • CVE-2015-1419 : vsftpd
  • CVE-2015-3294 : dnsmasq
  • CVE-2015-3144, CVE-2015-3145, CVE-2015-3148, CVE-2015-3143, CVE-2015-3153, CVE-2015-3236, CVE-2015-3237 : libcurl

Un renforcement de la sécurité a été opéré par la création d’un certificat auto-généré unique.

Les versions d’Asterisk ont aussi été mis à jour :

  • Asterisk 1.8.32.3
  • Asterisk 11.18.0
  • Asterisk 13.4.0

Autre nouveauté importante, l’interface graphique d’Asterisk, Digium Asterisk GUI n’est plus inclue dans la solution quelque soit la version d’Asterisk. Je n’ai jamais bien compris l’intérêt de cette interface graphique et de la valeur ajoutée par rapport à l’interface d’AstLinux. Pour rappel, Digium Asterisk GUI est abandonné par l’équipe Asterisk depuis longtemps !

Etant donné l’importance de cette mise à jour, je vous invite à l’appliquer au plus vite sur vos systèmes.

Nouvelle version d’Astlinux 1.2.2 supportant Asterisk 13

Astlinux 1.2.2 vient de sortir. Découvrez les nouveautés d’un IPBX Asterisk embarqué et sécurisé prêt à l’emploi.

L’équipe d’Astlinux vient de sortir une nouvelle version. En dehors des habituelles corrections de bugs ou autres correctifs de sécurité (glibc « GHOST » et OpenSSL), mises à jour (noyau 3.2.66 et Asterisk) et améliorations de l’interface web, la grande nouveauté vient de la prise en charge de Asterisk 13 incluant la stack PJSIP. Toutes les versions d’Astlinux 1.2.2 (version d’Asterisk 1.8 , 11 et 13) intègrent aussi l’application de monitoring monit.

Créer votre serveur Asterisk : dans Linux Pratique été 2015

Le nouveau Linux Pratique vient de sortir avec un article intitulé « Créez votre serveur Asterisk ». Lisez attentivement cet article, et ensuite je vous invite à découvrir pour ceux qui ne connaissent pas encore 2 solutions top basées sur Asterisk :

  • Xivo : une solution créée et éditée par une entreprise française, Avencall. XiVo est une solution complète permettant de déployer un IPBX d’entreprise avec toutes les fonctionnalités nécessaires. L’interface d’administration est claire et complète et le nouveau XiVo Client (bandeau utilisateur permettant de gérer la présence, l’annuaire, le tchat, l’envoi de fax et les renvois de poste) est pratique et agréable. XiVo est construit sur une plateforme Debian et est dédié à être installé sur un serveur (vous pouvez aussi acheter un serveur avec XiVo pré installé).
  • Astlinux : une solution alternative plutôt orientée pour les TPE mais qui connaissent déjà Asterisk. Astlinux fournit une plateforme sécurisée intégrant Firewall, VPN, routage, QoS ainsi qu’une interface web légère. Les utilisateurs disposent d’un accès web dédié permettant de gérer renvois, messagerie vocale, annuaire. Mais pour gérer les appels, vous devrez savoir programmer le dialplan Asterisk (c’est pas bien compliqué non plus). Astlinux fonctionne sur un OS Linux embarqué et très léger avec pour objectif d’être installé sur des mini serveur comme les soekris.

Dans ce numéro de Linux Pratique Juillet / Août 2015, vous avez aussi un article sur une plateforme de CMS basée sur Django, Mezzanine. Je vous recommande cette solution, du Python, du PostgreSQL et une bonne VM et vous pouvez accueillir des milliers de visiteurs sur votre site. Django, le célèbre framework Python, intègre toutes les briques essentielles, et cela nativement afin de sécuriser les applications web. L’installation est super simple (pip install mezzanine) et pour créer un nouveau projet, vous devez taper 2 commandes supplémentaires (qui ne sont pas plus compliquées). Je vous invite à regarder les sites existants fonctionnant sous Mezzanine ainsi que la démonstration (surtout la partie admin, car la partie front est un peu pourrie par les utilisateurs !!!). Et pour les habitués de WordPress, il existe aussi des thèmes pour Mezzanine CMS disponibles en téléchargement (gratuits et payants). En voici un que j’aime bien qui s’appelle Singularity :

thème Mezzanine CMS Singularity Django

Et je profite de cet apparté sans grand rapport avec Asterisk (un peu quand même, on pourrait utiliser Django pour faire un GUI sympa à Asterisk pour des applications spécifiques comme je le fais pour FreeSwitch), pour vous présenter un premier lien regroupant l’ensemble des solutions CMS basées sur le framework Django et les solutions de blog basées aussi sur Django. Je vous recommande Zinnia, développé par un Français. J’ai hésité à migrer mon blog vers sa solution, mais je manque de temps (et il faut que je change d’hébergement !)

Zinnia blog CSM Django

Je vous laisse maintenant acheter ce magazine en ligne ou chez votre marchande de journaux, un bon petit numéro pour avoir un peu de lecture saine (pas Voici ou Mickey) sur la plage cet été.

Installation FreeSwitch sur Ubuntu automatisée

Installation automatisée de FreeSwitch à partir des sources sur Ubuntu/Debian

L’installation de FreeSwitch à partir des sources n’est pas une tâche bien compliquée. Il suffit de suivre le guide expliquant le processus sur le site de FreeSwitch. Mais cette tâche est longue et si vous installez de manière régulière de serveurs FreeSwitch, cela devient vite répétitif et source d’erreur.

Je vais vous présenter une manière simple et automatique pour installer FreeSwitch sur votre serveur tout neuf Ubuntu 14.04 64 bits LTS. (Cela marche aussi pour Debian 7).

Voici le process d’installation FreeSwitch :

sudo apt-get install -y python-apt python-pycurl libtiff5-dev
sudo git clone https://github.com/mwolff44/freeswitch-mw.git
sudo echo localhost > inventory
sudo ansible-playbook -i inventory freeswitch-mw/test.yml --connection=local

Prenez un grand café, prenez votre temps pendant que vous voyez FreeSwitch se compiler et s’installer.

Vous pouvez personnaliser les modules à installer, pour cela il faut utiliser la variable « freeswitch_modules_template » pour pointer sur votre propre fichier. Je vous laisse découvrir les autres options sur le Readme de github pour le script freeswitch-mw.

 

PyFreeBilling : démo en ligne

Suite à de nombreuses demandes, j’ai pris le temps d’installer un serveur de démo de PyFreeBilling, le logiciel de routage et de facturation opérateur basé sur FreeSwitch.

Certaines fonctions sont désactivées comme la possibilité d’émettre ou de recevoir des appels.

Pour se connecter, le username est « admin » et le password « pyfreebilling ».

Essayez de garder la démo propre, merci d’avance.

Si vous souhaitez avoir plus d’information sur la solution open source de billing FreeSwitch, le site de PyFreeBilling vous attend.

FritzBox : fonctionnalités avancées de VoIP / SIP

Modification avancée des paramètres VoiP des routeurs FritzBox : codec, VAD, détection des silences …

Certaines FritzBox fournissent un service de standard téléphonique (IPBX). Vous pouvez raccorder une ligne analogique, numérique ou SIP à votre équipement ainsi que des postes SIP, analogique, numérique ou DECT. Les services fournis permet de répondre aux attentes des TPE sans aucun problème.

Il peut parfois être utile d’accéder aux paramètres avancées non accessibles via l’interface web. Nous allons voir comment. Tout d’abord, vous devez vous connecter via telnet à votre FritzBox. Si vous ne savez pas comment faire, je vous invite à lire ce post : comment activer le service telnet de ma FritzBox.

La configuration se fait dans un seul fichier, /var/flash/voip.cfg

Pour éditer ce fichier, il faut utiliser nvi :

nvi /var/flash/voip.cfg

Bien entendu, il ne faut modifier les éléments de ce fichier que si vous savez ce que vous faites. Une mauvaise manipulation pourrait rendre inopérant les services de téléphonie de votre FritzBox.

Nous allons voir comment modifier les codecs et l’ordre de ceux-ci. Pour cela, il faut localiser les 2 lignes suivantes :

use_audiocodecs = no;
audiocodecs = "PCMA", "PCMU", "G726-32", "G726-40", "G726-24";

C’est la configuration par défaut. La première variable (use_audiocodecs) avec une valeur à « yes » permet de dire à la FritzBox d’utiliser les codecs listés dans audiocodecs dans l’ordre de préférence indiqué. Par défaut, la FritzBox utilise le codec selon l’ordre annoncé par l’opérateur. Nous pouvons forcer les priorités ainsi :

use_audiocodecs = yes;
audiocodecs = "G729", "PCMA", "PCMU", "G726-32", "G726-40", "G726-24";

Après avoir réalisé ces modifications, il faut arrêter, puis redémarrer le daemon VoIP :

voipd -s
voipd

Maintenant, il est possible d’utiliser le codec G11 en priorité afin d’avoir une meilleure qualité audio.

Nous allons voir comment activer la détection de silence et la fonction VAD (voice activity detection). Vous pourriez avoir besoin de ces fonctions si votre ligne dispose d’un débit limité.

A la fin du fichier voip.cfg , vous avez la variable rtpstream :

rtpstream {
    voice_activity_detection {
        vad_enabled = vadenabled_no;
        vad_threshold = 10000;
        }
        plc {
            in_the_stack = yes;
        }
        jitter {
            auto_on = yes;
            in_ms = 50;
            in_packets = 0;
        }
        rtcp_enabled = yes;
        silence_detection = no;
}

Que vous allez modifier comme suit :

rtpstream {
    voice_activity_detection {
        vad_enabled = vadenabled_yes;
        vad_threshold = 10000;
        }
        plc {
            in_the_stack = yes;
        }
        jitter {
            auto_on = yes;
            in_ms = 50;
            in_packets = 0;
        }
        rtcp_enabled = yes;
        silence_detection = yes;
}

La valeur du threshold étant à adapter selon votre environnement (faites des tests).

Je vous laisse découvrir les différents paramètres.

Sécurité des iPBX : responsabilité des intégrateurs

Je viens d’avoir un appel téléphonique d’un responsable d’une société qui vient de subir une fraude sur son installation téléphonique. Alerté par son opérateur, Orange pour ne pas le citer, il vient de subir des appels frauduleux pour un montant dépassant les 10k euros. Juste de quoi vous gâcher la journée.

L’opérateur ayant fait le nécessaire (suppression des appels à l’étranger), il cherche maintenant à savoir qui va payer cette facture bien salée. Et pour cela, il faut chercher le responsable, qui a fait la boulette. Un détournement des accès téléphoniques, un employé malintentionné ou une faille du système téléphonique.

Après un audit des accès téléphoniques de l’iPBX, cette hypothèse est rapidement écartée comme la seconde (les montants en jeu sont trop importants). Il reste donc l’hypothèse malheureusement la plus courante, une faille sur le système téléphonique.

Seul un audit permettra de déterminer quelle faille a été exploitée, et si cette faille est la conséquence d’une négligence dans la programmation et la maintenance du standard téléphonique. Malheureusement un certain nombre d’installateurs téléphoniques ou intégrateurs prennent la sécurité des équipements et des systèmes à la légère. Pour preuve, la non application des matchs de sécurité sur certains parcs de PABX pourtant reconnus vulnérables, ou la mise en oeuvre d’architecture dont la conception même fragilise toute l’infrastructure informatique de la société cliente.

Il est grand temps que le petit monde de la téléphonie (installateurs, éditeurs, constructeurs …) adopte des pratiques strictes en terme de sécurité. Et pour commencer, la mise à disposition des patchs de sécurité devrait être gratuit (ce n’est pas encore le cas de tous les constructeurs) et le déploiement des mises à jour de sécurité inclu au contrat de maintenance en incluant des SLA (délai de déploiement de la mise à jour maximum garanti …). Une veille technique devrait aussi faire partie de ces contrats avec une information claire diffusée au client.

Les intégrateurs ou installateurs privés en tant que professionnels reconnus sont responsables devant la loi du respect des bonnes pratiques. Laisser un mot de passe par défaut ou faible est un exemple simple, mais qui engage la responsabilité du prestataire. Comme le fait de ne pas avoir répondu aux solicitations de son client lui demandant de mettre à jour le système, ou le fait d’avoir programmé le système en ignorant les règles de sécurité connues.

Les attaques se faisant de plus en plus nombreuses, j’espère qu’à la fois les clients (ceux qui refusent de mettre à jour leur système et qui refusent tout contrat d’infogérance) et les professionnels prennent plus sérieusement en compte ces risques.

FreePBX : Frederic Dickey Interview – Asterisk – Sangoma

Sangoma is a leading provider of hardware and software components that enable or enhance IP Communications Systems for both telecom and datacom applications.
Frederic Dickey is the VP of Product Management and Customer Services for Sangoma and we met up with him at FreePBX World in Las Vegas to discover more about their new products and how they interact with the FreePBX® EcoSystem.

Ansible : Freeswitch role : nouvelle version – v1.1

Je viens de publier la mise à jour du role FreeSwitch pour Ansible, le célèbre moteur d’orchestration. Ce role permet d’installer FreeSwitch à partir des sources sur les systèmes linux basés sur Debian/Ubuntu.

J’ai ajouté la gestion des variables, vous permettant d’utiliser une configuration collant au mieux de vos besoins.

L’utilisation est simple. Il faut dans un premier temps installer Ansible, puis ajouter mwolff44.freeswitch-mw à vos roles. Vous avez un exemple de configuration ci-dessous :

- hosts: all
  vars_files:
    - 'defaults/main.yml'
  tasks:
    - include: 'tasks/main.yml'
  handlers:
    - include: 'handlers/main.yml'

Le repository du role Ansible pour FreeSwitch est hébergé chez Github et est bien sûr validé en intégration continue grâce au service de travis-ci.org.

Si vous voyez des idées d’amélioration, n’hésitez pas.