Linux:Configuration d'un central téléphonique sur 2 sites géographiques
Sommaire
But
Installer un autocommutateur téléphonique privé (PABX) sur 2 sites géographiques en utilisant le service SIP de l'opérateur Free.
Dans mon cas, il s'agissait d'avoir un réseau téléphonique privé couvrant mes 2 domiciles qui sont chacun dans des pays différents (France et Côte d'Ivoire). Mes domiciles seront reliés via le protocole SIP transitant sur internet (donc aucune communication internationale entre la France et la Côte d'Ivoire). Ainsi, tout mes appels vers la France seront routé directement vers mon opérateur Français, Free. De même, tout mes appels vers la Côte d'Ivoire seront routé vers mon opérateur Ivoirien, Côte d'Ivoire Télécom (Orange).
Chaque site géographique aura son PABX installé sur un Raspberry Pi.
Nomenclature
Avant de commencer, il est impératif d'être en possession d'un Raspberry avec ses accessoires:
- 1 Raspberry Pi 2 model B;
- 1 boitier pour Raspberry Pi 2 model B;
- 1 bloc d'alimentation micoUSB 5 V 3A;
- 1 carte microSD de classe 10 avec 8 Go minimum (Samsung Pro 16 Go 90/60 MB/s);
- 1 câble réseau Ethernet RJ45;
Mais aussi:
- 1 abonnement à l'opérateur téléphonique Free;
- au moins 2 téléphones IP;
Pour l'installation et la configuration de système:
- 1 ordinateur Linux comportant un lecteur de cartes microSD;
- 1 câble HDMI/HDMI ou HDMI/DVI pour le branchement à une TV ou un moniteur;
- 1 clavier USB.
Préparation de la carte microSD
Sur votre ordinateur Linux:
- commencer par récupérer la dernière version de la Raspbx;
- insérer votre carte microSD dans le lecteur de votre ordinateur;
- exécuter la commande suivante pour relever les partitions de la carte microSD (pour moi c'était /dev/sdf1):
df -h
- démonter la ou les partitions avec la commande:
umount /dev/sdf1
- copier l'image système récupéré vers votre carte microSD en faisant bien attention de mentionner le disque et non une partition (/dev/sdf1 sans le numéro):
sudo dd bs=4M if=~/raspbx-22-09-2016.img of=/dev/sdf
- une fois la copie terminée, votre carte microSD est enfin prête à être insérée dans votre Raspberry Pi.
1er démarrage du Raspberry Pi
- Insérer la carte microSD dans le lecteur de votre Raspberry;
- brancher le clavier sur un port USB de votre Raspberry;
- brancher votre Raspberry à votre réseau local via un câble réseau Ethernet RJ45;
- brancher l'alimentation de votre Raspberry (entrée microUSB): le Raspberry démarre;
- se connecter via SSH en tant que root et avec le mot de passe raspberry.
Configuration du Raspberry Pi
- Commencer par changer le mot de passe root:
passwd
- taper la commande suivante pour commencer la mise à jour de votre Raspbx:
raspbx-upgrade
- taper la commande suivante pour configurer le fuseau horaire:
configure-timezone
- taper la commande suivante:
raspi-config
- puis:
- Expand Filesystem pour que Raspbx utilise toute la carte;
- Advanced Options / Hostname pour changer le nom de votre Raspberry;
- cliquer sur le bouton Finish;
- un reboot est proposé: répondre Yes;
- taper la commande suivante pour générer les pairs de clés:
regen-hostkeys
- taper la commande suivante pour ajouter les langues fr_FR, fr_FR.UTF-8, fr_FR@euro à votre Raspbx:
dpkg-reconfigure locales
- taper la commande suivante pour sélectionner le bon clavier (Generic 105-keys (Intl) PC et French pour moi):
dpkg-reconfigure keyboard-configuration
Configuration de l'envoi de mails
- Taper la commande suivante pour configurer l'envoi de mails:
dpkg-reconfigure exim4-config
- éditer le fichier /etc/email-addresses pour avoir le contenu suivant:
root: user@minetti.org asterisk: user@minetti.org
- activer la configuration en tapant la commande suivante:
update-exim4.conf
- tester l'envoi de mail en tapant la commande suivante:
send_test_email user@minetti.org
Accès à FreePBX
- Avec un navigateur web, taper le nom de la machine;
- cliquer sur FreePBX Administration;
- taper admin comme nom d'utilisateur et admin comme mot de passe.
Connexion à Free
Sous FreePBX:
- cliquer dans le menu Connectivity / Trunks;
- dans Add Trunk, sélectionner Add SIP (chan_sip) Trunk;