Passer au contenu principal

Installer FlexiSIP

Avant-propos

FlexiSIP est une suite de serveurs SIP complète, modulaire et évolutive, développée par Belledonne Communications, principalement connue pour être l’éditeur de Linphone.

Fonctionnalités principales :
  • Proxy SIP : cœur du système, il relaie et gère le trafic des communications SIP (appels audio/vidéo, messagerie instantanée, présence, etc.).
  • Gestionnaire de comptes SIP : administration centralisée des comptes utilisateurs, avec une API REST pour l’intégration à des plateformes existantes.
  • Module B2BUA : interconnexion avec le réseau téléphonique classique (PSTN) ou des services de trunk SIP.
  • Passerelle Push : acheminement fiable des notifications d’appels ou de messages sur mobile, même lorsque l’application VoIP est en arrière-plan ou l’écran éteint.
Autre informations :
  • Sécurité : Authentification sécurisée, chiffrement des communications (SIP/TLS, SRTP, ZRTP, etc.).
  • Open source : le code est disponible sous double licence (AGPLv3 ou propriétaire).

Installation de Flexisip

Les instructions d'installation sont disponible sur la page https://wiki.linphone.org/xwiki/wiki/public/view/Flexisip/1.%20Installation/ mais certaines des commandes utilisées sont obsolètes.

Ajout du dépôt APT de Belledonne Communications :

Écrire la ligne suivante dans le fichier /etc/apt/sources.list.d/belledonne.list:

deb [arch=amd64, signed-by=/etc/apt/keyrings/belledonne.gpg] http://linphone.org/snapshots/debian bookworm stable

Ajout de la clé PGP du dépôt avec la commande suivante :

wget https://linphone.org/snapshots/debian/keyring.gpg -O - | sudo tee /etc/apt/keyrings/belledonne.gpg > /dev/null

Installation du serveur Flexisip :

sudo apt update
sudo apt install bc-flexisip redis-server

Génération du fichier de configuration par défaut :

/opt/belledonne-communications/bin/flexisip --dump-default all | sudo tee /etc/flexisip/flexisip.conf

Installation d'une base de données pour stocker les comptes SIP :

sudo apt install postgresql

Créer une base de données flexisip ainsi qu'un utilisateur flexisip ayant le droit de modifier cette base de donnée.

Créer un utilisateur flexisip sur la machine et l'ajouter au groupe dehydrated-certs.

Modifier le fichier de configuration de redis /etc/redis/redis.conf:

bind 127.0.0.1 ::1
daemonize yes
supervised systemd

Il faut ensuite créer un mot de passe et l'indiquer dans le champ requirepass

Pour que le serveur fonctionne, il faut autoriser dans nftables les différents ports utilisés par le serveur Flexisip:

En TCP, le port 5060 pour SIP et 5061 pour SIPS (SIP-TLS).

En UDP, le port 3478 pour le serveur STUN et les ports utilisés pour le media relay (10000 à 65535).

Démarrage manuel du serveur :

sudo systemctl start flexisip-proxy

Lancement automatique du serveur au démarrage de la machine :

sudo systemctl enable flexisip-proxy

Installation de flexisip-account-manager

 

sudo apt install bc-flexisip-account-manager php-fpm

Ensuite modifier le fichier /etc/flexisip-account-manager/flexiapi.env:

APP_URL=http://srv-flexisip.exemple.fr
APP_SIP_DOMAIN=srv-flexisip.exemple.fr
ACCOUNT_DEFAULT_PASSWORD_ALGORITHM=MD5
ACCOUNT_PROVISIONING_RC_FILE=/etc/flexisip-account-manager/linphonerc.ini
PUBLIC_REGISTRATION=false
PHONE_AUTHENTICATION=false
DEVICES_MANAGEMENT=true
INTERCOM_FEATURES=true
DB_CONNECTION=pgsql
DB_HOST=/var/run/postgresql
DB_DATABASE=flexisip
DB_USERNAME=flexisip